Romantik
TeaM PHPClub
опять разности MySQL4 и MySQL5 (DATE_FORMAT)
[sql]
SELECT DATE_FORMAT(`news_date`, "%d-%m-%Y") AS `news_date` FROM `news` ORDER BY `news_date` DESC;
[/sql]
MySQL 4.1.18
news_date
-------------
13-08-2006
04-07-2006
07-05-2004
MySQL 5.0.20
news_date
-------------
13-08-2006
07-05-2004
04-07-2006
если использовать такой запрос:
[sql]
SELECT DATE_FORMAT(`news_date`, "%d-%m-%Y") AS `n_date` FROM `news` ORDER BY `news_date` DESC;
[/sql]
то корректно идет вывод, т.е. ORDER BY news_date сортирует по дате, а ORDER BY n_date сортирует как строки.
Это опять получается что в MySQL5 идет "подгонка" под стандарты и логически не правильные запросы, которые MySQL3 и 4 "прощала" юзерам теперь "без предупреждения" посылает в сад.
Сложности возникли, потому как написан API который сопоставляет поля формопостроителя, валидатора, таблицы в базе и шаблонизатора, т.е. если в базе news_date то и везде используется news_date.
Какие есть пути решения, кроме переделки API ?
[sql]
SELECT DATE_FORMAT(`news_date`, "%d-%m-%Y") AS `news_date` FROM `news` ORDER BY `news_date` DESC;
[/sql]
MySQL 4.1.18
news_date
-------------
13-08-2006
04-07-2006
07-05-2004
MySQL 5.0.20
news_date
-------------
13-08-2006
07-05-2004
04-07-2006
если использовать такой запрос:
[sql]
SELECT DATE_FORMAT(`news_date`, "%d-%m-%Y") AS `n_date` FROM `news` ORDER BY `news_date` DESC;
[/sql]
то корректно идет вывод, т.е. ORDER BY news_date сортирует по дате, а ORDER BY n_date сортирует как строки.
Это опять получается что в MySQL5 идет "подгонка" под стандарты и логически не правильные запросы, которые MySQL3 и 4 "прощала" юзерам теперь "без предупреждения" посылает в сад.
Сложности возникли, потому как написан API который сопоставляет поля формопостроителя, валидатора, таблицы в базе и шаблонизатора, т.е. если в базе news_date то и везде используется news_date.
Какие есть пути решения, кроме переделки API ?