sqlite中的Unix时间戳?

时间:2010-09-11 23:20:44

标签: sqlite timestamp unix-timestamp

如何获取Sqlite中的当前时间戳? current_time,current_date,current_timestamp都返回格式化日期,而不是长日期。

sqlite> insert into events (timestamp) values (current_timestamp);
sqlite> insert into events (timestamp) values (current_date);
sqlite> insert into events (timestamp) values (current_time);
sqlite> select * from events;
1|2010-09-11 23:18:38
2|2010-09-11
3|23:18:51

我想要的是什么:

4|23234232

3 个答案:

答案 0 :(得分:75)

docs提到了这种方法:

SELECT strftime('%s', 'now');
1284248196

这个包括小数部分:

SELECT (julianday('now') - 2440587.5) * 86400.0;
1284248196.65098

两者都代表Unix Time,即自1970年1月1日以来经过的秒数。

答案 1 :(得分:0)

select strftime('%W'),date('now'),date(),datetime(),strftime('%s', 'now');

结果

strftime('%W')  -   date('now')  -  date()   -  datetime()   -     strftime('%s', 'now')
    08       -      2021-02-23   -  2021-02-23 - 2021-02-23  15:35:12-  1614094512

答案 2 :(得分:0)

出于某种原因(这无疑是我的错)Daniel 的 julianday() 组件对我来说不太合适,但是在从名为 tmstmp 的时间戳字段中进行选择时,使用以下 jankery 似乎可以解决问题:

select
 strftime('%s', a.tmstmp) + strftime('%f', a.tmstmp)
   as unix_time
from any_table a