成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

MySQL毫秒數(shù)不一致為什么日期時間一致

在做項目的過程中,一個小的忽視或粗心可能會導致一個大的問題,甚至浪費過多的時間。我曾經(jīng)遇到一個問題:含有年月日時分秒的日期在數(shù)據(jù)庫以毫秒數(shù)存儲,但將不同的毫秒數(shù)轉(zhuǎn)換成日期時,卻發(fā)現(xiàn)它們竟然是同一個日期

在做項目的過程中,一個小的忽視或粗心可能會導致一個大的問題,甚至浪費過多的時間。我曾經(jīng)遇到一個問題:含有年月日時分秒的日期在數(shù)據(jù)庫以毫秒數(shù)存儲,但將不同的毫秒數(shù)轉(zhuǎn)換成日期時,卻發(fā)現(xiàn)它們竟然是同一個日期。這究竟是怎么回事呢?

日期時間格式大小寫的原因

經(jīng)過反復查看SQL語句,我發(fā)現(xiàn)問題出在日期時間格式的大小寫上。下面通過一個實例來具體說明:

第一步:將一個日期時間轉(zhuǎn)換成毫秒數(shù)

首先,我們將一個特定的日期時間轉(zhuǎn)換成毫秒數(shù)。例如,我們將"2015-05-09 14:30:56"轉(zhuǎn)換成毫秒數(shù),SQL語句如下:

```

select UNIX_TIMESTAMP('2015-05-09 14:30:56')*1000 as statis_date;

```

結(jié)果為:"1431153056000"

第二步:將另一個日期時間轉(zhuǎn)換成毫秒數(shù)

接著,我們將另外一個日期時間也轉(zhuǎn)換成毫秒數(shù)。例如,我們將"2015-05-09 02:30:56"轉(zhuǎn)換成毫秒數(shù),SQL語句如下:

```

select UNIX_TIMESTAMP('2015-05-09 02:30:56')*1000 as statis_date;

```

結(jié)果為:"1431109856000"

第三步:將毫秒數(shù)轉(zhuǎn)換成日期時間

然后,我們將第一步中的毫秒數(shù)轉(zhuǎn)換回日期時間。例如,我們使用以下SQL語句將毫秒數(shù)"1431153056000"轉(zhuǎn)換成日期時間:

```

select FROM_UNIXTIME(1431153056000/1000, '%Y-%m-%d %h:%i:%s') as statis_time;

```

結(jié)果為:"2015-05-09 02:30:56"

第四步:將毫秒數(shù)轉(zhuǎn)換成日期時間

同樣地,我們將第二步中的毫秒數(shù)也轉(zhuǎn)換回日期時間。例如,我們使用以下SQL語句將毫秒數(shù)"1431109856000"轉(zhuǎn)換成日期時間:

```

select FROM_UNIXTIME(1431109856000/1000, '%Y-%m-%d %h:%i:%s') as statis_time;

```

結(jié)果為:"2015-05-09 02:30:56"

日期大小寫問題導致的結(jié)果一致

在第一步和第二步中,我們明明是用兩個不同的日期時間轉(zhuǎn)換成毫秒數(shù),并且毫秒數(shù)也是不一致的,但是在第三步和第四步中,將毫秒數(shù)轉(zhuǎn)換成日期時卻得到了相同的結(jié)果。這是為什么呢?

經(jīng)過查詢資料和詢問別人,我發(fā)現(xiàn)在日期和毫秒數(shù)轉(zhuǎn)換時,需要注意大小寫的問題。對應(yīng)的格式字符串中的字母大小寫是有含義的,如下:

- "Y"表示年份,大寫代表四位數(shù)字,小寫代表兩位數(shù)字

- "m"表示月份,大寫和小寫都表示兩位數(shù)字

- "d"表示日期,大寫和小寫都表示兩位數(shù)字

- "H"表示小時(24小時制),大寫和小寫都表示兩位數(shù)字

- "h"表示小時(12小時制),大寫和小寫都表示兩位數(shù)字

- "i"表示分鐘,大寫和小寫都表示兩位數(shù)字

- "s"表示秒鐘,大寫和小寫都表示兩位數(shù)字

因此,使用不同大小寫的格式字符串可能會導致不同的結(jié)果。

例如,我們將第三步中的SQL語句中的"%h"改為"%H":

```

select FROM_UNIXTIME(1431153056000/1000, '%Y-%m-%d %H:%i:%s') as statis_time;

```

結(jié)果為:"2015-05-09 14:30:56"

可以看到,與第四步的結(jié)果不一樣了。

結(jié)論

在日期轉(zhuǎn)換過程中,務(wù)必注意格式字符串中的大小寫,確保滿足正確的日期格式。否則,在轉(zhuǎn)換時可能會得到意外的結(jié)果。

標簽: