IT科技

當前位置 /首頁/IT科技 > /列表

date類型,mysql

mysql中date類型有:DATE、TIME、YEAR、DATETIME、TIMESTAMP。每個時間類型有一個有效值範圍和一個"零"值,當指定不合法的MySQL不能表示的值時使用"零"值,TIMESTAMP類型有專有的自動更新特性。

1、DATE

DATE範圍:1000-01-01/9999-12-31

格式:YYYY-MM-DD

用途:日期值

2、TIME

TIME範圍:'-838:59:59'/'838:59:59'

格式:HH:MM:SS

用途:時間值或持續時間

mysql date類型

3、YEAR

YEAR範圍:1901/2155

格式:YYYY

用途:年份值

4、DATETIME

DATETIME範圍:1000-01-01 00:00:00/9999-12-31 23:59:59

格式:YYYY-MM-DD HH:MM:SS

用途:混合日期和時間值

5、TIMESTAMP

TIMESTAMP範圍:

1970-01-01 00:00:00/2038

結束時間是第 2147483647 秒,北京時間 2038-1-19 11:14:07,格林尼治時間 2038年1月19日 凌晨 03:14:07

格式:YYYYMMDD HHMMSS

用途:混合日期和時間值,時間戳。

mysql date類型 第2張

拓展資料:

TIMESTAMP和DATETIME比較:

相同點:

兩者都可用來表示YYYY-MM-DD HH:MM:SS 類型的日期。

不同點

他們的的存儲方式,大小(字節),表示的範圍不同。

TIMESTAMP,它把客户端插入的時間從當前時區轉化為UTC(世界標準時間)進行存儲。查詢時,將其又轉化為客户端當前時區進行返回。

DATETIME,不做任何改變,基本上是原樣輸入和輸出。

總結:TIMESTAMP和DATETIME 都可用來表示YYYY-MM-DD HH:MM:SS 類型的日期, 除了存儲方式和存儲範圍以及大小不一樣,沒有太大區別。但對於跨時區的業務,TIMESTAMP更為合適。

時間與時間戳之間轉換

有些應用生成的時間戳是比這個多出三位,是毫秒錶示,如果要轉換,需要先將最後三位去掉(標準的10位數字,如果是13位的話可以以除以1000的方式),否則返回NULL

#將時間轉換為時間戳unix_timestamp

SELECT UNIX_TIMESTAMP('2019-02-22 13:25:07'); #1550813107

#將時間戳轉換為時間from_unixtime

SELECT FROM_UNIXTIME(1550813107); #2019-02-22 13:25:07

#NOW

SELECT UNIX_TIMESTAMP(NOW()); #1550813420

SELECT FROM_UNIXTIME(1550813420); #2019-02-22 13:30:20

TAG標籤:mysql #