vitaliy_mad пишет:надо перевести к "более нормальному" виду
Нет у автора ни секунд, ни минут и нет часов. Есть день/мес/год.
DlTA пишет:`dd`*100+`mm`*100+`yyyy`*1000
Задумка возможно верная, но не с такими коэффициентами. Возьмем 03.01.2010 (3-е января) и 01.02.2010 (1-е февраля), годы считать не будем они одинаковые. Получаем по формуле: 3-е января => 300+100=400; 1-е февраля => 100+200=300. Получается что 3-е января позже чем 1-е февраля (400>300). А это не верно.
Весовые коэффициенты перед днем/месяцем/годом должны однозначно переводить dd в текущий день года (как минимум, можно пропорционально в больший по номеру день).
Т.е. в месяце максимум 31 день, в году максимум 12 мес: `dd`+`mm`*31+`yyyy`*31*12
Но при таком подходе будет жутко медленно работать выборка при большом кол-ве данных. Кроме того, тут ни в каком месте невозм. использовать индексы БД. Индексы по полям `dd`,`mm`,`yyyy` помогут если задать интервал в условии:
В этом случае лучше использовать составной индекс по полям `dd`,`mm`,`yyyy`.
Ну или думать об изменении структуры данных...
С уважением.
|