【问题标题】:How to convert timestamp to string in SQLite?如何在 SQLite 中将时间戳转换为字符串?
【发布时间】:2016-01-11 21:01:28
【问题描述】:

我有一个表,其中存储了以毫秒为单位的时间戳。我想将这些时间戳转换为人类可读的形式。

这是我的表格的示例输出:

SELECT date raw, strftime('%d-%m-%Y', (date/1000)) as_string
  FROM my_table

 +-----------------+--------------+
 |     raw         |  as_string   |
 +-----------------+--------------+
 |  1444687200000  |  06-47-3950  |
 +-----------------+--------------+
...               ...            ...
 +-----------------+--------------+

如您所见,日期作为字符串很奇怪(06-47-3950)。

如何获取12-10-2015

【问题讨论】:

    标签: sqlite date timestamp type-conversion


    【解决方案1】:

    您需要先将时间戳转换为白天。一个论坛上有一个answer。我在这里引用它。

    您在这里:尝试这些查询以了解原因和方式。

    select julianday('1899-12-30 00:00:00');

    -- 给出 2415018.5(记住朱利安日期从中午开始)

    select datetime('40660.9454658044', '+2415018 days', '+12 hours', 'localtime');

    -- 得到你 2011-04-28 00:41:28 (取决于你当地 时间)

    【讨论】:

      【解决方案2】:

      试试这个:

      SELECT date raw, strftime('%d-%m-%Y', datetime(date/1000, 'unixepoch')) as_string
        FROM my_table
      

      您需要将时间戳转换为之前的日期。

      【讨论】:

      • as_string 需要吗? strftime 不是让它已经成为一个字符串吗?无论如何,它对我帮助很大,谢谢!
      • @ValentinHeinitz 尾随的as_string 不是字符串转换,而是将列命名为as_string
      猜你喜欢
      • 2020-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-03
      • 2013-01-16
      • 1970-01-01
      相关资源
      最近更新 更多