我有一个表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
答案 0 :(得分:1)
update A set T = strftime('%s', D)
应该做的工作,但它只是来自文档,从未使用过
答案 1 :(得分:0)
对于strftime,%s
仅返回整秒,而%f
返回包括小数部分的秒数,但在0-59范围内。
可以从后者中提取小数部分,但这些数字与原始字符串中的数字相同,因此使用字符串函数提取它们会更容易:
UPDATE A SET T = strftime('%s', D) || substr(D, 20)
(当原始日期超过三位时,这也可以正常工作。)