Как получить строки с текущей датой из sqlite? - PullRequest
0 голосов
/ 20 октября 2018

У меня есть большая база данных 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 голосов
/ 20 октября 2018

Вы можете попробовать следующий запрос:

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

Это будет ограничивать все значения даты и времени, которые встречаются сегодня в любой точке, но строго меньше полуночи следующего дня.

Это, вероятно, лучший подход, потому что он не включает в себя обертывание вашего столбца date в функцию, что означает, что SQLite все еще может использовать индекс, который может существовать в date.

0 голосов
/ 20 октября 2018

Используйте DATE() с обеих сторон:

WHERE DATE(date) = DATE('now')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...