【问题标题】:SQLite3 and System.currentTimeMillis()SQLite3 和 System.currentTimeMillis()
【发布时间】:2011-01-13 09:30:37
【问题描述】:

我想使用 SQLite strftime() 或任何其他函数生成与 Java 中的 System.currentTimeMillis() 函数完全相同的值。有没有办法?

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

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

编辑基于 Axarydax 答案

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

返回129491124808.428 %f 返回08.428 我可以将其四舍五入为129491124808

编辑 2

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

返回 129491124808.0 最后我不想.0

【问题讨论】:

    标签: java android datetime sqlite


    【解决方案1】:

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

    【讨论】:

    • 感谢 Axarydax,但你能帮我解决这个问题吗?我希望它与 java 的 System.currentTimeMillis() 完全相似
    【解决方案2】:

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

    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)
    

    【讨论】:

    • 令人难以置信的是,很难找到这些信息。谢谢你为我节省了很多时间。
    【解决方案3】:
    SELECT CAST(strftime('%s%f','now') as INTEGER);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多