1.Mysql存储时间的类型
详细介绍:
1.Date:
DATE 是一种日期类型的数据类型。它采用格式为 ‘YYYY-MM-DD’ 的字符串表示方式,其中 YYYY 表示四位数的年份,MM 表示两位数的月份,DD 表示两位数的日期。例如,’2021-08-16′ 表示 2021 年 8 月 16 日。
注意:当插入日期时,必须使用正确的格式。并且该日期必须是有效的。否则,将会抛出错误或者导致不可预期的结果。
有效期:’1000-01-01′ 到 ‘9999-12-31’
拓展:在查询日期值时,可以使用许多内置函数和操作符来执行各种日期操作。例如,可以使用 YEAR()、MONTH()、DAY() 函数分别获取给定日期的年、月、日信息。还可以使用 DATE_ADD()、DATE_SUB() 函数增加或减少日期中的天数、周数、月数等。
例如:
CREATE TABLE my_table (
id INT PRIMARY KEY,
name VARCHAR(50),
birth_date DATE
);
INSERT INTO my_table (id, name, birth_date) VALUES
(1, 'Alice', '1990-07-01'),
(2, 'Bob', '1985-12-15'),
(3, 'Charlie', '1995-02-28');
select YEAR(birth_date) from my_table;
可以使用 DATE_ADD() 函数增加给定日期值中的天数、周数、月数、年数等
语法:DATE_ADD(date, INTERVAL value unit)
date 表示要进行操作的日期值;value 表示要添加或减去的值;unit 表示要添加或减去的时间单位。可以使用以下时间单位
- MICROSECOND:微秒
- SECOND:秒
- MINUTE:分钟
- HOUR:小时
- DAY:天
- WEEK:周
- MONTH:月
- QUARTER:季度
- YEAR:年
示例:
SELECT DATE_ADD('2018-01-01', INTERVAL 1 DAY);
-- 结果:2018-01-02
SELECT DATE_ADD('2021-08-16 10:00:00', INTERVAL 2 HOUR);
-- 结果:2021-08-16 12:00:00
SELECT DATE_ADD('1995-02-28', INTERVAL 1 MONTH);
-- 结果:1995-03-28
SELECT DATE_ADD('2022-01-01', INTERVAL 1 YEAR);
-- 结果:2023-01-01
SELECT DATE_ADD('2021-08-16', INTERVAL -1 DAY);
-- 结果:2021-08-15
注意:”%Y-%m-%d” 如果大M,大D的话,就会展示英文的
小y,会展示年的后两位
select DATE_FORMAT(birth_date,"%Y-%m-%d") from my_table;
select DATE_FORMAT(birth_date,"%m") from my_table;
2.TIME
TIME 是一种时间类型的数据类型,用于存储时间值(小时、分钟、秒)。
它采用格式为 ‘HH:MM:SS’ 的字符串表示方式,其中 HH 表示两位数的小时,MM 表示两位数的分钟,SS 表示两位数的秒。例如,’23:59:59′ 表示 23 点 59 分 59 秒
在查询时间值时,可以使用许多内置函数和操作符来执行各种时间操作。
例如,可以使用 HOUR()、MINUTE()、SECOND() 函数分别获取给定时间的小时、分钟、秒信息。还可以使用 TIME_FORMAT() 函数将时间值格式化为指定的字符串形式。
TIME_FORMAT()使用!
SELECT TIME_FORMAT('10:15:30', '%H:%i:%s');
-- 结果:10:15:30
SELECT TIME_FORMAT('22:45:15', '%h:%i:%s %p');
-- 结果:10:45:15 PM
注意:TIME_FORMAT(time,format),如果time参数不是时间类型(例如:一个整数或者一个日期)则会返回NULL值
3.DATETIME
DATETIME 类型是一种日期时间类型的数据类型,用于同时存储日期和时间值。
它采用格式为 ‘YYYY-MM-DD HH:MM:SS’ 的字符串表示方式,其中 YYYY 表示四位数的年份,MM 表示两位数的月份,DD 表示两位数的日期,HH 表示小时,MM 表示分钟,SS 表示秒。例如,’2021-08-16 10:00:00′ 表示 2021 年 8 月 16 日早上 10 点。
时间有效期:1000-01-01 00:00:00′ 到 ‘9999-12-31 23:59:59
可以使用 YEAR()、MONTH()、DAY() 函数获取给定日期的年、月、日信息;使用 HOUR()、MINUTE()、SECOND() 函数获取给定时间的小时、分钟、秒信息。
select DATE_FORMAT(created_at ,”%Y-%m-%d %H-%i-%s“) from my_table;
4.TIMESTAMP
TIMESTAMP 是一种日期时间类型的数据类型,用于存储日期和时间值。它采用格式为 ‘YYYY-MM-DD HH:MM:SS’ 的字符串表示方式,其中 YYYY 表示四位数的年份,MM 表示两位数的月份,DD 表示两位数的日期,HH 表示小时,MM 表示分钟,SS 表示秒。
与 DATETIME 类型不同的是,TIMESTAMP 数据类型只使用 4 个字节来存储,从而占用更少的磁盘空间。此外,TIMESTAMP 数据类型还支持自动更新功能,可以在插入或更新记录时自动设置为当前时间戳。
CREATE TABLE my_table2 (
id INT PRIMARY KEY,
name VARCHAR(50),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
INSERT INTO my_table2 (id, name) VALUES
(1, 'Alice'),
(2, 'Bob'),
(3, 'Charlie');
有效期:’1970-01-01 00:00:01′ 到 ‘2038-01-19 03:14:07’
TIMESTAMP 数据类型使用 32 位整数来存储时间戳,最大值为 2^31-1(即 2147483647),相当于 2038 年 1 月 19 日 3 点 14 分 7 秒。
在查询和操作日期时间值时,可以使用许多内置函数和操作符来执行各种有用的操作。例如,可以使用 YEAR()、MONTH()、DAY() 函数获取给定日期的年、月、日信息;使用 HOUR()、MINUTE()、SECOND() 函数获取给定时间的小时、分钟、秒信息。还可以使用 DATE_FORMAT() 函数将日期时间值格式化为指定的字符串形式。
5.其他时间类型:(这里实际开发应用很少)
当前日期:select CURRENT_DATE() 年月日
1.INTERVAL 就是示例1上的 DATE_ADD(date, INTERVAL value unit)
2.Day SELECT DAY(‘2021-08-05’) —5
3.WEEK类型
WEEK 是一种日期时间类型的数据类型,用于存储周数信息。它采用一个介于 0 到 53 之间的整数表示一年中的周数。
CREATE TABLE my_table (
id INT PRIMARY KEY,
name VARCHAR(50),
week_of_birth WEEK
);
INSERT INTO my_table (id, name, week_of_birth) VALUES
(1, 'Alice', 31),
(2, 'Bob', 42),
(3, 'Charlie', 22);
4.QUARTER
QUARTER 是一种日期时间类型的数据类型,用于存储季度信息。它采用一个介于 1 到 4 之间的整数表示一年中的季度。
6.对应的Java属性
在 Java 中,可以使用不同的类来映射数据库中的日期时间类型。以下是一些常见的数据类型和它们对应的 Java 类型:
具体而言:
-
DATE 类型在 Java 中通常映射为 java.sql.Date 类型。java.sql.Date 只包含年月日信息,没有时间信息。可以使用 Date.valueOf(String) 方法将字符串转换为 java.sql.Date 类型,也可以使用 getDate() 方法从 ResultSet 中获取日期值。
-
TIME 类型在 Java 中通常映射为 java.sql.Time 类型。java.sql.Time 只包含时间信息,没有年月日信息。可以使用 Time.valueOf(String) 方法将字符串转换为 java.sql.Time 类型,也可以使用 getTime() 方法从 ResultSet 中获取时间值。
-
DATETIME 和 TIMESTAMP 类型在 Java 中通常映射为 java.sql.Timestamp 类型。java.sql.Timestamp 包含日期和时间信息,精确到纳秒级别。可以使用 Timestamp.valueOf(String) 方法将字符串转换为 java.sql.Timestamp 类型,也可以使用 getTimestamp() 方法从 ResultSet 中获取日期时间值。
原文地址:https://blog.csdn.net/weixin_50769390/article/details/130855661
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_13189.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!