Окт 31

MySQL. Проверка валидности даты

Категория: Программирование

Если в MySQL сделать следующий запрос:

select date(”2008-02-31″);

умный MySQL вернет в результате запроса NULL, ну логично, что в феврале месяце в 2008 году не было 31 дня, да и 30 собственно тоже не было, а вот если написать

select date(”2008-02-29″);

то в ответе получим значение отличное от NULL, а именно эту же дату, что и будет доказательством её валидности и существования.

P.S. Не знаю как в ранних версиях с наличием такой фичи, но в 5.0.24 она есть и иногда бывает очень даже полезной

3 комментариев на данный момент

  1. Волошин Сергей Октябрь 31st, 2008 16:02

    А в php для проверки даты есть http://ua.php.net/checkdate

    Пришлось использовать буквально 10 минут назад :)

  2. vitamin Октябрь 31st, 2008 16:30

    Отлично, не знал о такой функции.
    Если бы знал, не тревожил бы MySQL:)

  3. solenko Февраль 18th, 2009 15:53

    А еще strtotime возвращает null для непорректной даты. На крайняк уж можно было регулярку написать — все эффективнее чем отдельный запрос к базе

Оставить комментарий