mysql修改时间类型_mysql 日期和时间类型

日期和时间类型

表示时间值的日期和时间类型为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,格林尼治时间 2038年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'。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值