資料庫日期存儲
① 資料庫中 日期的幾種表示方法
Mysql中經常用來存儲日期的數據類型有三種:Date、Datetime、Timestamp。
【1】Date數據類型:用來存儲沒有時間的日期。Mysql獲取和顯示這個類型的格式為「YYYY-MM-DD」。支持的時間范圍為「1000-00-00」到「9999-12-31」。
【2】Datetime類型:存儲既有日期又有時間的數據。存儲和顯示的格式為 「YYYY-MM-DD HH:MM:SS」。支持的時間范圍是「1000-00-00 00:00:00」到「9999-12-31 23:59:59」。
【3】Timestamp類型:也是存儲既有日期又有時間的數據。存儲和顯示的格式跟Datetime一樣。支持的時間范圍是「1970-01-01 00:00:01」到「2038-01-19 03:14:07」。
(1)資料庫日期存儲擴展閱讀
切記不要用字元串存儲日期
這種存儲日期的方式的優點還是有的,就是簡單直白,容易上手。但是,這是不正確的做法,主要會有下面兩個問題:
1、字元串佔用的空間更大。
2、字元串存儲的日期比較效率比較低(逐個字元進行比對),無法用日期相關的 API 進行計算和比較。
DateTime 類型沒有時區信息的
DateTime 類型是沒有時區信息的(時區無關),DateTime 類型保存的時間都是當前會話所設置的時區對應的時間。
當你的時區更換之後,比如你的伺服器更換地址或者更換客戶端連接時區設置的話,就會導致你從資料庫中讀出的時間錯誤。不要小看這個問題,很多系統就是因為這個問題鬧出了很多笑話。
Timestamp 和時區有關。Timestamp 類型欄位的值會隨著伺服器時區的變化而變化,自動換算成相應的時間,說簡單點就是在不同時區,查詢到同一個條記錄此欄位的值會不一樣。
② 資料庫 存儲時間
資料庫存儲時間有兩種方式:
1、 使用Timestamp,則會在資料庫里存儲:2013-07-16 07:20:01。
在不同時區,顯示的都是2013-07-16 07:20:01,但其實他們並不是同一時間了。
2、存儲事件發生的時間毫秒值,在不同時區解析出來的時間表示不一樣,但表達都是同一時間,能解決時區問題。
③ 如何向資料庫中存入日期
),這個介面中有一個setDate方法,兩個參數,一個是序號,一個是java.sql.Date,這是java.util.Date的一個子類。
這里請你使用java.text.SimpleDateFormat,這個類可以使用你自定義的格式來對一個string進行parse,並得到一個java.util.Date。但「這種Date」並不能直接送到資料庫中去,你需要先用getTime方法得到一個毫秒數,再以此為參數構造一個java.sql.Date。再回到我上點講的setDate,傳進去。即可。
這種方法無須考慮不同資料庫使用的日期的格式問題。通用。也不易出錯。
④ 資料庫中哪種日期存儲格式,性能會更好
資料庫中日期存儲格式有幾種,需要根據你的需求抉擇:
1、timestamp:既能保證性能又能使用自帶時間日期函數
2、int :適合作時間的比較,但是可讀性差
3、datetime :適合資料庫數據導出,可讀性高,但查詢性能不高。(不推薦)
4、varchar:不支持時區。(不推薦)
⑤ 如何將日期存入資料庫
將日期轉換為int類型時間戳,保存到資料庫int類型列,推薦使用這種方式
將日期保存到資料庫date類型列
把日期直接保存到char/varchar類型列,這種方式是最差的做法,無法比較日期大小,但是可以保存任何格式類型
⑥ mysql資料庫里的日期用timestamp還是datetime好
Mysql中經常用來存儲日期的數據類型有2種:Date、Datetime.
1.Date數據類型:用來存儲沒有時間的日期。Mysql獲取和顯示這個類型的格式為「YYYY-MM-DD」。支持的時間范圍為「1000-00-00」到「9999-12-31」。
2.Datetime類型:存儲既有日期又有時間的數據。存儲和顯示的格式為 「YYYY-MM-DD HH:MM:SS」。支持的時間范圍是「1000-00-00 00:00:00」到「9999-12-31 23:59:59」。
⑦ 資料庫存儲日期時間數據時,使用數據類型datetime和datetime2有什麼區別
Datetime:
時間格式,對應於資料庫中的DateTime類型,對應於.NET裡面的System.
DateTime類型。DateTime支持日期從1753年1月1日到9999年12月31日,時間部分的精確度是3.33毫秒,它需要8位元組的存儲空間。
Datetime2:
時間格式,就Sql
Server
2008
裡面新增的欄位類型。對應於資料庫中的DateTime2格式,對應於.NET裡面的System.
DateTime類型。DateTime2則支持從0001年01月01日到9999年12月31日,時間部分的精度是100納秒,佔用6到8位元組的存儲空間,取決於存儲的精度。
datetime2數據類型,類似於之前的datetime類型,不過其精度比較高,可以精確到小數點後面7位(100ns)
⑧ 資料庫的日期類型欄位該如何選擇
Mysql中經常用來存儲日期的數據類型有三種:Date、Datetime、Timestamp。
Date數據類型:用來存儲沒有時間的日期。Mysql獲取和顯示這個類型的格式為「YYYY-MM-DD」。支持的時間范圍為「1000-00-00」到「9999-12-31」。
Datetime類型:存儲既有日期又有時間的數據。存儲和顯示的格式為 「YYYY-MM-DD HH:MM:SS」。支持的時間范圍是「1000-00-00 00:00:00」到「9999-12-31 23:59:59」。
Timestamp類型:也是存儲既有日期又有時間的數據。存儲和顯示的格式跟Datetime一樣。支持的時間范圍是「1970-01-01 00:00:01」到「2038-01-19 03:14:07」。
所有不符合上面所述格式的數據都會被轉換為相應類型的0值。(0000-00-00或者0000-00-00 00:00:00)
⑨ 關於資料庫中日期的存儲
Unix時間戳(Unix timestamp)
定義為從格林威治時間1970年01月01日00時00分00秒起至現在的總秒數
應該是這個……