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

时间:2014-12-18 11:29:40

标签: function datetime sqlite

The documentation for SQLite3 datatypes

  

SQLite的内置日期和时间函数能够将日期和时间存储为TEXT,REAL或INTEGER值

我想使用这些函数来存储INTEGER值。我该怎么办? The documentation for SQLite3 datetime functions描述了这些函数的参数类型,但没有提到返回类型。似乎返回类型为text

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

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

如何强制datetime函数和朋友返回UNIX时间戳而不是text值?

1 个答案:

答案 0 :(得分:14)

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

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

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