最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

mysql神功 2.3 數(shù)據(jù)類(lèi)型的細(xì)分之日期和時(shí)間類(lèi)型

2023-03-22 10:40 作者:孫興華zz  | 我要投稿

一、日期類(lèi)型

圖2-35

1、YEAR

圖2-36? 設(shè)計(jì)表視圖

當(dāng)你選擇了YEAR類(lèi)型時(shí),超出范圍的錄入會(huì)提示:哪個(gè)列,哪行出現(xiàn)問(wèn)題。如圖2-37

我們輸入: '1901'? 或? 1901? 保存后的結(jié)果都是 1901

但是我們輸入 2156 時(shí)就會(huì)告訴我們,年份列第5行的值超過(guò)取值范圍

圖2-37

正常人輸入就是4位年,范圍1901~2155就可以避免錯(cuò)誤。但是有人耍小聰明,那就麻煩了。

特殊情況1:輸入字符串

'0' ~ '69'? ?返回:2000~2069

圖2-38


'0' 、'00'、'000'??結(jié)果相同,返回 2000? ? 但是?'0000'? 返回 0000

????????????????????????????????????????? ? ? ? ? ? ? 注:0000不是年,公元中也沒(méi)有0年。

'1'、'01'、'001''0001'? ? 結(jié)果相同,返回 2001

......

'69'、'069'、'0069'??結(jié)果相同,返回 2069


'70'?~ '99'? ?返回:1970~1999

圖2-39

'70'、'070''0070'??結(jié)果相同,返回 1970

'71''071'、'0071'??結(jié)果相同,返回 1971

......

'99'、'099'、'0099'??結(jié)果相同,返回 1999


有些小伙伴會(huì)問(wèn),你這都是2位數(shù),那輸入3位數(shù)呢?

因?yàn)槟爿斎?位數(shù)無(wú)法保存,所以凡是不讓你做的事情,我就可以一帶而過(guò),

讓你做又讓你錯(cuò)的事情,我就要提醒你盡量避免。

就好比,你說(shuō)你要暗殺塞羅奧特曼,我可能當(dāng)你有病。但是把塞羅奧特曼換成張三,我就要?jiǎng)衲懔恕?/p>

圖2-40

特殊情況2:輸入數(shù)字

輸入數(shù)字 0 : 會(huì)返回 0000? ? 同上,0000不是年,公元里面沒(méi)有0年

輸入數(shù)字 1~69 或? 01~69?或? 001~069? ? 會(huì)返回:2001~2069

輸入數(shù)字 70~99 ?或? 070~099??會(huì)返回:1970~1999


以上,我廢了這么多話(huà),目的是什么呢?

答:輸入時(shí)請(qǐng)使用1901~2155這樣的標(biāo)準(zhǔn)四位數(shù)。


如果使用1901年以前或2155年以后的年份如何處理?

答:可以考慮使用整數(shù)型,因?yàn)槟攴菘赡軙?huì)用于計(jì)算。這里優(yōu)先推薦 SMALLINT類(lèi)型,它占用2字節(jié),范圍 0~65535(無(wú)符號(hào))或 -32768~32767(有符號(hào))足夠你用了。


2、DATE

圖2-42

在YEAR類(lèi)型我建議大家輸入1901~2155這樣的標(biāo)準(zhǔn)年份格式

在DATE類(lèi)型中,我仍然推薦大家輸入標(biāo)準(zhǔn)年份格式,如圖2-43

標(biāo)準(zhǔn)格式:四位年、兩位月、兩位日

圖2-43

有些書(shū)籍上介紹,可以按 'YYYY-MM-DD' 或 'YYYYMMDD' 或??'YY-MM-DD'?或 'YYMMDD'?

但是我在Navicat for MySQL 12.0.29版中直接使用測(cè)試不通過(guò),如下四幅圖所示

聲明,并不是人家書(shū)講的不對(duì),只是Navicat for MySQL 12.0.29不能直接使用而已。如下圖,我輸入密碼進(jìn)入MySQL服務(wù)器,使用“小哈”這個(gè)庫(kù),對(duì)測(cè)試表1添加我的生日:'2000-10-07' 是可以成功的。

當(dāng)我們?cè)贜avicat for MySQL 12.0.29 使用代碼插入行時(shí)也是OK的。

后面要講的時(shí)間類(lèi)型函數(shù)都是一樣的情況,不再重復(fù)。

還有一種方法,就是年寫(xiě)成兩位 YY-MM-DD? 或 YYMMDD?

這里要注意,YY和我們上面講的YEAR函數(shù)一樣,

00~69 是 2000~2069? ,70~99 是 1970~1999

所以再次提醒大家,按標(biāo)準(zhǔn)的方式輸入? ?YYYY-MM-DD 或 YYYYMMDD? 并且注意取值范圍

如果涉及公元1000年1月1日以前的日期,建議使用文本字符串類(lèi)型,下節(jié)課會(huì)講。


二、時(shí)間類(lèi)型

圖2-44

小數(shù)秒的空間是動(dòng)態(tài)的,如果你不用,它就是0字節(jié)。1~2位小數(shù)秒占1字節(jié),3~4位小數(shù)秒占2字節(jié),5~6位小數(shù)秒占3字節(jié)。圖2-44 中括號(hào)代表可選參數(shù),輸入時(shí)應(yīng)該這樣寫(xiě),如圖2-45。因?yàn)槲夜ぷ髦杏貌坏?,所以后面關(guān)于這個(gè)知識(shí)將不再介紹。

