![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
TIMESTAMP или INT ?
Что выбрать для хранения даты и времени в базе? Начиная с четвертой версии MySQL TIMESTAMP - не поддерживает размерность. TIMESTAMP возвращает всегда значение типа YYYY-MM-DD и время. Как сделать, чтобы мне дата вернулась числом(т.е. без черточек)? |
|||
|
||||
Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: 1 Всего: 4 |
Admin
Если предполагается, что время будет в UNIX, то безусловно INT(10) т.к. даже операции по этому полю будут идти быстрей чем по DATETIME. -------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 8 Всего: 261 |
http://dev.mysql.com/doc/mysql/ru/date-and...-functions.html Можно преобразовывать прямо в запросе, но я приверженец использования INT(14) и в него UNIX TIME.... Числа - ноль проблем при сравненнии... |
|||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Есть дата в формате TIMESTAMP: 1997-10-04 22:23:00
Превращаем её в число: 19971004222300 И чем это лучше, чем unixtime ? |
|||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Оставить в строке только числа, а потом сравнивать, как два числа - операция также не из трудных. |
|||
|
||||
Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: 1 Всего: 4 |
Admin операции на целые числа всё-равно быстрей делаются чем даже CHAR, не говоря уж о DATETIME
-------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 2 Всего: 71 |
и я тоже ![]() -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
Song |
|
|||
![]() Sysman.ru ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1095 Регистрация: 2.6.2002 Репутация: 1 Всего: 4 |
Тем что мускул во всех операциях работы с DATETIME всё время конвертирует в целое его представление и все операции уже делает в целом. Это сам понимаешь, медленней чем работать с целыми числами сразу. У DATETIME только одно преимущество - наглядность. -------------------- Прежде чем сказать "Невозможно", подумай, прав ли ты |
|||
|
||||
Kesh |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 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 будут приведены к ближайшему большему четному числу. -------------------- ![]() |
|||
|
||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Kesh Это все хорошо, но начиная с четвертой версии MySQL TIMESTAMP не имеет размерность. И вседга содержит значения в ввиде: YYYY-MM-DD HH:MM:SS
Если при вызове добавить +0, то значение вернется, как число, т.е. без разделителей. |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MySQL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |