Mysql Дата манипуляции - PullRequest
       5

Mysql Дата манипуляции

1 голос
/ 07 января 2012

У меня есть таблица с разными датами, и одно из них разделено на 3 поля: PassDay, PassMonth, PassYear.

Я хочу сравнить эти даты с другой датой-временем orig_date, поэтому я сделал

select `orig_date`, CONCAT_WS('-',`PassYear`,`PassMonth`,`PassDay`) as `pass_expiration` where `pass_expiration` < `orig_date`;

Проблема в том, что месяц сохраняется как название месяца (январь), а не какчисло (01), поэтому мой результат для pass_expiration, например, 2013-апрель-15.

Есть ли способ преобразовать это (2013-апрель-15) в обычную дату-время непосредственно из запроса

1 Ответ

0 голосов
/ 07 января 2012

Вы хотите str_to_date:

where STR_TO_DATE(CONCAT_WS('-',PassYear,PassMonth,PassDay),'%Y-%M-%d') < orig_date

Также, как примечание, вы не можете ссылаться на вычисляемый столбец в предложении where. Только в предложении order by (where - это предикат, который используется для фильтрации результатов из таблицы; order by запускается после вычисления набора столбцов).

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