Почему не используете TIMESTAMP?
16382 сообщения
#15 лет назад
Я отредактировал свой пост выше. Я склонен использовать то, что предполагается использовать в данной ситуации разработчиком. Это не всегда будет максимально быстро, но всегда будет максимально предсказуемо (а это дорогого стоит).
1172 сообщения
#15 лет назад
Попробуйте вот этот код, где $var - время, которое получено из базы, если хранить его в timestampecho date('d.m.y', $var);
16382 сообщения
#15 лет назад
Lisio, это все понятно. Это прекрасно и замечательно и удобно. И сериализованные массивы в базе это тоже прекрасно и замечательно. Но для даты и времени есть специальный тип данных, который надо использовать для хранения значений даты и времени.
1172 сообщения
#15 лет назад
Цитата ("frig"):Это прекрасно и замечательно и удобно.
Цитата ("frig"):
Но для даты и времени есть специальный тип данных, который надо использовать для хранения значений даты и времени.
Без комментариев. Где-то тут я уже писал про bdsm-кодинг.
16382 сообщения
#15 лет назад
Цитата ("Lisio"):Без комментариев. Где-то тут я уже писал про bdsm-кодинг.
Это смотря с какой стороны посмотреть... я совсем не радуюсь, когда мне приходится разгребать чужие сериализованные массивы и составные поля. ооочень вспоминаю таких упрощенцев "не злим тихим словом"

124 сообщения
#15 лет назад
Тип TIMESTAMP много чего умеет, да и сократит код например при обновлении значения или добавлении новой записи в таблицу, в случае необходимости указывать дату вставки и обновления записи. В общем когда тип поля int например для поля с названием date_row, использовать TIMESTAMP более целесообразно.
1172 сообщения
#15 лет назад
В данном топике ваше сравнение не совсем уместно. Предыдущий коммент ваш равносилен "Дядя Сэм сказал, поэтому надо. И плевать, что неудобно, что надо конвертировать, выкручиваться, быдлокодить, но делать как повелевает хозяин".Цитата ("nolesxp"):
Тип TIMESTAMP много чего умеет, да и сократит код например при обновлении значения или добавлении новой записи в таблицу, в случае необходимости указывать дату вставки и обновления записи.
Что он умеет такого, чего не умеет int? И чем он короче записи UPDATE table SET field=$var ?
771 сообщение
#15 лет назад
А кто сказал что не пользуемся? Свои функции оно вполне выполняет, например для логов идеально.
124 сообщения
#15 лет назад
Цитата ("Lisio"):В данном топике ваше сравнение не совсем уместно. Предыдущий коммент ваш равносилен "Дядя Сэм сказал, поэтому надо. И плевать, что неудобно, что надо конвертировать, выкручиваться, быдлокодить, но делать как повелевает хозяин".
Цитата ("nolesxp"):Тип TIMESTAMP много чего умеет, да и сократит код например при обновлении значения или добавлении новой записи в таблицу, в случае необходимости указывать дату вставки и обновления записи.
Что он умеет такого, чего не умеет int? И чем он короче записи UPDATE table SET field=$var ?
тем что UPDATE table SET field=$var ? вообще отсутсвует.
1172 сообщения
#15 лет назад
Цитата ("nolesxp"):тем что UPDATE table SET field=$var ? вообще отсутсвует.
Телепатию вроде не обещали в новых версиях. Каким-то же образом вы обновляете дату записи, и он не будет короче этой строки.
Цитата ("franky"):
Свои функции оно вполне выполняет, например для логов идеально.
Вот тут согласен. Первый пример, где timestamp действительно удобен при быстром просмотре логов.
3240 сообщений
#15 лет назад
Цитата ("nolesxp"):Господа, я как заказчик неоднократно в реализованных проектах встречаю использование для хранения дат в бд mysql тип int,
спрашивается почему не используете TIMESTAMP специально предназначенного для этого ?
Для хранения дат TIMESTAMP — неудачный выбор. Особенно дат из прошлого.
Например, я родился 27 апреля 1975 года. Сможете ли поместить эту дату в TIMESTAMP? И как она тогда будет выглядеть?
Использование TIMESTAMP возможно например для логов, куда пишется дата/время с точностью до секунды, и только если просматривать эти логи в этой же временной зоне... но не более того.
Я очень, очень не люблю TIMESTAMP. Еще и потому, что оно по-умолчанию NOT NULL... и вот, в поле типа TIMESTAMP можно записать текущее время, записав туда NULL. Это вообще, я считаю, преступление разработчиков MySQL против человечества.
124 сообщения
#15 лет назад
Цитата ("tvv"):Цитата ("nolesxp"):Господа, я как заказчик неоднократно в реализованных проектах встречаю использование для хранения дат в бд mysql тип int,
спрашивается почему не используете TIMESTAMP специально предназначенного для этого ?
Для хранения дат TIMESTAMP — неудачный выбор. Особенно дат из прошлого.
Спасибо за качественный ответ! Для дат из прошлого действительно не очень удачный вариант.
124 сообщения
#15 лет назад
Цитата ("frig"):Lisio, это все понятно. Это прекрасно и замечательно и удобно. И сериализованные массивы в базе это тоже прекрасно и замечательно. Но для даты и времени есть специальный тип данных, который надо использовать для хранения значений даты и времени.
Вот и я про тоже, разработчики наверное не просто так ввели соответствующие типы.
1172 сообщения
#15 лет назад
Не просто так, но это крайне узкоспециализированое представление данных.
338 сообщений
#15 лет назад
Цитата ("Lisio"):Ну так зачем использовать timestamp? Давайте пользоваться longblob, раз уж пошла такая пьянка. Чего мелочиться?



1594 сообщения
#15 лет назад
=) Я может и ламер и ничего не понимаю, но вообще никогда не использовал ничего кроме int, varchar, blob =) И enum еще вроде (это который позволяет хранить только определенные значения, не помню как точно пишется)
83 сообщения
#15 лет назад
TIMESTAMP надо использовать там, где он действительно нужен / удобенНапример, в таблице логов, хранить дату заказа, дату обновления статьи, дату регистрации юзера и т.д., тоесть хранить дату событий, которые происходят в реальном времени. Использую этот тип данных, никаких неудобств не возникает

Для хранения дат из прошлого, дат календаря (вообщем, дат, которые вводятся вручную в таблицу) и т.д использовать DATE, DATETIME