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

jam*_*her 9 sqlite datetime function

SQLite3数据类型的文档

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

我想使用这些函数来存储INTEGER值.我该怎么办?SQLite3 datetime函数的文档描述了这些函数的参数类型,但没有提到返回类型.似乎返回类型是text:

sqlite> select typeOf(datetime('2014-12-12 12:12:12.000'));
text
Run Code Online (Sandbox Code Playgroud)

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

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

CL.*_*CL. 14

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

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

SELECT CAST(strftime('%s', 'now') AS INT);
Run Code Online (Sandbox Code Playgroud)

  • 对于我的工作:`SELECT CAST(strftime('%s', strftime('%Y-%m-%dT00:00:00+00:00', <your_datetime_column>), 'unixepoch') as datetime) FROM <你的表>` (2认同)