47

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

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
4

3 回答 3

116

文档提到了这种方法:

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

而这个包括小数部分:

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

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

于 2010-09-11T23:35:43.383 回答
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
于 2021-02-23T15:37:40.533 回答
0

出于某种原因(这无疑是我的错)Daniel 的组件并没有完全为我做这件事,但是在从名为tmstmpjulianday()的时间戳字段中进行选择时,诉诸以下 jankery 似乎可以解决问题:

select
 strftime('%s', a.tmstmp) + strftime('%f', a.tmstmp)
   as unix_time
from any_table a
于 2021-03-30T22:26:38.067 回答