将 select 和 dateadd 函数中的结果集插入到同一个表中
Posted
技术标签:
【中文标题】将 select 和 dateadd 函数中的结果集插入到同一个表中【英文标题】:Inserting resultset from select and dateadd function into same table 【发布时间】:2016-07-19 09:49:40 【问题描述】:我的 H2 数据库中有“测试”表,其中有一些时间戳。 我正在使用“DATEADD”函数将“_time”列转换为正常日期。
我希望我的选择查询的结果插入到“_converted_time”中
sql> select * from test;
| _TIME | _CONVERTED_TIME
| 1468309423961 | null
| 1468309423962 | null
| 1468308812001 | null
| 1468308815972 | null
(4 rows, 10 ms)
sql>
sql>
sql> select DATEADD('SECOND', SUBSTRING(_time,1,10), DATE '1970-01-01') from test;
DATEADD('SECOND', SUBSTRING(EVENT_TIME, 1, 10), DATE '1970-01-01')
2016-07-12 07:43:43.0
2016-07-12 07:43:43.0
2016-07-12 07:33:32.0
2016-07-12 07:33:35.0
因此在将上述结果添加到 _converted_time 之后,它应该看起来像 ::
sql> select * from test;
| _TIME | _CONVERTED_TIME
| 1468309423961 | 2016-07-12 07:43:43.0
| 1468309423962 | 2016-07-12 07:43:43.0
| 1468308812001 | 2016-07-12 07:33:32.0
| 1468308815972 | 2016-07-12 07:33:35.0
(4 rows, 10 ms)
提前致谢...
【问题讨论】:
您正在寻找update
?
是的,我想通过将这些结果集添加到表中来更新表
【参考方案1】:
试试这个
update test
set CONVERTED_TIME = DATEADD('SECOND', SUBSTRING(_time,1,10), DATE '1970-01-01')
WHERE CONVERTED_TIME IS NULL;
【讨论】:
这个查询将一次又一次地做同样的工作......因为将来如果插入一些 _time 值,它应该从它离开的地方恢复......我们可以这样做吗??以上是关于将 select 和 dateadd 函数中的结果集插入到同一个表中的主要内容,如果未能解决你的问题,请参考以下文章