首页 > 编程笔记 > MySQL笔记 阅读:12

MySQL DATETIME类型的用法(附带实例)

MYSQL 中的 DATETIME 类型用在需要同时包含日期和时间信息时,在存储时需要 8 字节,日期格式为:
YYYY-MM-DD HH:MM:SS
其中,YYYY 表示年,MM 表示月,DD 表示日,HH 表示小时,MM 表示分钟,SS 表示秒。

在给 DATETIME 类型的字段赋值时,可以使用字符串类型或者数字类型,只要符合 DATETIME 的日期格式即可。

1) 以“YYYY-MM-DD HH:MM:SS”或者“YYYYMMDDHHMMSS”字符串格式表示的值,取值范围为 1000-01-01 00:00:00~9999-12-3 23:59:59。

例如,输入“2012-12-31 05:05:05”或者“20121231050505”,插入数据库的 DATETIME 值都为 2012-12-31 05: 05: 05。

2) 以“YY-MM-DD HH:MM:SS”或者“YYMMDDHHMMSS”字符串格式表示的日期,这里 YY 表示两位的年值。与前面相同,00~69范围的年值被转换为 2000~2069,70~99 范围的年值被转换为 1970~1999。

例如,输入“12-12-31 05:05:05”,插入数据库的 DATETIME 为 2012-12-31 05:05:05;输入“980505050505”,插入数据库的DATETIME为1998-05-05 05:05:05。

3) 以 YYYYMMDDHHMMSS 或者 YYMMDDHHMMSS 数字格式表示的日期和时间。

例如,输入 20121231050505,插入数据库的 DATETIME 为 2012-12-31 05:05:05;输入 981231050505,插入数据的 DATETIME 为 1998-12-31 05:05:05。

【实例 1】创建数据表 tmp6,定义数据类型为 DATETIME 的字段 dt,向表中插入“YYYY-MM-DD HH:MM:SS”和“YYYYMMDDHHMMSS”字符串格式日期和时间值。
1) 创建表 tmp6:
CREATE TABLE tmp6(  dt DATETIME );

2) 向表中插入“YYYY-MM-DD HH:MM:SS”和“YYYYMMDDHHMMSS”格式的日期:
mysql> INSERT INTO tmp6 values('1998-08-08 08:08:08'),('19980808080808'),('20101010101010');

3) 查看插入结果:
mysql> SELECT * FROM tmp6;
+------------------------+
| dt                     |
+------------------------+
| 1998-08-08 08:08:08    |
| 1998-08-08 08:08:08    |
| 2010-10-10 10:10:10    |
+------------------------+
可以看到,各个不同类型的日期值都被正确地插入数据表中。

【实例 2】向表 tmp6 中插入“YY-MM-DD HH:MM:SS”和“YYMMDDHHMMSS”字符串格式的日期和时间值。
1) 删除表中的数据:
DELETE FROM tmp6;

2) 向表中插入“YY-MM-DD HH:MM:SS”和“YYMMDDHHMMSS”格式的日期:
mysql> INSERT INTO tmp6 values('99-09-09 09:09:09'),('990909090909'),('101010101010');

3) 查看插入结果:
mysql> SELECT * FROM tmp6;
+-------------------------+
| dt                      |
+-------------------------+
| 1999-09-09 09:09:09     |
| 1999-09-09 09:09:09     |
| 2010-10-10 10:10:10     |
+-------------------------+

【实例 3】向表 tmp6 中插入 YYYYMMDDHHMMSS 和 YYMMDDHHMMSS 数字格式的日期和时间值。
1) 删除表中的数据:
DELETE FROM tmp6;

2) 向表中插入 YYYYMMDDHHMMSS 和 YYMMDDHHMMSS 数字格式的日期和时间:
mysql> INSERT INTO tmp6 values(19990909090909), (101010101010);

3) 查看插入结果:
mysql> SELECT * FROM tmp6;
+--------------------------+
| dt                       |
+-------------------------+
| 1999-09-09 09:09:09     |
| 2010-10-10 10:10:10     |
+-------------------------+

【实例 4】向表 tmp6 中插入系统当前日期和时间。
1) 删除表中的数据:
DELETE FROM tmp6;

2) 向表中插入系统当前日期和时间:
mysql> INSERT INTO tmp6 values( NOW() );

3) 查看插入结果:
mysql> SELECT * FROM tmp6;
+-------------------------+
| dt                      |
+-------------------------+
| 2024-08-09 17:07:30     |
+-------------------------+
NOW() 函数返回当前系统的日期和时间,格式为“YYYY-MM-DD HH:MM:SS”。

最终需要说明的是,MySQL 允许“不严格”语法,任何标点符号都可以用作日期部分或时间部分之间的间隔符。例如,“98-12-31 11:30:45”、“98.12.31 11+30+45”、“98/12/31 11*30*45”和“98@12@31 11^30^45”是等价的,这些值都可以被正确地插入数据库中。

相关文章