четверг, 19 февраля 2009 г.

MySQL: TO_DAYS()

Активируй свой Блог! Система Активной Рекламы WMZONA.COM * [Будущий миллионер]
Результат работы функции MySQL TO_DAYS() от неправильной даты = NULL:

mysql> SELECT TO_DAYS('0000-00-00');
NULL

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

mysql> SELECT TO_DAYS(NOW()) - TO_DAYS('0000-00-00');
NULL

Как вариант можно использовать UNIX_TIMESTAMP:

mysql> SELECT (UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP('0000-00-00'))/86459;
14284.81

p.s. для умников, 86459 - округлённое количество секунд в сутках с учётом високосных лет. Обычно программисты используют 86400, что со временем даёт ощутимый сдвиг.


* Реклама в бомжеленте.

Помогите детям!

[http://100baksov.blogspot.com/2009/02/mysql-todays.html]