sql:DateTime,Timestamp,Time和Date有什麼區別?
阿新 • • 發佈:2018-11-23
場景:
用Mysql出現時間問題Incorrect datetime value: '' for column 'createtime',查明原因資料庫中用的是TIMESTAMP格式,時間為1970-2038年範圍之外的日期無法入庫。
解決:使用datetime欄位型別
總結如下:
使用MySQL作為一個例子(如果沒有其他原因,因為它是最流行的),你有DATE,DATETIME,TIME和TIMESTAMP列資料型別; 就像你有CHAR,VARCHAR,FLOAT和INTEGER。
DATE只儲存一個日期:年月日
TIME只儲存一天的時間:時分秒
DATETIME儲存日期+時間,DATETIME被格式化為YYYY-MM-DD HH:MM:SS,有效範圍從1000年到9999年(以及其間的所有內容)。精確到時分秒,用於做時間戳。8個位元組儲存。
TIMESTAMP :從資料庫中獲取時TIMESTAMP 看起來是相似的,但它實際上只是一個unix時間戳的前沿,其有效範圍從1970年到2038年。
這裡除了資料庫引擎內部的各種內建函式之外,還有儲存空間,由於DATETIME每年,每月,每天,每小時,每分鐘和每秒都儲存一個數字,所以總共消耗了8個位元組。TIMESTAMP,自1970-01-01以來的秒數,它使用4個位元組。
最後,它歸結為你需要你的日期/時間列做什麼。
需要在1970年以前或2038年以後儲存日期和時間,使用DATETIME,但需要擔心資料庫的大小。
在這個時間1970-2038範圍內?使用TIMESTAMP。