SQLite按日期排序1530019888000

dun*_*lli 62 sql sqlite sql-order-by android-sqlite

我的SQLite数据库中的每条记录都包含一个字段,其中包含以格式Date存储的字段.string'yyyy-MM-dd HH:mm:ss'

是否可以查询数据库以获取包含最新日期的记录?

par*_*osh 132

你可以这样做

SELECT * FROM Table ORDER BY date(dateColumn) DESC Limit 1
Run Code Online (Sandbox Code Playgroud)

  • 请注意,如果您想按日期**和时间**订购,则需要使用`date()`intead of`date()` (50认同)
  • 如果日期字符串的格式为“dd-mm-yyyy”怎么办?为此,您的答案不起作用 (3认同)

Ahm*_*aka 40

对我来说,我通过这种方式解决了我的问题

select *  from Table order  by datetime(datetimeColumn) DESC LIMIT 1
Run Code Online (Sandbox Code Playgroud)

因为我将它存储为日期时间而不是日期列

  • 此外,date()函数以此格式返回日期:YYYY-MM-DD.time()函数将时间返回为HH:MM:SS.datetime()函数返回"YYYY-MM-DD HH:MM:SS". (3认同)

Nab*_*.Z. 10

当您确定文本字段的格式是yyyy-MM-dd HH:mm:ss(例如:)时2017-01-02 16:02:55,它对我来说很简单:

SELECT * FROM Table ORDER BY dateColumn DESC Limit 1

没有任何额外的日期功能!


Zaf*_*ffy 5

您需要将其转换为unix时间戳,然后进行比较:

SELECT * FROM data ORDER BY strftime('%s', date_column) DESC
Run Code Online (Sandbox Code Playgroud)

但是,如果有很多行,这可能会很慢。更好的方法是默认存储unix时间戳,并为该列创建索引。