Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > DATETIME или TIMESTAMP ?


Автор: Alex0202 5.12.2005, 03:01
Что лучше использовать в больших таблицах ?

Что быстрее сортировать ?

Автор: mr.fox 5.12.2005, 04:08
Alex0202, я бы лучше вообще mktime() записывал в таблицу, на мой взгляд быстрее всего

Автор: Kesh 5.12.2005, 09:09
Alex0202 Timestamp конечно... ибо число...

Автор: Mal Hack 5.12.2005, 17:32
Kesh дык это же форматное число?
Или все равно воспринимается, как INT?

Автор: Ignat 5.12.2005, 17:32
Цитата(Mal @ 5.12.2005, 17:32)
Или все равно воспринимается, как INT?

А оно и есть INT

Автор: DENNN 5.12.2005, 17:58
Цитата(Kesh @ 5.12.2005, 09:09)
Alex0202 Timestamp конечно... ибо число...

Дата тоже в виде числа.
Только при выводе она пересчитывается в "цивилизованный" вид.

Автор: Mal Hack 5.12.2005, 20:54
Цитата(Ignat @ 5.12.2005, 17:32)
А оно и есть INT

Цитата
TIMESTAMP

Поля с этим типом данных могут принимать значения в формате “CCYYMMDDhhmmss”
Диапазон: 19700101000000 .. определенное время в 2037 году
Нулевое значение: 00000000000000
Объем: 4 байта

Либо я ничего не понимаю, либо это не INT.

Автор: Kesh 5.12.2005, 21:16
Цитата(DENNN @ 5.12.2005, 17:58)
Только при выводе она пересчитывается в "цивилизованный" вид.

Вот, собственно, и ответ...


Цитата(Mal @ 5.12.2005, 20:54)
CCYYMMDDhhmmss

И как ты это запихнул в 4 байта???

Автор: Mal Hack 5.12.2005, 21:20
Все, понял, т.е. во внутреннем представлении для MySQL это будет INT, а для пользователя - форматная строка. Так?

Автор: DENNN 6.12.2005, 12:36
Так и только так. Вообще, все данные, которые можно хранить в виде чисел хранятся именно так.
Цитата(Mal @ 5.12.2005, 20:54)
Либо я ничего не понимаю, либо это не INT.

Если быть точным, то количество байт в INT зависит от платформы и реализации. Именно поэтому в C++ (и не только) часто вводят свой тип данных, чтоб не зависить от особенностей компиляторов и ОС.
В данном случае речь идет о собственном формате MySQL, котроый они называют INT.

Автор: Alex0202 8.12.2005, 18:04
Тоесть всё равно ? DATETIME или TIMESTAMP одинаковы, кроме формата вывода ?

Автор: DENNN 8.12.2005, 18:25
Нет. "Арифметические" операция тоже обрабатываются по разному. Например INTERVAL.
Возможно что и логическое сравнение тоже, но тут я не уверен - не проверял.

Автор: Bose 8.12.2005, 18:47
Цитата(Alex0202 @ 8.12.2005, 18:04)
DATETIME или TIMESTAMP одинаковы, кроме формата вывода ?


Цитата
Тип данных DATETIME используется для величин, содержащих информацию как о дате, так и о времени. MySQL извлекает и выводит величины DATETIME в формате 'YYYY-MM-DD HH:MM:SS'. Поддерживается диапазон величин от '1000-01-01 00:00:00' до '9999-12-31 23:59:59'. (''поддерживается'' означает, что хотя величины с более ранними временными значениями, возможно, тоже будут работать, но нет гарантии того, что они будут правильно храниться и отображаться).


Цитата
Тип столбца TIMESTAMP обеспечивает тип представления данных, который можно использовать для автоматической записи текущих даты и времени при выполнении операций INSERT или UPDATE. При наличии нескольких столбцов типа TIMESTAMP только первый из них обновляется автоматически.
...
Величины типа TIMESTAMP могут принимать значения от начала 1970 года до некоторого значения в 2037 году с разрешением в одну секунду..



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)