Oracle DATE和TIMESTAMP類型有什麼區別? 兩者都有日期和時間組件? 這些日期類型在Java中的對應類型是什麼?Oracle DATE和TIMESTAMP之間的區別
回答
DATE和TIMESTAMP具有相同的大小(7個字節)。這些字節用於存儲世紀,十年,年,月,日,時,分和秒。但TIMESTAMP允許存儲其他信息,例如小數秒(11字節)和帶時區(13字節)的小數秒。
TIMESTAMP已添加爲與Oracle兼容的ANSI。在此之前,它只有DATE。
在一般情況下,您應該使用DATE。但是,如果時間精度是要求,請使用TIMESTAMP。
關於Java,來自Oracle JDBC驅動程序的oracle.sql.DATE類提供了Oracle日期/時間戳數據類型與Java類java.sql.Date,java.sql.Time和java.sql.Timestamp之間的轉換。
一句警告:不幸的是,默認情況下,當您在Oracle中查詢DATE列時,它只會返回」日期「,但如果您將其轉換爲TO_TIMESTAMP(DATE_COLUMN_NAME)然後返回更精確。哪種方式不是jdbc/hibernate的默認配置,至少它不在這裏。 – rogerdpack
「在一般情況下,你應該使用日期」 - 但爲什麼,到底是什麼? – siledh
嗨@siledh,我認爲你應該只在附加信息(時區)對你的應用程序很重要時才使用TIMESTAMP。我的意思是,這取決於你的業務邏輯。例如,當您需要與部署在不同平臺上的應用程序共享您的數據時,您必須選擇TIMEZONE,並且時間信息必須在它們之間毫不含糊地理解。 –
- 1. 如何在oracle中使用SELECT在TIMESTAMP和DATE之間生成差異10
- 2. JavaScript:toString()和toLocaleString()方法之間的區別Date
- 3. MySQL NOW()和PHP date('c')之間的區別
- 4. 將Oracle DATE列遷移到帶時區的TIMESTAMP
- 5. Oracle客戶端和Oracle數據庫之間的確切區別
- 6. Oracle lnstant客戶端和Oracle客戶端之間的區別
- 7. Oracle版本之間的區別
- 8. 之間的〜/和的區別../
- 9. 作爲變量使用時,Date()和Date()之間有什麼區別?
- 10. '#','%'和'$'之間的區別
- 11. {!!之間的區別!!}和{{}}
- 12. '+ ='和'= +'之間的區別?
- 13. 「。+」和「。+?」之間的區別
- 14. .eq之間的區別。和==
- 15. #。/和#之間的區別。 ./
- 16. !=和!之間的區別==
- 17. 「%〜dp0」和「。\」之間的區別?
- 18. | =和^ = css之間的區別
- 19. 之間的區別。和#
- 20. ==和case之間的區別?
- 21. 「**/* /」和「** /」之間的區別?
- 22. jQuery - '。'之間的區別和「#」
- 23. 「?1」和「?」之間的區別
- 24. `%in%`和`==`之間的區別
- 25. fmod和%之間的區別
- 26. 之間的區別:+和:+
- 27. Oracle按分區劃分ID和按DATE分區間隔
- 28. Oracle和Java中的double值之間的區別(IEEE 754)
- 29. Oracle和SQL Server中的NVARCHAR之間的區別?
- 30. Oracle 12c中的SYS.ALL_TAB_COLUMNS和SYS.ALL_TAB_COLS之間的區別
['TIMESTAMP'](http://docs.oracle.com/cd/B28359_01/server.111/b28286/sql_elements001.htm#SQLRF00203)與'DATE'相同,只是它增加了小數秒精度。 – NullUserException
最大的區別是:'DATE'精確到秒,沒有小數秒。 'TIMESTAMP'具有小數秒。秒數中的小數位數取決於服務器操作系統,例如,我的Windows 7計算機上的Oracle爲時間戳返回三位小數,而客戶端的大型Solaris盒返回六位。時間戳還可以保存特定時區或按照常規時區進行標準化 - 轉到[此處](http://docs.oracle.com/cd/B28359_01/server.111/b28286/sql_elements001.htm),然後搜索「 TIMESTAMP「以獲得更多信息,然後試驗一下:) –