探討MySQL?保存日期用哪種數(shù)據(jù)類型
寫在前面
在設(shè)計(jì)數(shù)據(jù)庫(kù)表時(shí)不可避免的需要用到時(shí)間類型,到底選擇那種數(shù)據(jù)類型來(lái)表示時(shí)間是一個(gè)值的討論的問(wèn)題,本文就一起來(lái)看下!
1:能用哪些數(shù)據(jù)類型
1:字符串:不要用,占用空間大,至少需要19個(gè)字節(jié),且無(wú)法使用日期相關(guān)函數(shù) 2:Datetime,可考慮 3:Timestamp,可考慮 4:整數(shù),可考慮
1.1:字符串
最好不要使用,占用空間大,且無(wú)法使用日期相關(guān)函數(shù)處理。
1.2:Datetime
與時(shí)區(qū)無(wú)關(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的字段在原來(lái)東八區(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)文章
MySQL與PHP的基礎(chǔ)與應(yīng)用專題之內(nèi)置函數(shù)
MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQL AB 公司開(kāi)發(fā),屬于 Oracle 旗下產(chǎn)品。MySQL 是最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)之一,本系列將帶你掌握php與mysql的基礎(chǔ)應(yīng)用,本篇MySQL的內(nèi)置函數(shù)開(kāi)始2022-02-02
mysql數(shù)據(jù)庫(kù)的五種安裝方式總結(jié)
這篇文章主要介紹了五種在不同操作系統(tǒng)上安裝和配置MySQL的方法,包括Windows版本安裝、yum倉(cāng)庫(kù)安裝、二進(jìn)制本地安裝、容器平臺(tái)安裝以及源碼部署,每種方法都介紹的非常詳細(xì),需要的朋友可以參考下2025-03-03
MySQL數(shù)據(jù)庫(kù)如何克隆(帶腳本)
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)如何克隆(帶腳本)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
MySQL的查詢緩存機(jī)制基本學(xué)習(xí)教程
這篇文章主要介紹了MySQL的查詢緩存機(jī)制基本學(xué)習(xí)教程,默認(rèn)針對(duì)InnoDB存儲(chǔ)引擎下來(lái)將,需要的朋友可以參考下2015-11-11
MySQL數(shù)據(jù)庫(kù)中sql表設(shè)計(jì)的注意事項(xiàng)
實(shí)際開(kāi)發(fā)中一個(gè)項(xiàng)目通常需要很多張表才能完成,這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫(kù)中sql表設(shè)計(jì)的注意事項(xiàng),文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-05-05
分析Mysql表讀寫、索引等操作的sql語(yǔ)句效率優(yōu)化問(wèn)題
今天小編就為大家分享一篇關(guān)于分析Mysql表讀寫、索引等操作的sql語(yǔ)句效率優(yōu)化問(wèn)題,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12
Mapper sql語(yǔ)句字段和實(shí)體類屬性名字有什么關(guān)系
這篇文章主要介紹了Mapper sql語(yǔ)句字段和實(shí)體類屬性名字有什么關(guān)系,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11

