Выбор строк, где столбец даты и времени является определенным днем - PullRequest
3 голосов
/ 15 ноября 2011

Я пытаюсь написать запрос SQLite в Android, где я выбираю все строки в таблице, где дневной компонент столбца datetime (хранится как строки ISO 8601) равен заданному дню. По сути, я хочу выбрать все строки с определенной датой, независимо от времени.

Как этого достичь?

Ответы [ 4 ]

1 голос
/ 16 ноября 2011

SQLite имеет некоторые функции даты и времени .В вашем случае выбор может выглядеть следующим образом:

select * from table where date(your_date_time_column) = iso_8601_date_only_value;
1 голос
/ 16 ноября 2011

Используйте этот запрос

select * from table_name where day=desired_day;

Итак, этот код:

database.query("table_name", null, "day like ?",new String[]{"____-__-daynumber%"}, null, null, null, null); 

Извлеките эту документацию , чтобы увидеть, как я выяснил, что использовать SQL-регулярное выражение.Это регулярное выражение учитывает любой год и любой месяц.Если вам нужен только определенный день в определенном месяце в определенном году, сделайте:

database.query("table_name", null, "day like ?",new String[]{"1983-03-22%"}, null, null, null, null); 

Это будет выглядеть для дня 03/22/1983

0 голосов
/ 16 ноября 2011

Вы всегда можете использовать 00:00:00 и 23:59:59 в качестве времени начала и окончания и просто использовать <= и> = в необработанном запросе, например ...

SELECT * FROM the_table WHERE the_datetime_column >= '2011-11-15 00:00:00' AND the_datetime_column <= '2011-11-15 23:59:59'
0 голосов
/ 16 ноября 2011
SELECT * FROM test 
        WHERE strftime('%Y-%m-%d', timecol)=strftime('%Y-%m-%d', '2008-04-12')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...