MySQL DATETIME类型的用法(附带实例)
MYSQL 中的 DATETIME 类型用在需要同时包含日期和时间信息时,在存储时需要 8 字节,日期格式为:
在给 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:
2) 向表中插入“YYYY-MM-DD HH:MM:SS”和“YYYYMMDDHHMMSS”格式的日期:
3) 查看插入结果:
【实例 2】向表 tmp6 中插入“YY-MM-DD HH:MM:SS”和“YYMMDDHHMMSS”字符串格式的日期和时间值。
1) 删除表中的数据:
2) 向表中插入“YY-MM-DD HH:MM:SS”和“YYMMDDHHMMSS”格式的日期:
3) 查看插入结果:
【实例 3】向表 tmp6 中插入 YYYYMMDDHHMMSS 和 YYMMDDHHMMSS 数字格式的日期和时间值。
1) 删除表中的数据:
2) 向表中插入 YYYYMMDDHHMMSS 和 YYMMDDHHMMSS 数字格式的日期和时间:
3) 查看插入结果:
【实例 4】向表 tmp6 中插入系统当前日期和时间。
1) 删除表中的数据:
2) 向表中插入系统当前日期和时间:
3) 查看插入结果:
最终需要说明的是,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”是等价的,这些值都可以被正确地插入数据库中。
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”是等价的,这些值都可以被正确地插入数据库中。