| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > DATETIME or INT ? |
| Автор: Mosik 6.7.2006, 10:39 |
| Все время держал дату в формате DATETIME. Но постоянно приходилось ее конвертить в метку времени (timestamp) а потом к тому виду, который хочется. Вчера посмотрел в каком формате держат дату разработчики продуктов phpBB, osCommerce и echoArticles. Они все держат время в поле типа INT! Вот и думаю. Не с балды же ведь разработчики БД реализовали типы данных даты и времени. Так почему многие держат в INT? Я понимаю что это личный выбор каждого разработчика, в каком формате держать дату. Вот и прошу высказаться по этому поводу. (в поиске был) Прошу высказаться кто в каком формате держит дату в БД и аргументировать свой выбор. |
| Автор: Mosik 6.7.2006, 11:57 | ||
Конвертацию я производил средствами php Функции mySQL не использовал |
| Автор: cyberface 7.7.2006, 12:56 |
| Мне тоже было бы интересно услушать мнение людей. Лично я храню в формате timestamp, а при извлечении использую функции вот так: FROM_UNIXTIME(UNIX_TIMESTAMP(time),'%H:%i %d.%m.%y') |
| Автор: Mosik 7.7.2006, 13:24 |
| Почитал вчера комментарии тут и на других форумах и почти согласился с мыслью что буду держать дату в DATETIME. А потом меня посетила следующая мысль: У меня есть класс, который отвечает за работу с таблицей статей (продуктов, сайтов, нет значения чего...). В нем есть метод getItem, который возвращает массив с данными статьи. Везде в коде проекта я вызываю данный метод объекта для получения элемента. Зачем думаю объяснять не стоит. Так вот, в разных местах проекта мне может понадобиться дата в разных форматах. И использовать функции mySQL тут уже не получится так как запрос к БД идет в методе getItem, который для всего проекта один. Получается что в данном случае целесообразней дату хранить как INT и средствами PHP ее конвертить в любой формат? Какие будут мысли по этому поводу? ------------- работаю над http://www.webconsultant.com.ua/ |
| Автор: Gold Dragon 10.7.2006, 11:32 | ||
Из лично опыта... раньше использовал INT, сейчас уже не помню, но операции с датой в этом формате в MySQL не очень удобны. И в итоге перешёл на DATETIME. По крайней мере данные выглядят читаемы. А в PHP я написал небольшую функцию, которая готовит мне DATETIME в нужный мне формат. Плюс ко всему, мне не нужно будет изгаляться, когда понадобится делать другой формат, достаточно просто поправить функцию |
| Автор: Kefir 10.7.2006, 12:30 |
| Mosik, если тебе нунразные форматы, то можно ведь добавить один параметр в функцию getItem($dateFormat) {}, который потом проставлять в запрос к БД, а по дефолту этот параметр выставить тот, который ты чаще всего используешь, итого, получаем - если необходимо получить итем со стандартным форматов даты - пиши getTime(), если же какой-либо другой - просто напросто getItem("new format"). И проблема отпадает. |
| Автор: BASILIO 18.3.2008, 11:42 | ||
| Gold Dragon, Если не секрет, почему изменил своему принцепу, вот просто две темы нашол с твоим коментом, тута ты ещё был за ИНТ: http://forum.vingrad.ru/index.php?showtopic=41106&view=findpost&p=315243 А сейчас уже против.... лично мне нужно сейчас будет отсчитывать 24 часа, почему-то считаю что проще всего будет сделать так:
вот и думаю, хранить ету метку как ИНТ или как Датавремя.... |
| Автор: Serkys 18.3.2008, 14:58 |
| Я храню время в виде timestamp. Удобно тем, что в шаблонах smarty можно запросто приводить дату к тому формату, который нужен сейчас, не углубляясь в код. С функциями обработки даты/времени в MySQL почти не знаком, может быть поэтому мне кажется удобным хранить время в timestamp'е. |