如何在SQLite3中将日期时间字符串转换为UNIX时间戳?

15

SQLite3数据类型文档指出:

SQLite 内置的日期时间函数可以将日期和时间存储为 TEXT、REAL 或 INTEGER 值。

我想使用这些函数来存储 INTEGER 值。如何做到?SQLite3日期时间函数文档描述了这些函数的参数类型,但没有提到返回类型。似乎返回类型是text

sqlite> select typeOf(datetime('2014-12-12 12:12:12.000'));
text

这不是我想要的——我需要一个整数值来代表该时间的UNIX时间戳。即使我创建了一个类型为integer的列并尝试将datetime(...)值存储在其中,SQLite也会将其存储为该integer列中的text值。

我该如何强制datetime函数及其相关函数返回UNIX时间戳而不是text值?

1个回答

25

所有内置的日期/时间函数都返回字符串。

要将字符串转换为数字,请使用CAST

SELECT CAST(strftime('%s', 'now') AS INT);

3
对于Mer工作:SELECT CAST(strftime('%s', strftime('%Y-%m-%dT00:00:00+00:00', <your_datetime_column>), 'unixepoch') as datetime) FROM <your_table> - user1142902

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接