【问题标题】:How can I convert timestamps to dates in SQLite?如何在 SQLite 中将时间戳转换为日期?
【发布时间】:2020-10-05 17:04:10
【问题描述】:

如何在 SQLite 中将时间戳转换为日期?

以下代码仅生成一个 Timestamp 列和一个 Date 列,其值为 NULL。 SQL 代码需要从“08/28/2020 8:00”格式转换。

SQL 代码:

'''选择时间戳,strftime('%m-%d-%Y', Timestamp) as Date FROM Room_Data'''

SQLite 文档很清楚,但我似乎无法得到想要的结果。

【问题讨论】:

  • 请显示您的一些数据和预期结果。
  • 当前 = "08/28/2020 8:00",需要 = "08/28/2020"

标签: sqlite


【解决方案1】:

strftime 用于格式化日期,而不是执行转换。

与此同时,您可以尝试类似的方法来收集碎片:

SELECT Timestamp, 
SUBSTR(c,7,4) || '-' || SUBSTR(Timestamp,1,2) || '-' || SUBSTR(Timestamp,4,2) as Date
FROM Room_Data

由于 SQlite 并没有真正的日期概念,与其他 DBMS 不同,最好的选择是将日期转换为整数,可以是 Unix 时间戳,也可以是字符串形式 (YYYY-MM-DD),但要存储日期像 20201010 这样的整数也是可以接受的。

注意:请小心使用 Timestamp 或 Date 之类的名称,它们是许多编程语言和 DBMS 中的保留关键字

【讨论】:

    【解决方案2】:

    由于某种原因,原始代码无法在 Windows 10 中运行。从 Linux 发行版(在本例中为 Kubuntu)尝试这个似乎可以解决这个问题。在 Windows 中,日期需要转换为 '2020-01-01' 格式才能真正起作用。

    SQLite 很棒,但不确定为什么 Windows 10 的功能会发生变化。如果您了解更多差异,请随时发表评论。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-10
      • 2015-08-12
      • 1970-01-01
      • 2019-07-21
      • 2019-08-24
      • 2012-04-10
      相关资源
      最近更新 更多