圖2-45

可能你會(huì)發(fā)現(xiàn),你寫(xiě)完的小數(shù)秒,保存無(wú)效,那是因?yàn)槟愕谋碓O(shè)計(jì)里的長(zhǎng)度為0。可以將長(zhǎng)度改成你需要的位置1~6,如圖2-46

圖2-46

如果你是通過(guò)代碼完成創(chuàng)建表,那這里你要注意TIME后面加小括號(hào)寫(xiě)上長(zhǎng)度。

因?yàn)楝F(xiàn)在還沒(méi)學(xué)代碼,防止你們手里有人看書(shū)在這里蒙圈,提示一下。

支持小數(shù)秒的三個(gè)類(lèi)型在創(chuàng)建表時(shí)的方法相同,只是改一下類(lèi)型名稱(chēng),后面將不再重復(fù)。

1、TIME

圖2-47

TIME類(lèi)型為什么小時(shí)可以是-838~838?

答:為了方便取間隔時(shí)間。比如張三從周一的某個(gè)時(shí)間點(diǎn)開(kāi)始打游戲,一直沒(méi)睡覺(jué),周四住院了,從他打游戲到身體支撐不住共計(jì)多少小時(shí)、多少分鐘、多少秒?


TIME類(lèi)型一共有三種寫(xiě)法:

(1)HH:MM:SS? ? ?

圖2-48

如果寫(xiě)成 05:2:1? 會(huì)自動(dòng)修證成? 05:02:01

注意事項(xiàng):小時(shí)的范圍,但是分鐘和秒都是60進(jìn)制,最高只能寫(xiě)到59

當(dāng)分鐘和秒大于59時(shí),就會(huì)報(bào)錯(cuò)

(2)HHMMSS? ??省略冒號(hào),我最常用的方法,但是注意別偷懶

圖2-49

這樣寫(xiě)是可以的,但是我建議你將小時(shí)、分鐘、秒寫(xiě)全,個(gè)位數(shù)前面補(bǔ)一個(gè)0

例如:18:05:03? ? 請(qǐng)寫(xiě)成 180503

如果你寫(xiě)成1853,MySQL會(huì)識(shí)別成 18:53

圖2-50

我個(gè)人的建議,你不要去研究錯(cuò)了以后會(huì)有什么后果,要保證不出錯(cuò)。

(3) D? HH:MM:SS?

這里的D代表幾天,1天是24小時(shí),2天48小時(shí),用得到的小時(shí)+后面的時(shí)間中的小時(shí)

但是要注意上限和下限

圖2-51

超出小時(shí)上限和下限就會(huì)報(bào)錯(cuò)

圖2-52

友情提示:使用字符串方式可以通過(guò)代碼完成,不可以直接在這里輸入,同上面的DATE函數(shù)


2、DATETIME

(1)時(shí)間范圍:1000-01-01 00:00:00[.000000]~9999-12-31 23:59:59[.999999]

(2)兩種推薦的輸入方法

另外,在可視化界面輸入現(xiàn)在時(shí)間,只需要鼠標(biāo)點(diǎn)擊就可以了,如果使用代碼那值為 Now() 這些函數(shù)在后續(xù)課程中會(huì)逐一講解。

友情提示:使用字符串方式可以通過(guò)代碼完成,不可以直接在這里輸入,同上面的DATE函數(shù)

3、TIMESTAMP

取值范圍在圖2-44中已經(jīng)顯示,不再重復(fù)。

這里要提一下,什么時(shí)候用TIMESTAMP(時(shí)間戳) ? 什么時(shí)候用 DATETIME(日期時(shí)間)?

答:如果您正在跨時(shí)區(qū)使用應(yīng)用程序,并且需要日期時(shí)間來(lái)反映結(jié)果,請(qǐng)使用TIMESTAMP時(shí)間戳。如果無(wú)論時(shí)區(qū)如何都需要一致性結(jié)果,請(qǐng)使用datetime(日期時(shí)間)。

它會(huì)在存儲(chǔ)前轉(zhuǎn)換為UTC(世界統(tǒng)一時(shí)間),然后在檢索時(shí)轉(zhuǎn)換回當(dāng)前時(shí)區(qū)設(shè)置。因此,如果時(shí)區(qū)設(shè)置在存儲(chǔ)和檢索之間發(fā)生更改,您將得到不同的值;但是它們卻對(duì)應(yīng)于相同的UTC日期時(shí)間。

從我孫興華的英文口語(yǔ)你們就應(yīng)該知道,我不可能在跨國(guó)企業(yè)工作,所以這個(gè)我用不到:)

mysql神功 2.3 數(shù)據(jù)類(lèi)型的細(xì)分之日期和時(shí)間類(lèi)型的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
塘沽区| 万州区| 马关县| 泾阳县| 洛南县| 青阳县| 任丘市| 怀宁县| 同德县| 湖口县| 塘沽区| 左云县| 师宗县| 迭部县| 佳木斯市| 普兰店市| 瑞昌市| 积石山| 临洮县| 黔江区| 丹寨县| 商都县| 锡林浩特市| 南雄市| 五河县| 富顺县| 遂昌县| 鹤庆县| 贵州省| 衡水市| 江安县| 黄石市| 泰来县| 伊宁县| 开封县| 武夷山市| 禹州市| 高青县| 高密市| 宣城市| 西安市|