TIMESTAMPто же самое DATE, за исключением того, что добавлена точность до долей секунды.
NullUserException 02
5
Самая большая разница: с DATEточностью до секунды и без долей секунды. TIMESTAMPимеет дробные секунды. Количество десятичных знаков в секундах зависит от ОС сервера, например, Oracle на моем компьютере с Windows 7 возвращает три десятичных разряда для метки времени, тогда как огромный блок Solaris клиента возвращает шесть. Метки времени также могут содержать определенный часовой пояс или быть нормализованы к общему часовому поясу - перейдите сюда, а затем найдите «TIMESTAMP» для получения дополнительной информации, затем немного поэкспериментируйте :)
Эд Гиббс
Ответы:
98
DATE и TIMESTAMP имеют одинаковый размер (7 байтов). Эти байты используются для хранения века, декады, года, месяца, дня, часа, минуты и секунды. Но TIMESTAMP позволяет хранить дополнительную информацию, такую как дробные секунды (11 байтов) и дробные секунды с часовым поясом (13 байтов).
TIMESTAMP был добавлен в Oracle как ANSI-совместимый. До этого была только DATE.
В общих случаях следует использовать DATE. Но если требуется точность во времени, используйте TIMESTAMP.
Что касается Java, класс oracle.sql.DATE из драйвера Oracle JDBC обеспечивает преобразование между типом данных Oracle Date / Timestamp и классами Java java.sql.Date, java.sql.Time и java.sql.Timestamp.
Предупреждение: к сожалению, по умолчанию, когда вы запрашиваете столбец DATE в Oracle, он возвращает вам только «день», но если вы приведете его как TO_TIMESTAMP (DATE_COLUMN_NAME), тогда он вернет вам большую точность. Что-то не по умолчанию с jdbc / hibernate, по крайней мере, его здесь нет.
rogerdpack
6
«В общем случае следует использовать ДАТУ» - но почему именно?
siledh 03
4
Вам следует использовать TIMESTAMP WITH TIME ZONE. В противном случае переход на летнее время приведет к неоднозначному времени.
kmkaplan
15
Меня действительно сбивает с толку тот факт, что тип DATE содержит информацию о ВРЕМЕНИ. Слово означает не это.
Daddy32
3
@ Daddy32 TIMESTAMPбыл добавлен примерно через 20 лет DATE. Они действительно не могли вернуться и измениться DATE.
TIMESTAMP
то же самоеDATE
, за исключением того, что добавлена точность до долей секунды.DATE
точностью до секунды и без долей секунды.TIMESTAMP
имеет дробные секунды. Количество десятичных знаков в секундах зависит от ОС сервера, например, Oracle на моем компьютере с Windows 7 возвращает три десятичных разряда для метки времени, тогда как огромный блок Solaris клиента возвращает шесть. Метки времени также могут содержать определенный часовой пояс или быть нормализованы к общему часовому поясу - перейдите сюда, а затем найдите «TIMESTAMP» для получения дополнительной информации, затем немного поэкспериментируйте :)Ответы:
DATE и TIMESTAMP имеют одинаковый размер (7 байтов). Эти байты используются для хранения века, декады, года, месяца, дня, часа, минуты и секунды. Но TIMESTAMP позволяет хранить дополнительную информацию, такую как дробные секунды (11 байтов) и дробные секунды с часовым поясом (13 байтов).
TIMESTAMP был добавлен в Oracle как ANSI-совместимый. До этого была только DATE.
В общих случаях следует использовать DATE. Но если требуется точность во времени, используйте TIMESTAMP.
Что касается Java, класс oracle.sql.DATE из драйвера Oracle JDBC обеспечивает преобразование между типом данных Oracle Date / Timestamp и классами Java java.sql.Date, java.sql.Time и java.sql.Timestamp.
источник
TIMESTAMP WITH TIME ZONE
. В противном случае переход на летнее время приведет к неоднозначному времени.TIMESTAMP
был добавлен примерно через 20 летDATE
. Они действительно не могли вернуться и изменитьсяDATE
.