如何从sqlite获取具有当前日期的行?

时间:2018-10-20 13:22:37

标签: sql sqlite

我有一个大型的sqlite数据库,具有相似的表

/* Create a table called NAMES */
BEGIN TRANSACTION;

/* Create a table called NAMES */
CREATE TABLE NAMES(Id integer PRIMARY KEY, date DATETIME CURRENT_TIMESTAMP,Name text);


/* Create few records in this table */
INSERT INTO NAMES VALUES(1,DATETIME('now'),'Tom');
INSERT INTO NAMES VALUES(2,DATETIME('now'),'Lucy');
INSERT INTO NAMES VALUES(3,DATETIME('now'),'Frank');
INSERT INTO NAMES VALUES(4,DATETIME('now'),'Jane');
INSERT INTO NAMES VALUES(5,DATETIME('now'),'Robert');
COMMIT;

我想获取与今天相对应的行。

 SELECT * FROM NAMES WHERE date=DATE('now')

,但不返回任何内容。如何获得与当天对应的行?

2 个答案:

答案 0 :(得分:2)

您可以尝试以下查询:

SELECT *
FROM NAMES
WHERE date >= DATE('now') AND date < DATE('now', '+1 day');

这将限制于今天在任何时间出现的所有日期时间值,但严格小于第二天的午夜。

这可能是最好的方法,因为它不涉及将date列包装在函数中,这意味着SQLite可能仍使用date上可能存在的索引。

答案 1 :(得分:1)

在两侧都使用DATE()

WHERE DATE(date) = DATE('now')