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

时间:2010-06-10 20:01:24

标签: sql sqlite

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

SELECT MIN(StartDate) AS MinDate FROM TableName

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

SELECT CONVERT(VARCHAR(10), MIN(StartDate), 101) AS MinDate FROM TableName

谢谢!

3 个答案:

答案 0 :(得分:4)

SQLite没有日期类型。 CURRENT_TIMESTAMP实际返回的是YYYY-MM-DD HH:MM:SS格式的字符串。 date/time formatting/calculation functions接受此格式的字符串,或者数字,除非您使用Julian dates修饰符,否则将被解释为'unixepoch'

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

  • 如果您将它们存储为Julian日期,请使用DATE(YourDateColumn)
  • 如果您将它们存储为Unix时间,请使用DATE(YourDateColumn, 'unixepoch')
  • 如果您将它们存储为ISO 8601字符串,那么,您不需要做任何事情。除非你想要一个不同格式的字符串,在这种情况下你应该使用STRFTIME函数。
  • 如果您将它们存储为其他字符串格式,您应该考虑使用其中一种支持的格式,以便使用日期/时间功能。

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

答案 1 :(得分:3)

试试这个:

SELECT MIN(DATE('your-date-here')) as MinDate FROM TableName

并确保您的日期 - 遵循SQLite格式良好的格式(请参阅文档中的Time String。部分)

答案 2 :(得分:2)

试试这个!!

 SELECT * FROM Table WHERE strftime('%Y-%m-%d',CreatedAt) BETWEEN '2014-10-07' AND '2014-10-17'
相关问题