Дата хранится как текстовый запрос между и выше - PullRequest
1 голос
/ 16 ноября 2011

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

Два поля, которые я должен запросить, хранятся как текст этого формата '19671011', и мне нужно выбрать диапазон между и выше.

Как я могу запросить текстовое поле, извлекая записи определенного месяца?

select * from recordtable where birthday between () - () and anotherdate < '20081111'

Ответы [ 4 ]

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

Редактирование, чтобы возвращать людей только за определенный месяц:

SELECT * FROM recordtable 
WHERE (MONTH(CAST(birthday AS DATE)) = 10)
AND CAST(anotherdate AS DATE) < CAST('20081111' AS DATE);

Вот хорошая ссылка для вычисления даты SQL: http://mysql -tips.blogspot.com / 2005/04 /MySQL-дата-calculations.html

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

Вы можете попробовать попросить MySql привести эти строковые значения в качестве дат (при условии, что все строки имеют 8 символов, которые должны работать для необходимых сравнений).

Примерно так:

CAST('20081111' AS DATE)

Тогда ваш запрос может выглядеть примерно так:

SELECT * FROM recordtable 
WHERE CAST(birthday AS DATE) >= CAST('20050405' AS DATE)
AND CAST(birthday AS DATE) <= CAST('20111010' AS DATE)
AND CAST(anotherdate AS DATE) < CAST('20081111' AS DATE);
0 голосов
/ 16 ноября 2011

Вы также можете использовать оператор BETWEEN в решении vbigham следующим образом:

Вы можете попробовать попросить MySql привести эти строковые значения как даты (при условии, что все строки равны 8 символам, это должно работать)для сравнений, которые вам нужны).

Например:

CAST ('20081111' AS DATE)

Тогда ваш запрос может выглядеть примерно так:

SELECT * FROM recordtable 
WHERE (CAST(birthday AS DATE) BETWEEN CAST('20050405' AS DATE) 
                                      AND CAST('20111010' AS DATE))
AND CAST(anotherdate AS DATE) < CAST('20081111' AS DATE);
0 голосов
/ 16 ноября 2011

Это не совсем оформлено как вопрос, но позвольте мне попытаться ответить. Если в поле даты всегда хранится 8 символов ГГГГММДД, то вы можете просто сравнить поля как строки.

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