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

Цитата ("frig"):
Но для даты и времени есть специальный тип данных, который надо использовать для хранения значений даты и времени.

Без комментариев. Где-то тут я уже писал про bdsm-кодинг.
Владимир Ф.
1322 сообщения
#15 лет назад
Это проще.
Андрей К.
1172 сообщения
#15 лет назад
И быстрее.
Роман Беляев
16382 сообщения
#15 лет назад
Цитата ("Lisio"):
Без комментариев. Где-то тут я уже писал про bdsm-кодинг.

Это смотря с какой стороны посмотреть... я совсем не радуюсь, когда мне приходится разгребать чужие сериализованные массивы и составные поля. ооочень вспоминаю таких упрощенцев "не злим тихим словом" . Вот быстрее было взять массив в utf, сериализировать его и положить в базу в поле в cp1251. и проще, видимо, тоже. Есть много вещей которые быстрее и проще.
Юрий Л.
124 сообщения
#15 лет назад
Тип TIMESTAMP много чего умеет, да и сократит код например при обновлении значения или добавлении новой записи в таблицу, в случае необходимости указывать дату вставки и обновления записи. В общем когда тип поля int например для поля с названием date_row, использовать TIMESTAMP более целесообразно.
Андрей К.
1172 сообщения
#15 лет назад
В данном топике ваше сравнение не совсем уместно. Предыдущий коммент ваш равносилен "Дядя Сэм сказал, поэтому надо. И плевать, что неудобно, что надо конвертировать, выкручиваться, быдлокодить, но делать как повелевает хозяин".

Цитата ("nolesxp"):
Тип TIMESTAMP много чего умеет, да и сократит код например при обновлении значения или добавлении новой записи в таблицу, в случае необходимости указывать дату вставки и обновления записи.

Что он умеет такого, чего не умеет int? И чем он короче записи UPDATE table SET field=$var ?
Роман Беляев
16382 сообщения
#15 лет назад
Lisio, полегче на поворотах!
Дмитрий О.
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