获取SQLite中最新时间戳的记录

pra*_*ala 1 sqlite datetime timestamp

我知道其他人之前已经问过这个问题,但所有这些问题都使用MySQL或其他数据库.怎么做SQLite?我问,因为SQLite没有单独的日期数据类型.我用这个模式创建了表

分段:

CREATE TABLE x (
id INTEGER NOT NULL,
timestamp TIMESTAMP NOT NULL,
PRIMARY KEY(timestamp,id)
);
Run Code Online (Sandbox Code Playgroud)

这样的事情会起作用吗?

SELECT * FROM x
WHERE DATE(timestamp) = (
    SELECT MAX(DATE(timestamp)) FROM x
)
Run Code Online (Sandbox Code Playgroud)

laa*_*lto 8

时间戳类似于2014-03-05T20:00:00.000具有词典(字母顺序)排序与时间顺序相同的属性,您可以使用普通的旧比较运算符和ORDER BY它们,如下所示:

SELECT * FROM x ORDER BY timestamp DESC LIMIT 1;
Run Code Online (Sandbox Code Playgroud)

  • 是的,只要分量按降序排列(yyyy-MM-dd HH:mm:ss.zzz 符合模式)就没有关系。 (2认同)