![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
Mosik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 6.7.2006 Репутация: нет Всего: нет |
Все время держал дату в формате DATETIME. Но постоянно приходилось ее конвертить в метку времени (timestamp) а потом к тому виду, который хочется.
Вчера посмотрел в каком формате держат дату разработчики продуктов phpBB, osCommerce и echoArticles. Они все держат время в поле типа INT! Вот и думаю. Не с балды же ведь разработчики БД реализовали типы данных даты и времени. Так почему многие держат в INT? Я понимаю что это личный выбор каждого разработчика, в каком формате держать дату. Вот и прошу высказаться по этому поводу. (в поиске был) Прошу высказаться кто в каком формате держит дату в БД и аргументировать свой выбор. |
|||
|
||||
DENNN |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 2 Всего: 43 |
||||
|
||||
Mosik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 6.7.2006 Репутация: нет Всего: нет |
||||
|
||||
cyberface |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 6.6.2006 Репутация: 1 Всего: 5 |
Мне тоже было бы интересно услушать мнение людей. Лично я храню в формате timestamp, а при извлечении использую функции вот так:
FROM_UNIXTIME(UNIX_TIMESTAMP(time),'%H:%i %d.%m.%y') |
|||
|
||||
Mosik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 6.7.2006 Репутация: нет Всего: нет |
Почитал вчера комментарии тут и на других форумах и почти согласился с мыслью что буду держать дату в DATETIME.
А потом меня посетила следующая мысль: У меня есть класс, который отвечает за работу с таблицей статей (продуктов, сайтов, нет значения чего...). В нем есть метод getItem, который возвращает массив с данными статьи. Везде в коде проекта я вызываю данный метод объекта для получения элемента. Зачем думаю объяснять не стоит. Так вот, в разных местах проекта мне может понадобиться дата в разных форматах. И использовать функции mySQL тут уже не получится так как запрос к БД идет в методе getItem, который для всего проекта один. Получается что в данном случае целесообразней дату хранить как INT и средствами PHP ее конвертить в любой формат? Какие будут мысли по этому поводу? ------------- работаю над форумом косметики Oriflame |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 2 Всего: 71 |
Из лично опыта... раньше использовал INT, сейчас уже не помню, но операции с датой в этом формате в MySQL не очень удобны. И в итоге перешёл на DATETIME. По крайней мере данные выглядят читаемы. А в PHP я написал небольшую функцию, которая готовит мне DATETIME в нужный мне формат. Плюс ко всему, мне не нужно будет изгаляться, когда понадобится делать другой формат, достаточно просто поправить функцию -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
Kefir |
|
|||
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 1 Всего: 87 |
Mosik, если тебе нунразные форматы, то можно ведь добавить один параметр в функцию getItem($dateFormat) {}, который потом проставлять в запрос к БД, а по дефолту этот параметр выставить тот, который ты чаще всего используешь, итого, получаем - если необходимо получить итем со стандартным форматов даты - пиши getTime(), если же какой-либо другой - просто напросто getItem("new format"). И проблема отпадает.
|
|||
|
||||
BASILIO |
|
|||
![]() Koté-CAH ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 25.2.2008 Репутация: нет Всего: нет |
Gold Dragon,
Если не секрет, почему изменил своему принцепу, вот просто две темы нашол с твоим коментом, тута ты ещё был за ИНТ: http://forum.vingrad.ru/index.php?showtopi...st&p=315243 А сейчас уже против.... лично мне нужно сейчас будет отсчитывать 24 часа, почему-то считаю что проще всего будет сделать так:
вот и думаю, хранить ету метку как ИНТ или как Датавремя.... |
|||
|
||||
Serkys |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1061 Регистрация: 19.4.2004 Репутация: нет Всего: 22 |
Я храню время в виде timestamp. Удобно тем, что в шаблонах smarty можно запросто приводить дату к тому формату, который нужен сейчас, не углубляясь в код. С функциями обработки даты/времени в MySQL почти не знаком, может быть поэтому мне кажется удобным хранить время в timestamp'е.
|
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |