날짜는인포믹스 : 나는 테이블 TEST1 2 개 필드가 조작
dateandtime DATETIME YEAR TO SECOND
는 지금은 onlydate 및 onlytime 필드의 값을 추가 할 필요가 dateandtime 필드로 설정하십시오. 어떻게해야합니까?
날짜는인포믹스 : 나는 테이블 TEST1 2 개 필드가 조작
dateandtime DATETIME YEAR TO SECOND
는 지금은 onlydate 및 onlytime 필드의 값을 추가 할 필요가 dateandtime 필드로 설정하십시오. 어떻게해야합니까?
당신은 텍스트로 두 값을 연결하고,이 같은 날짜에 캐스트 할 수 있습니다 :
update datetime_test
set dateandtime = (dateonly || ' ' || timeonly || ':00')::
datetime year to second
기본 문제는 다음과 같습니다 DATETIME에 DATE 변환
이 두 개념을 조립 만 SELECT 적용 :
create temp table td(dateonly date not null, timeonly datetime hour to minute);
insert into td values('2010-05-31', '06:30');
select extend(dateonly, year to second) +
(timeonly - datetime(00:00) hour to minute) from td;
그 결과 당신이 원하는 : timeonly
에서 자정을 빼면
DATETIME YEAR TO SECOND
2010-05-31 06:30:00
는 분으로 간격 시간으로 변환; DATETIME YEAR TO SECOND와 INTERVAL HOUR TO MINUTE를 DATETIME YEAR TO SECOND에 추가 할 수 있습니다. 두 개의 DATETIME 값을 추가 할 수 없습니다. 그래서
, 엄격하게 질문에 대답, 당신은 쓸 것 :
INSERT INTO Test2(DateAndTime)
SELECT EXTEND(DateOnly, YEAR TO SECOND) +
(TimeOnly - DATETIME(00:00) HOUR TO MINUTE) AS DateAndTime
FROM Test1;
(신뢰성에 관계없이 일정한 날짜를 삽입하려면 예상대로 날짜 리터럴 같이 작동하도록 내가는 DBDate = Y4MD-으로 실행합니다. DBDATE의 설정은 MDY(5,31,2010)
입니다.
이 솔루션은 열이 모두 하나의 테이블에 있고, 'DBDATE ='Y4MD-'' 일 때 잘 작동합니다. 테이블간에 값을 전송해야하는 경우 INSERT 또는 MERGE 문을 사용하게됩니다. DBDATE가 다른 형식 (예 :'DBDATE = DMY4 /'또는'DBDATE = MDY4 /')으로 설정된 경우 날짜순으로 문자열로 변환하는 형식은 DATETIME으로 다시 변환 될 수 없다는 것을 의미합니다. 캐스트의 형식 요구 사항은 엄격합니다. –