Страница 1 из 1

Как заставить работать запрос с датой вида "2010-6-9"

Добавлено: 2010-06-09 9:34:12
cs
Добрый день.

Знатоки MySQL выручайте:
Стояла MySQL 5.5.1 и SAMS 1.0.5, все работало, после обновления на MySQL 5.5.4 SAMS перестал считать статистику, после долгих копаний я нашел проблему:
дело в том, что SAMS использует запросы с датой вида "2010-6-9" (дата для примера), а не "2010-06-09", т.е. запрос "SELECT * FROM squidlog.cachesum WHERE date='2010-6-9'" ничего не вирнет, т.к. MySQL понимает только если день и месяц имеет два знака, а такой запрос выполнится "SELECT * FROM squidlog.cachesum WHERE date='2010-06-09'".

Можно как-нибудь заставить MySQL понимать дату, если день и месяц имеет один знак? Просто я могбы и перековырять все исходники SAMS'a и исправить, но это не выход

Re: Как заставить работать запрос с датой вида "2010-6-9"

Добавлено: 2010-06-09 9:53:56
E-Wind
Написать разработчикам SAMS,
http://sams.perm.ru/index.php?option=co ... 6&Itemid=3
предварительно посмотрев их форум, может они уже исправили это во второй версии
http://sams.perm.ru/index.php?option=co ... 3&Itemid=1

Исходя из того, что они уже переписали его на C то наверное
перековырять все исходники SAMS'a и исправить
можно считать выходом...

Re: Как заставить работать запрос с датой вида "2010-6-9"

Добавлено: 2010-06-20 18:47:47
zg
у меня пашет

Код: Выделить всё

mysql> select version(), cast("2009-06-01" AS DATE), cast("2009-6-1" AS DATE);
+--------------------+----------------------------+--------------------------+
| version()          | cast("2009-06-01" AS DATE) | cast("2009-6-1" AS DATE) |
+--------------------+----------------------------+--------------------------+
| 5.1.41-3ubuntu12.3 | 2009-06-01                 | 2009-06-01               |
+--------------------+----------------------------+--------------------------+
1 row in set (0.00 sec)
если у тебя не так, значит нужно читать changelog и смотреть, что там исправили/подкрутили. Скорее всего SQL_MODE подкрутили под стандарт.