日期时间类型
SQLite 没有针对日期或时间值的单独数据类型。
ISO8601 字符串
内置关键字 CURRENT_DATE
,CURRENT_TIME
和 CURRENT_TIMESTAMP
以 ISO8601 格式返回字符串:
> SELECT CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP;
CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP
------------ ------------ -------------------
2016-07-08 12:34:56 2016-07-08 12:34:56
所有内置日期/时间函数也可以理解这些值 :
> SELECT strftime('%Y', '2016-07-08');
2016
朱利安日数
在内置的日期/时间函数解析数作为儒略日 :
> SELECT datetime(2457578.02425926);
2016-07-08 12:34:56
julianday()
函数将任何支持的日期/时间值转换为 Julian 日期数:
> SELECT julianday('2016-07-08 12:34:56');
2457578.02425926
Unix 时间戳
在内置的日期/时间功能, 如可以解释数字的 Unix 时间戳与 unixepoch
修改:
> SELECT datetime(0, 'unixepoch');
1970-01-01 00:00:00
strftime()
函数可以将任何支持的日期/时间值转换为 Unix 时间戳:
> SELECT strftime('%s', '2016-07-08 12:34:56');
1467981296
不支持的格式
可以在数据库中以任何其他格式存储日期/时间值,但内置日期/时间函数不会解析它们,并返回 NULL:
> SELECT time('1:30:00'); -- not two digits
> SELECT datetime('8 Jul 2016');