Как получить строку с конкретной датой в sqlite? - PullRequest
0 голосов
/ 03 ноября 2011

Итак, сейчас я использую этот запрос:

select * from items where mydate = "2009-11-28"

, и поскольку моя дата хранится в виде текста в формате yyyy-mm-dd, это должно непременно вернуть одну строку с соответствующей датой,право?Если нет, то что я делаю не так?

Я пытался сделать это:

select * from items where releasedate between date("2009-11-28") and date("2009-11-29")

, и все работало нормально, но всегда приходилось использовать между ними только один день, что кажется неправильным.

Итак, второй запрос работает нормально, а первый - нет.Есть ли причина?Я также попытался поместить дату в date(), но это тоже не сработало.

Ответы [ 3 ]

4 голосов
/ 03 ноября 2011

попробуйте этот запрос,

select * from items where mydate like '2009-11-28%'
1 голос
/ 03 ноября 2011

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

Кроме того, если вы конвертируете реальные даты, убедитесь, что они точно "2009-11-28". Если вы используете общий аргумент даты, вы, вероятно, не точно в полночь, и диапазон будет правильным способом запроса, а не фиксированным значением даты.

0 голосов
/ 20 ноября 2013
select * from items where mydate = "2009-11-28"  // Here do not use double quotation

вместо этого попробуйте это

select * from items where mydate = '2009-11-28'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...