SQLite3和System.currentTimeMillis()

时间:2011-01-13 09:30:37

标签: java android datetime sqlite

我希望使用SQLite strftime()或任何其他函数生成完全相同的值,如java中的System.currentTimeMillis()函数。有可能吗?

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

生成当前时间但不考虑毫秒而是秒。我想精确到毫秒。

编辑基于Axarydax答案

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

返回129491124808.428 返回08.428的%f我可以将其转换为129491124808

编辑2

ROUND(strftime('%s%f','now'))

返回129491124808.0我最后不想要.0

3 个答案:

答案 0 :(得分:3)

根据this documentation,格式化字符串%f打印小数秒SS.SSS。

答案 1 :(得分:0)

SELECT CAST(strftime('%s%f','now') as INTEGER);

答案 2 :(得分:0)

以秒为单位的时间(纪元)

strftime('%s','now')

当前秒数+毫秒

strftime('%f','now')

当前秒数

strftime('%S','now')

因此,如果您只想要毫秒,您就可以这样做:

strftime('%S','now') - strftime('%f','now')

现在将其添加到以秒为单位的时间中,您将得到以小数表示的毫秒数

strftime('%s','now') + strftime('%f','now') - strftime('%S', 'now')

现在将其乘以1000,就可以得到当前时间(以毫秒为单位)

CAST((strftime('%s','now') + strftime('%f','now') - strftime('%S', 'now'))*1000 AS INTEGER)