【问题标题】:Sqlite: select ('now') not works as expectedSqlite:选择('now')不能按预期工作
【发布时间】:2016-03-06 05:37:48
【问题描述】:

我想从SQLite 获取当前日期为yyyy-MM-dd,我使用以下查询:

***SELECT date('now')***

但不是返回当前日期,而是返回今天的第二天。

例如,今天 (2015-12-01) 我运行查询并返回 (2015-12-02)。

我做错了什么?

Image running query + calendar

【问题讨论】:

  • 您的实例是设置为您自己的时区,还是设置为 UTC/GMT?
  • 是的,它设置为我的时区 Lima GMT/UTC - 05:00 小时

标签: android sqlite date select


【解决方案1】:

sqlite 日期和时间函数在内部使用 UTC 时区。在 UTC 中,日期已经是 2015-12-02。

如果你想使用另一个时区,你需要明确指定它,例如

select date('now','-05:00');

我建议在您的数据库层中使用 UTC 毫秒时间戳,并在您的应用代码中使用显示逻辑(例如日期格式和时区调整)。

参考:https://www.sqlite.org/lang_datefunc.html

【讨论】:

  • 谢谢,你是对的。现在我使用 SELECT date('now','localtime') 来获取我所在时区的当前日期。
猜你喜欢
  • 1970-01-01
  • 2019-11-25
  • 2014-06-07
  • 1970-01-01
  • 1970-01-01
  • 2015-06-26
  • 2013-05-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多