探討MySQL?保存日期用哪種數(shù)據(jù)類型
寫在前面
在設(shè)計(jì)數(shù)據(jù)庫(kù)表時(shí)不可避免的需要用到時(shí)間類型,到底選擇那種數(shù)據(jù)類型來表示時(shí)間是一個(gè)值的討論的問題,本文就一起來看下!
1:能用哪些數(shù)據(jù)類型
1:字符串:不要用,占用空間大,至少需要19個(gè)字節(jié),且無法使用日期相關(guān)函數(shù) 2:Datetime,可考慮 3:Timestamp,可考慮 4:整數(shù),可考慮
1.1:字符串
最好不要使用,占用空間大,且無法使用日期相關(guān)函數(shù)處理。
1.2:Datetime
與時(shí)區(qū)無關(guān),保存多少就是多少,最大表示9999年,占用空間5~8字節(jié)。
1.3:Timestamp
與時(shí)區(qū)有關(guān),占用空間4~7字節(jié),最大表示到2038年,且在所在行更新時(shí),該字段會(huì)自動(dòng)更新為最后一次更新的時(shí)間,像"修改時(shí)間"這類標(biāo)識(shí)數(shù)據(jù)行修改時(shí)間的列可考慮選擇Timestamp數(shù)據(jù)類型,另外如果需要時(shí)區(qū)信息的話,也可以考慮使用該數(shù)據(jù)類型。
下面看下時(shí)區(qū)相關(guān)測(cè)試:
查看當(dāng)前時(shí)區(qū)

創(chuàng)建數(shù)據(jù)
CREATE TABLE `time_zone_test` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `date_time` datetime DEFAULT NULL, `time_stamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO time_zone_test(date_time,time_stamp) VALUES(NOW(),NOW());
查看數(shù)據(jù)

修改時(shí)區(qū)為東7區(qū)在查看時(shí)間
SET time_zone='+7:00';

可以看到timestamp的字段在原來東八區(qū)的基礎(chǔ)上減了一個(gè)小時(shí)。
1.4:整數(shù)值
占用4個(gè)字節(jié),對(duì)占用空間敏感的業(yè)務(wù),可考慮使用,然后在程序中做轉(zhuǎn)換即可,或者使用MySQL函數(shù)轉(zhuǎn)換,如下使用MySQL函數(shù)轉(zhuǎn)換:

最后看下對(duì)比:

到此這篇關(guān)于MySQL 保存日期用哪種數(shù)據(jù)類型的文章就介紹到這了,更多相關(guān)MySQL 保存日期內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
常用的SQL例句 數(shù)據(jù)庫(kù)開發(fā)所需知識(shí)
常用的SQL例句全部懂了,你的數(shù)據(jù)庫(kù)開發(fā)所需知識(shí)就夠用了2011-11-11
SQL面試題:求時(shí)間差之和(有重復(fù)不計(jì))
這篇文章主要介紹了SQL面試題:求時(shí)間差之和(有重復(fù)不計(jì)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
MySQL解決數(shù)據(jù)導(dǎo)入導(dǎo)出含有外鍵的方案
這篇文章主要介紹了MySQL解決數(shù)據(jù)導(dǎo)入導(dǎo)出含有外鍵的情況,文中通過圖文結(jié)合的方式給大家講解的非常詳細(xì),對(duì)大家解決問題有一定的幫助,需要的朋友可以參考下2024-11-11
CentOS系統(tǒng)下如何設(shè)置mysql每天自動(dòng)備份
備份是容災(zāi)的基礎(chǔ),是指為防止系統(tǒng)出現(xiàn)操作失誤或系統(tǒng)故障導(dǎo)致數(shù)據(jù)丟失,而將全部或部分?jǐn)?shù)據(jù)集合從應(yīng)用主機(jī)的硬盤或陣列復(fù)制到其它的存儲(chǔ)介質(zhì)的過程。本文將詳細(xì)介紹在CentOS系統(tǒng)下如何設(shè)置mysql每天自動(dòng)備份,有需要的朋友們下面來一起看看吧。2016-10-10

