将sqlite日期列转换为timestamp列

时间:2013-06-23 13:14:24

标签: android sqlite

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

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

Database snapshot

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

D列是VARCHAR,T列是BIGINT

2 个答案:

答案 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)

(当原始日期超过三位时,这也可以正常工作。)