| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Базы Данных > Что оптимальнее (обработка дат). |
| Автор: Kesh 6.2.2005, 21:16 | ||||
Есть табличка, в которой есть два поля `datestart` и `dateend` типа timestamp(14). В которых хранятся даты начала и конца определенного события. После этого выполняется запрос на события, которые должны произойти в течение недели. Делается это так
Обратите внимание на это выражение
оно преобразует дату из двух полей в выражение типа 11:40 - 12:20 Вопрос вот в чем, не оптимальнее ли будет это делать (преобразование дат) через PHP и как это сделать. |
| Автор: Mal Hack 6.2.2005, 22:03 |
| Kesh А почему нельзя хранить дату ввиде: 1107716599, работать элементарно и не надо диких запросов? |
| Автор: Kesh 6.2.2005, 22:52 |
| Mal Hack а в timestamp она так и хранится только наоборот YYYYMMDDHHmmSS Добавлено @ 22:54 http://www.mysql.ru/docs/man/DATETIME.html |
| Автор: Mal Hack 6.2.2005, 23:12 |
| Нет, ты не понял... Я тебе говорю не про YYYYMMDDHHmmSS, а про UNIX TIME, где 1107716599 - число секунд с начала 1970 года... |
| Автор: Kesh 7.2.2005, 00:42 | ||
Mal Hack
Ладно, понятно, извини недоглядел... Ну и чем лучше выбирать UNIX_TIME и потом отрабатывать его в PHP, чем получать готовые данные из запроса?.. |
| Автор: Mal Hack 7.2.2005, 00:54 |
| 1. UNIX_TIME - число, а следовательно ве операции сравнения в базе будут намного быстрее, чем использования FROM_UNIXTIME и т.п. 2. Выбрать за период очень просто, опять `time` < `time` - 7 * 60* 60 к примеру. 3. запросы короче и более читаемы. 4. Когда ты уже вынешть нужную инфу тебе очень легко сделать нормальный вывод, применив к ячейке date(); к примеру... Т.е. ты не завязан на конкретном формате даты, который ты делаешь в запросе.. Но самое главное - 1 и 2. |
| Автор: Kesh 7.2.2005, 01:19 | ||||||||
Mal Hack
Я не использую FROM_UNIXTIME.
7*60*60 тоже вычисляется... И даже если записать константой, то уж от операции вычитания никуда недеться...
Запрос зашит в php код и я не думаю, что преобразования внутри php будут удобнее, чем в запросе с точки зрения читаемости самих исходников скриптов.
Так а сейчас мне этого вообще делать не надо - я просто вывожу уже имеющиеся данные... |
| Автор: Kesh 7.2.2005, 01:30 | ||
|
| Автор: Mal Hack 7.2.2005, 12:05 | ||
Я имел ввиду не конкретно эжту функцию, а вообше... CONCAT и DATE_FORMAT в твоем запросе. |
| Автор: Kesh 7.2.2005, 14:41 |
| Mal Hack А ты думаешь, что такая обработка в php будет гораздо быстрее?.. |
| Автор: Song 7.2.2005, 14:54 |
| Kesh конечно. + ещё unix time использовать. Даже не сравнимо. Ты сделай EXPLAIN запроса, посмотри, утверждать не берусь, но по-моему при использовании таких функций мускул не использует индекс. |