0

我有一个表 A,其中有两列:D 和 T。D 列包含格式为 2013-07-10 05:01:01.000000 的日期。T 列是空的,但它的时间是 BINGINT。

我想要做的是用从 D 列转换的时间戳填充 T 列行。有没有可以帮助我的 SQL 魔法?或者我需要先查询 D 列行,然后保存到某个列表中,然后更新 T 列行?

数据库快照

在此图像上,您可以看到左侧的 D 列,右侧的 ID 列和中间的 T 列。

D 列是 VARCHAR,T 列是 BIGINT

4

2 回答 2

1
update A set T = strftime('%s', D)  

应该做的工作,但它只是来自文档,从未使用过

于 2013-06-23T14:09:59.703 回答
0

For strftime, %s returns only whole seconds, while %f returns seconds including the fractional part, but in the range 0–59. It would be possible to extract the fractional part from the latter, but those digits are identical with those in the original string, so it would be easier to just extract them with a string function:

UPDATE A SET T = strftime('%s', D) || substr(D, 20)

(This also works correctly when the original date has more than three digits.)

于 2013-06-24T08:31:10.343 回答