| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > TIMESTAMP или INT ? |
| Автор: Wowa 30.1.2005, 12:25 |
| TIMESTAMP или INT ? Что выбрать для хранения даты и времени в базе? Начиная с четвертой версии MySQL TIMESTAMP - не поддерживает размерность. TIMESTAMP возвращает всегда значение типа YYYY-MM-DD и время. Как сделать, чтобы мне дата вернулась числом(т.е. без черточек)? |
| Автор: Song 30.1.2005, 12:35 |
| Admin Если предполагается, что время будет в UNIX, то безусловно INT(10) т.к. даже операции по этому полю будут идти быстрей чем по DATETIME. |
| Автор: Mal Hack 30.1.2005, 12:37 | ||
http://dev.mysql.com/doc/mysql/ru/date-and-time-functions.html Можно преобразовывать прямо в запросе, но я приверженец использования INT(14) и в него UNIX TIME.... Числа - ноль проблем при сравненнии... |
| Автор: Wowa 30.1.2005, 12:48 |
| Есть дата в формате TIMESTAMP: 1997-10-04 22:23:00 Превращаем её в число: 19971004222300 И чем это лучше, чем unixtime ? |
| Автор: Wowa 30.1.2005, 13:08 | ||
Оставить в строке только числа, а потом сравнивать, как два числа - операция также не из трудных. |
| Автор: Song 30.1.2005, 14:02 |
| Admin операции на целые числа всё-равно быстрей делаются чем даже CHAR, не говоря уж о DATETIME |
| Автор: Gold Dragon 30.1.2005, 14:46 | ||
и я тоже |
| Автор: Song 30.1.2005, 16:29 | ||
Тем что мускул во всех операциях работы с DATETIME всё время конвертирует в целое его представление и все операции уже делает в целом. Это сам понимаешь, медленней чем работать с целыми числами сразу. У DATETIME только одно преимущество - наглядность. |
| Автор: Kesh 30.1.2005, 21:34 |
| Формат данных, в котором 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 30.1.2005, 23:44 |
| Kesh Это все хорошо, но начиная с четвертой версии MySQL TIMESTAMP не имеет размерность. И вседга содержит значения в ввиде: YYYY-MM-DD HH:MM:SS Если при вызове добавить +0, то значение вернется, как число, т.е. без разделителей. |