暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
4.日期时间类型.docx
65
16页
0次
2024-06-08
50墨值下载
MySQL 中有多种数据类型可以用于日期和时间的表示,下表中列出了 MySQL 中所支持的
日期和时间类型。
类型名称 日期格式 日期范围 存储需求
YEAR YYYY 1901 ~ 2155
1 个字节
TIME HH:MM:SS -838:59:59 ~ 838:59:59
3 个字节
DATE YYYY-MM-DD 1000-01-01 ~ 9999-12-31
3 个字节
DATETIME
YYYY-MM-DD
HH:MM:SS
1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
8 个字节
TIMESTAM
P
YYYY-MM-DD
HH:MM:SS
1970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07
UTC
4 个字节
每种日期时间类型都有一个有效值范围,如果超出这个范围,系统会进行提示,并将以零值来
进行存储。不同日期类型零值的表示如下表所示。
数据类型 零值表示
DATETIME 0000-00-00 00:00:00
DATE 0000-00-00
TIMESTAMP 00000000000000
TIME 00:00:00
YEAR 0000
YEAR 类型
YEAR 类型是一个单字节类型,用于表示年,在存储时只需要 1 个字节。可以使用各种格式
指定 YEAR
YEAR 2 位或 4 位格式的年。默认是 4 位格式。
1. 4 位格式中,允许的值是 19012155 0000
2. 2 位格式中,允许的值是 7069,表示从 19702069 年。
1. 2 位字符串格式表示的 YEAR,范围为 '00' '99''00''69' '70''99'
围的值分别被转换为 20002069 19701999 范围的 YEAR 值。'0' '00'
的作用相同。插入超过取值范围的值将被转换为 2000
2. 2 位数字表示的 YEAR,范围为 199199 7099 范围的值分别被转
换为 20012069 19701999 范围的 YEAR 值。注意,在这里 0 值将被转
换为 0000,而不是 2000
注意:两位整数范围与两位字符串范围稍有不同。
示例
创建测试表
CREATE TABLE t14(
id INT AUTO_INCREMENT PRIMARY KEY,
created_year YEAR NOT NULL
);
使用 4 位数年份插入一行
INSERT INTO t14 (created_year) VALUES (2023);
使用 2 位数年份插入 2
INSERT INTO t14 (created_year) VALUES (23), (99);
再插入一个 0 值:
INSERT INTO t14 (created_year) VALUES (0), ('0');
查询表中的数据
mysql> SELECT * FROM t14;
+----+--------------+
| id | created_year |
+----+--------------+
| 1 | 2023 |
| 2 | 2023 |
| 3 | 1999 |
| 4 | 0000 |
| 5 | 2000 |
+----+--------------+
5 rows in set (0.00 sec)
可以看出,数字 0 转换为了 0000,而字符串 '0' 转换为了 2000
TIME 类型
TIME 类型用于存储时间信息的值,在存储时需要 3 个字节。格式为 HH:MM:SSHH 表示
小时,MM 表示分钟,SS 表示秒。
TIME 类型的取值范围为 -83859598385959,小时部分如此大的原因是 TIME
型不仅可以用于表示一天的时间(必须小于 24 小时),还可能是某个事件过去的时间或两个
事件之间的时间间隔(可大于 24 小时,或者甚至为负)。
示例
创建测试表 t15
create table t15 (t time);
now()函数插入当前日期时间
insert into t15 values(now());
查看显示结果
of 16
50墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