Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TIMESTAMP или INT ? Что выбрать для хранения времени? 
:(
    Опции темы
Wowa
  Дата 30.1.2005, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



TIMESTAMP или INT ?
Что выбрать для хранения даты и времени в базе? Начиная с четвертой версии MySQL TIMESTAMP - не поддерживает размерность.

TIMESTAMP возвращает всегда значение типа YYYY-MM-DD и время. Как сделать, чтобы мне дата вернулась числом(т.е. без черточек)?
PM WWW   Вверх
Song
Дата 30.1.2005, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: 1
Всего: 4



Admin
Если предполагается, что время будет в UNIX, то безусловно INT(10) т.к. даже операции по этому полю будут идти быстрей чем по DATETIME.


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
Mal Hack
Дата 30.1.2005, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 8
Всего: 261



Цитата(Admin @ 30.1.2005, 12:25)
TIMESTAMP возвращает всегда значение типа YYYY-MM-DD и время. Как сделать, чтобы мне дата вернулась числом(т.е. без черточек)?

http://dev.mysql.com/doc/mysql/ru/date-and...-functions.html
Можно преобразовывать прямо в запросе, но я приверженец использования INT(14) и в него UNIX TIME.... Числа - ноль проблем при сравненнии...
PM ICQ   Вверх
Wowa
Дата 30.1.2005, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Есть дата в формате TIMESTAMP: 1997-10-04 22:23:00
Превращаем её в число: 19971004222300

И чем это лучше, чем unixtime ?

PM WWW   Вверх
Wowa
Дата 30.1.2005, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Цитата(Song @ 30.1.2005, 10:35)
Если предполагается, что время будет в UNIX, то безусловно INT(10) т.к. даже операции по этому полю будут идти быстрей чем по DATETIME.

Оставить в строке только числа, а потом сравнивать, как два числа - операция также не из трудных.
PM WWW   Вверх
Song
Дата 30.1.2005, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: 1
Всего: 4



Admin операции на целые числа всё-равно быстрей делаются чем даже CHAR, не говоря уж о DATETIME


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
Gold Dragon
Дата 30.1.2005, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 2
Всего: 71



Цитата(Mal @ 30.1.2005, 12:37)
но я приверженец использования INT(14)

и я тоже smile


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Song
Дата 30.1.2005, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: 1
Всего: 4



Цитата(Admin @ 30.1.2005, 13:48)
И чем это лучше, чем unixtime ?

Тем что мускул во всех операциях работы с DATETIME всё время конвертирует в целое его представление и все операции уже делает в целом. Это сам понимаешь, медленней чем работать с целыми числами сразу.
У DATETIME только одно преимущество - наглядность.


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
Kesh
Дата 30.1.2005, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: 15
Всего: 54



Формат данных, в котором MySQL извлекает и показывает величины TIMESTAMP, зависит от количества показываемых символов. Это проиллюстрировано в приведенной ниже таблице. Полный формат TIMESTAMP составляет 14 десятичных разрядов, но можно создавать столбцы типа TIMESTAMP и с более короткой строкой вывода:
Тип столбца Формат вывода
TIMESTAMP(14) YYYYMMDDHHMMSS
TIMESTAMP(12) YYMMDDHHMMSS
TIMESTAMP(10) YYMMDDHHMM
TIMESTAMP(8) YYYYMMDD
TIMESTAMP(6) YYMMDD
TIMESTAMP(4) YYMM
TIMESTAMP(2) YY

Независимо от размера выводимого значения размер данных, хранящихся в столбцах типа TIMESTAMP, всегда один и тот же. Чаще всего используется формат вывода с 6, 8, 12 или 14 десятичными знаками. При создании таблицы можно указать произвольный размер выводимых значений, однако если этот размер задать равным 0 или превышающим 14, то будет использоваться значение 14. Нечетные значения размеров в интервале от 1 до 13 будут приведены к ближайшему большему четному числу.


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
Wowa
Дата 30.1.2005, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Kesh Это все хорошо, но начиная с четвертой версии MySQL TIMESTAMP не имеет размерность. И вседга содержит значения в ввиде: YYYY-MM-DD HH:MM:SS
Если при вызове добавить +0, то значение вернется, как число, т.е. без разделителей.

PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.1069 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.