| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Базы Данных > Данные за неделю |
| Автор: DiNaMiK 20.11.2006, 04:43 |
| Суть проблемы такова надо вывести данные за неделю. В БД Данные даты храню в формате: d.m.Y Вопрос как можно вывести данные у кого дата недели? Или же как и в каком формате лучше даные Даты в БД? БД - MySQL. |
| Автор: -=Ustas=- 20.11.2006, 20:11 |
Лучше в INT(14) |
| Автор: SelenIT 20.11.2006, 20:35 |
| -=Ustas=-, а что такое INT(14)? И чем плох встроенный DATETIME? |
| Автор: -=Ustas=- 21.11.2006, 10:50 |
Целочисленный тип, в поле которого лучше хранить UNIX_TIMESTAMP, работать с этим типом гораздо удобнее чем DATETIME или ему подобными. Но это ИМХО, по своему опыту никакие другие типы для даты не использовал. |
| Автор: SelenIT 21.11.2006, 12:53 |
| -=Ustas=-, меня просто смутила цифра 14 - мне казалось, что обычный INT до 11 знаков, а поскольку TIMESTAMP раньше по умолчанию отображался как именно 14-значное число (да и, по-моему, DATETIME в числовом контексте тоже), у меня возник "глюк", что речь идет о каком-то подобном формате (для организации которого вручную, насколько я понимаю, нужен был бы BIGINT). Про то, что UNIX_TIMESTAMP в целочисленном поле гораздо удобнее, чем DATETIME, все же осмелюсь не согласиться - как-никак, для применения встроенных функций даты-времени необходима промежуточная операция, да и диапазон значений уже... но это вопрос действительно спорный и вообще, насколько я понимаю, тема для "религиозных войн"... |
| Автор: -=Ustas=- 21.11.2006, 14:27 |
| Да, я с тобой согласен, что тут дело каждого, но... есть одно но. Вот у тебя допустим табличка с несколькими сотнями тысяч записей, и тебе нужно выбрать записи за прошлую неделю, если ты данную величину вычислишь программно для запроса, то в запросе у тебя будет сравнение с константной, а если же ты будешь высчитывать на уровне SQL-сервера функциями в запросе, то как ты думаешь, что будет быстрее?! |
| Автор: SelenIT 21.11.2006, 15:18 |
| -=Ustas=-, но ведь в случае одиночной выборки мне ничто не помешает точно так же подставить в запрос константу и для DATETIME, возможно, ее даже удобнее будет сформировать из-за большей "человекопонятности" формата А вот для группировки по временным интервалам (скажем, для отчета по дням недели или по времени суток) дополнительный FROM_UNIXTIME() вполне может сказаться на скорости... |