Mysql中的Datetime和Timestamp比較
mysql中用于表示時間的三種類型date, datetime, timestamp (如果算上int的話,四種) 比較容易混淆,下面就比較一下這三種類型的異同
相同點
都可以用于表示時間
都呈字符串顯示
不同點
1.顧名思義,date只表示'YYYY-MM-DD'形式的日期,datetime表示'YYYY-MM-DD HH:mm:ss'形式的日期加時間,timestamp與datetime顯示形式一樣。
2.date和datetime可表示的時間范圍為'1000-01-01'到'9999-12-31',timestamp由于受32位int型的限制,能表示'1970-01-01 00:00:01'到'2038-01-19 03:14:07'的UTC時間。
3.mysql在存儲timestamp類型時會將時間轉(zhuǎn)為UTC時間,然后讀取的時候再恢復成當前時區(qū)。 假如你存儲了一個timestamp類型的值之后,修改了mysql的時區(qū),當你再讀取這個值時就會得到一個錯誤的時間。而這種情況在date和datetime中不會發(fā)生。
4.timestamp類型提供了自動更新的功能,你只需要將它的默認值設(shè)置為CURRENT_TIMESTAMP。
5.除了date是保留到天,datetime和timestamp都保留到秒,而忽略毫秒。
時間格式
mysql提供了一種比較寬松的時間字符串格式用于增刪改查。參考iso時間格式,一般習慣于寫成'2013-06-05 16:34:18'。但是你也可以簡寫成'13-6-5',但是這樣容易造成混淆,比如mysql也會把'13:6:5'也當做年月日處理,而當'13:16:5'這種形式,則被mysql認為是不正確的格式,會給出一個警告,然后存入數(shù)據(jù)庫的值是'0000-00-00 00:00:00'。
手冊中還特意提到了一種情況,就是當年的值是0~69時,mysql認為是2000~2069,而70~99時則認為是1970~1999。我感覺是一種畫蛇添足了。
總之,以不變應萬變,使用'YYYY-MM-DD HH:mm:ss'格式總是不會錯的。
- MySQL之DATETIME與TIMESTAMP的時間精度問題
- MySQL?時間類型用?datetime,?timestamp?還是?integer?更好
- MYSQL?數(shù)據(jù)庫時間字段?INT,TIMESTAMP,DATETIME?性能效率的比較介紹
- 淺談Mysql時間的存儲?datetime還是時間戳timestamp
- 詳解MySQL中timestamp和datetime時區(qū)問題導致做DTS遇到的坑
- MySQL 中 datetime 和 timestamp 的區(qū)別與選擇
- MySQL中datetime和timestamp的區(qū)別及使用詳解
- 關(guān)于MySQL中datetime和timestamp的區(qū)別解析
相關(guān)文章
mysql:ERROR?2003?(HY000)故障錯誤解決方法與思路
這篇文章主要給大家介紹了關(guān)于mysql:ERROR?2003?(HY000)故障錯誤解決方法與思路的相關(guān)資料,error 2003 hy000是MySQL數(shù)據(jù)庫中一個常見的錯誤代碼,它通常意味著MySQL無法建立到數(shù)據(jù)庫的連接,需要的朋友可以參考下2024-02-02
MySQL中索引優(yōu)化distinct語句及distinct的多字段操作
這篇文章主要介紹了MySQL中索引優(yōu)化distinct語句及distinct的多字段操作方法,distinct語句去重功能的使用是MySQL入門學習中的基礎(chǔ)知識,需要的朋友可以參考下2016-01-01
MySQL binlog日志記錄格式寫入機制及相關(guān)參數(shù)講解
這篇文章主要為大家介紹了MySQL binlog日志記錄格式寫入機制及相關(guān)參數(shù)使用講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09

