【问题标题】:Sqlite timestring convert into %Y-%m-%d %H:%M:%SSqlite 时间字符串转换为 %Y-%m-%d %H:%M:%S
【发布时间】:2020-05-09 19:28:50
【问题描述】:

时间字符串 = 574173060999555008

查询:

datetime(‘2001-01-01’,substr(timestring,1,length(timestring )-9 || ‘ seconds’)

输出:

2019-03-13 12:31:00

想要输出:

2019-03-14 00:31:00

【问题讨论】:

  • 请解释你的计算细节。将 574173060 秒添加到 2001 年 1 月 1 日确实会产生 2019-03-13 12:31:00
  • 可能取决于语言环境/时区,因为 date is DST 在世界某些地方而不是在其他地方。这可以解释 1 小时的差异。我不会假装理解这些东西,但我很容易不时被它弄糊涂。

标签: sql sqlite datetime


【解决方案1】:

您的预期输出与实际输出之间存在 12 小时的差异。
如果这是区域时区差异的结果,您可以在末尾添加+12 hours 修饰符datetime() 函数以获得您想要的:

datetime('2001-01-01', substr(timestring, 1, length(timestring ) - 9) || ' seconds', '+12 hours')

结果:

2019-03-14 00:31:00

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 2019-01-28
    • 2021-11-26
    • 1970-01-01
    • 2018-04-23
    • 2019-01-08
    • 2021-03-09
    相关资源
    最近更新 更多