mysql修改時間型別 mysql 日期和時間型別

2021-10-17 21:02:53 字數 3144 閱讀 7334

日期和時間型別

表示時間值的日期和時間型別為datetime、date、timestamp、time和year。

每個時間型別有乙個有效值範圍和乙個"零"值,當指定不合法的mysql不能表示的值時使用"零"值。

timestamp型別有專有的自動更新特性,將在後面描述。型別大小範圍格式用途

date31000-01-01/9999-12-31yyyy-mm-dd日期值

time3'-838:59:59'/'838:59:59'hh:mm:ss時間值或持續時間

year11901/2155yyyy年份值

datetime81000-01-01 00:00:00/9999-12-31 23:59:59yyyy-mm-dd hh:mm:ss混合日期和時間值

timestamp41970-01-01 00:00:00/2038

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

日期時間型別mysql資料型別含義

date日期 '2008-12-2'

time時間 '12:25:36'

datetime日期時間 '2008-12-2 22:06:44'

timestamp自動儲存記錄修改時間

注意:若定義乙個欄位為timestamp,這個欄位裡的時間資料會隨其他字段修改的時候自動重新整理,所以這個資料型別的字段可以存放這條記錄最後被修改的時間。

建立乙個t8表,測試:

mysql> create table t8 ( n1 year, n2 date, n3 time, n4 datetime );

query ok, 0 rows affected (0.04 sec)

#n1(year)插入"1901"值.

mysql> insert into t8 (n1) values (1901);

query ok, 1 row affected (0.00 sec)

#檢視表中的資料.

mysql> select * from t8;

| n1   | n2   | n3   | n4   |

| 1901 | null | null | null |

1 row in set (0.00 sec)

#n2(date)插入"2017-12-04"值.

mysql> insert into t8 (n2) values ("2017-12-04");

query ok, 1 row affected (0.04 sec)

#檢視表中的資料.

mysql> select * from t8;

| n1   | n2         | n3   | n4   |

| 1901 | null       | null | null |

| null | 2017-12-04 | null | null |

2 rows in set (0.00 sec)

#n3(time)插入"18:12:03"值.

mysql> insert into t8 (n3) values ("18:12:03");

query ok, 1 row affected (0.01 sec)

mysql> select * from t8;

| n1   | n2         | n3       | n4   |

| 1901 | null       | null     | null |

| null | 2017-12-04 | null     | null |

| null | null       | 18:12:03 | null |

3 rows in set (0.00 sec)

#n4(datetime)插入"2018-12-03 18:12:03"值.

mysql> insert into t8 (n4) values ("2018-12-03 18:12:03");

query ok, 1 row affected (0.00 sec)

mysql> select * from t8;

| n1   | n2         | n3       | n4                  |

| 1901 | null       | null     | null                |

| null | 2017-12-04 | null     | null                |

| null | null       | 18:12:03 | null                |

| null | null       | null     | 2018-12-03 18:12:03 |

4 rows in set (0.00 sec)

#timestamp屬性,自動更新時間戳.

mysql> create table t9 (

-> id int,

-> ts timestamp

query ok, 0 rows affected (0.00 sec)

mysql> insert into t9 (id) values (1);

query ok, 1 row affected (0.00 sec)

mysql> select * from t9;

| id   | ts                  |

|    1 | 2019-01-26 19:04:40 |

1 row in set (0.00 sec)

timestamp和datetime的不同點:

兩者的儲存方式不一樣

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

而對於datetime,不做任何改變,基本上是原樣輸入和輸出。

兩者所能儲存的時間範圍不一樣

timestamp所能儲存的時間範圍為:'1970-01-01 00:00:01.000000' 到 '2038-01-19 03:14:07.999999'。

datetime所能儲存的時間範圍為:'1000-01-01 00:00:00.000000' 到 '9999-12-31 23:59:59.999999'。

MySql修改時間

用python爬取國外的乙個 的資料,資料報含有時間,但是歐洲那邊和我們這邊有8小時的時差,本來在程式裡已經處理過了,但是他們又有夏令時,所以有的時候時間差是7小時,但是發現的時候,時間已經錯誤了,只能手動在mysql裡處理 date add dt,interval 1 microsecond 加1...

MySql修改時間

set dt now select date add dt,interval 1 day 加1天 select date add dt,interval 1 hour 加1小時 select date add dt,interval 1 minute 加1分鐘 select date add dt,...

linux修改時間

date s 12 20 2003 date s 12 30 00 clock w 寫入bios hwclock r顯示bios時間 修改linux時區 1.檢視當前時區 more etc sysconfig clock 2.修改設定時區 方法1 tzselect 方法2 timeconfig 3....