在 Sqlite 中将日期转换为字符串

Bil*_*lly 0 sql sqlite

有没有办法在 Sqlite 中将日期转换为字符串?例如,我试图获取 Sqlite 中的最短日期:

SELECT MIN(StartDate) AS MinDate FROM TableName
Run Code Online (Sandbox Code Playgroud)

我知道在 SQL Server 中我会使用下面的 SQL 来完成我想要做的事情:

SELECT CONVERT(VARCHAR(10), MIN(StartDate), 101) AS MinDate FROM TableName
Run Code Online (Sandbox Code Playgroud)

谢谢!

dan*_*n04 5

SQLite 没有日期类型。实际返回的CURRENT_TIMESTAMP是格式为 的字符串YYYY-MM-DD HH:MM:SS。日期/时间格式化/计算函数接受此格式的字符串或数字,除非您使用“unixepoch”修饰符,否则它们被解释为儒略日期

因此,“将日期转换为字符串”取决于您存储日期的方式:

  • 如果您将它们存储为儒略日期,请使用DATE(YourDateColumn).
  • 如果您将它们存储为 Unix 时间,请使用DATE(YourDateColumn, 'unixepoch').
  • 如果您将它们存储为 ISO 8601 字符串,那么您无需执行任何操作。除非您想要不同格式的字符串,在这种情况下您应该使用该STRFTIME函数。
  • 如果您将它们存储为其他字符串格式,您确实应该考虑使用受支持的格式之一,以便您可以使用日期/时间函数。

在所有三种日期格式中,时间顺序与字典顺序相同,因此该MIN函数按预期工作。