簡體   English   中英

Derby / JavaDB:TIMESTAMP和BIGINT數據類型 - 哪個更好地存儲日期?

[英]Derby/JavaDB: TIMESTAMP and BIGINT data types - which is better to store the date?

我有點困惑 - 我想將日期存儲在JavaDB / Derby數據庫中,但哪種數據類型更好用?

我可以像System.currentTimeMillis()一樣簡單地存儲Long並以BIGINT格式將其保存到數據庫中。 后來我可以按照自己的意願格式化它。

或者我可以使用TIMESTAMP數據類型將其存儲為TIMESTAMP('1962-09-23 03:23:34.234')

哪種方式更有效?

TIMESTAMP數據類型的文檔和實現文檔說明都表示Derby使用納秒分辨率。 這表明一個64位整數,但我不知道Derby的實現。 如果您真正關心,請查看源代碼。

為什么使用TIMESTAMP? 數據庫的工作是管理數據,所以讓它。 如果沒有一個非常重要的原因,你不應該試圖對數據類型進行簡化。 對“效率”的模糊關注是微觀管理數據庫服務器的工作。

此外,你的問題很模糊。 “效率”是什么意思? 存儲空間較少? 內存中使用的空間更少? 索引的優點? 更快的查詢? 寫得更快? 但是,再次,這些擔憂是過早優化 (一件壞事),直到你發現了一個特定的瓶頸。

將日期時間值存儲在日期時間數據類型中是有利的,否則該數據類型將不會添加到數據庫的指令表中。 使用TIMESTAMP的一個重要好處是它知道如何將字符串解析為日期時間值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM