我在表test1中有2个字段:
onlydate DATE
onlytime DATETIME HOUR TO MINUTE
和表test2中的1个字段:
dateandtime DATETIME YEAR TO SECOND
现在我需要追加onlydate和onlytime字段的值并将其设置为dateandtime字段。我该怎么做?
答案 0 :(得分:3)
基本问题是:
组合这两个概念并仅应用于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;
结果就是你想要的:
DATETIME YEAR TO SECOND
2010-05-31 06:30:00
从timeonly
减去午夜时间将其转换为间隔时间为分钟;你可以添加一个DATETIME年份到第二个和一个间隔时间来分钟,到达第二个月。您无法添加两个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的设置如何,要可靠地插入DATE常量,请使用MDY(5,31,2010)
。)
答案 1 :(得分:1)
您可以将两个值连接为文本,并将其转换为日期时间,如:
update datetime_test
set dateandtime = (dateonly || ' ' || timeonly || ':00')::
datetime year to second