Выбор даты из таблицы, где тип переменной столбца Varchar в SQL - PullRequest
0 голосов
/ 26 января 2012

Предположим, у меня есть таблица базы данных TABLE1 и есть столбец COLUMN1 .Объявление переменной для этого столбца установлено как VARCHAR(20).Кроме того, значение столбца может быть NULL или EMPTY.

Предположим, у меня есть некоторые «даты» в этом столбце (формат 12/01/2011) и мне нужен запрос для получения дат, не могубыть NULL или пустым, а даты - до одного года в прошлом (предположим, что текущая дата - 25.01.2012. Мне нужны даты до 25.01.2011).

Пожалуйста, помогите.

Ответы [ 4 ]

0 голосов
/ 26 января 2012
SELECT `COLUMN1` 
FROM   `TABLE1` 
WHERE  `COLUMN1` is NOT NULL AND
       `COLUMN1` != '' AND 
        STR_TO_DATE(`COLUMN1`, '%m/%d/%Y') < CURRENT_DATE() - INTERVAL 1 YEAR;
0 голосов
/ 26 января 2012

Почему бы вам не использовать date вместо varchar для вашей даты, поскольку вы храните ее в этой форме?Если вы сохраните даты в виде YYYY-MM-DD в качестве архива, вы можете даже использовать:

SELECT * FROM table1 WHERE column1 < DATE( "2011-01-01" )

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

0 голосов
/ 26 января 2012
SELECT * FROM  TABLE1 WHERE CONVERT(DATE, VC_DATE) < CONVERT(DATE,'01/25/2011')
AND LEN(VC_DATE)>0
0 голосов
/ 26 января 2012

конвертируйте varchar в дату и затем работайте над ней.

SELECT convert(date, column1) as date
from table1
where convert(date, column1) < '01/25/2011'
and date is not null and date <> ''
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...