Mysql存储时间,对应Api及对应的java属性
1.Mysql存储时间的类型
常用的储存时间/日期的类型:
- DATE:仅用于存储日期值(年、月、日),格式为'YYYY-MM-DD'。
- TIME:仅用于存储时间值(小时、分钟、秒),格式为'HH:MM:SS'。
- DATETIME:用于同时存储日期和时间值,格式为'YYYY-MM-DD HH:MM:SS'。
- TIMESTAMP:用于存储日期和时间戳值,格式同 DATETIME 一致,但其支持更广泛的时间范围。
详细介绍:
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_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-02SELECT DATE_ADD('2021-08-16 10:00:00', INTERVAL 2 HOUR);
-- 结果:2021-08-16 12:00:00SELECT DATE_ADD('1995-02-28', INTERVAL 1 MONTH);
-- 结果:1995-03-28SELECT DATE_ADD('2022-01-01', INTERVAL 1 YEAR);
-- 结果:2023-01-01
SELECT DATE_ADD('2021-08-16', INTERVAL -1 DAY);
-- 结果:2021-08-15
时间格式化:DATE_FORMAT();
注意:"%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 秒
TIME 类型的有效时间范围是从 '-838:59:59' 到 '838:59:59'。
在查询时间值时,可以使用许多内置函数和操作符来执行各种时间操作。
例如,可以使用 HOUR()、MINUTE()、SECOND() 函数分别获取给定时间的小时、分钟、秒信息。还可以使用 TIME_FORMAT() 函数将时间值格式化为指定的字符串形式。
TIME_FORMAT()使用!
语法:TIME_FORMAT(time,format)
time 表示要进行操作的时间值;format 表示要将时间值格式化为的字符串形式。
- %H:小时(00-23)
- %h:小时(01-12)
- %i:分钟(00-59)
- %s:秒(00-59)
- %p:AM 或 PM
SELECT TIME_FORMAT('10:15:30', '%H:%i:%s');
-- 结果:10:15:30SELECT 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() 函数获取给定时间的小时、分钟、秒信息。
还可以使用 DATE_FORMAT() 函数将日期时间值格式化为指定的字符串形式。
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.其他时间类型:(这里实际开发应用很少)
- YEAR:用于存储年份信息,格式为'YYYY'。MySQL 中的 YEAR 数据类型存储的是 2 个字节,可以表示从 1901 年到 2155 年之间的年份。
- INTERVAL:用于存储两个日期或时间之间的时间量,例如一个小时或一个月。
- DAY、WEEK、MONTH、QUARTER 和 YEAR:用于执行在日期上的算术运算或比较
当前日期: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.sql.Date
- TIME:java.sql.Time
- DATETIME、TIMESTAMP:java.sql.Timestamp
具体而言:
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 中获取日期时间值。
Mysql存储时间,对应Api及对应的java属性相关推荐
- HikariPool使用MySQL/MariaDB数据库报错解决:java.sql.SQLException: Access denied for user 'root'@'localhost' (u
在使用HikariPool连接到我的数据库时报错如下,完整的报错放在最后: 2019-06-25 20:24:26.048 ERROR 18204 --- [nio-8080-exec-9] com. ...
- Elasticsearch Java API 6.2(java client)
前言 本节描述了Elasticsearch提供的Java API,所有的Elasticsearch操作都使用客户端对象执行,所有操作本质上都是完全异步的(要么接收监听器,要么未来返回). 此外,客户端 ...
- Mysql存储时间字段
兄弟连教育数据库培训教程 Mysql存储时间字段用int.timestamp还是datetime 通常存储时间用datetime类型,现在很多系统也用int存储时间,它们有什么区别?总结如下: int ...
- Atitit.获取approot api 应用根路径 java c#.net php asp
Atitit.获取approot api 应用根路径 java c#.net php asp 1. 如果根路径返回empty,否则返回/app,兼容getContextPath() <scrip ...
- java jsf_将Java 8日期时间API与JSF和Java EE 7结合使用
java jsf 如果您将Java 8与Java EE 7一起使用,则在尝试利用某些Java 8新功能时可能会遇到一些怪癖. 一个这样的怪癖是,默认情况下,新的Date-Time API不适用于许多J ...
- 将Java 8日期时间API与JSF和Java EE 7结合使用
如果您将Java 8与Java EE 7一起使用,则在尝试利用某些Java 8新功能时可能会遇到一些怪癖. 一个这样的怪癖是,默认情况下,新的Date-Time API不适用于许多Java EE 7 ...
- leaflet调用mysql_PHP和MySQL以及Leaflet API
我在这里打了一个关于使用 PHP& amp; MySQL与Leaflet API.我开始使用PHP& MYSQL几个月前,我是那个领域的新手,但我愿意学习,所以请给我一些关于我的问题的 ...
- java excel api 下载文件_Java-Excel Java操作Excel POI(Jakarta POI API) - 下载 - 搜珍网
Java操作Excel/Jakarta POI API/data/Jakarta POI API.doc Java操作Excel/Jakarta POI API/jar/poi-3.0.2-FINAL ...
- java计算机毕业设计的小区物业管理系统源程序+mysql+系统+lw文档+远程调试java计算机毕业设计的小区物业管理系统源程序+mysql+系统+lw文档+
java计算机毕业设计的小区物业管理系统源程序+mysql+系统+lw文档+远程调试java计算机毕业设计的小区物业管理系统源程序+mysql+系统+lw文档+ java计算机毕业设计的小区物业管理系 ...
最新文章
- 如何在DataGrid里面产生滚动条而不滚动题头
- hdu3665 水最短路
- python全栈开发要学些什么_如何迅速学习Python 全栈开发?
- 数据结构——双向链表的实现
- 第三次学JAVA再学不好就吃翔(part60)--Arrays类
- 在ASP.NET Atlas中调用Web Service——创建Mashup调用远端Web Service(基础知识以及简单示例)...
- InnerClass内部类
- java位逻辑运算符_详述:Java逻辑运算符与位运算
- centos samba 看不到共享目录_samba共享服务
- VALSE学习(十三):网络结构搜索提速方法和训练技巧-NAS
- C#基础知识五之abstract virtual关键字
- java连接zookeeper服务器出现“KeeperErrorCode = ConnectionLoss for ...”
- python中popen阻塞怎么办_对Python subprocess.Popen子进程管道阻塞详解
- C语言编写的爱心代码
- 串级控制MATLAB实验报告,串级控制系统实验报告.docx
- 用聚宽量化炒股-5获取数据函数-6)获取指数成分股代码函数get_index_stocks
- LSB图像数字水印嵌入算法(含python代码)
- foo, bar, 甲乙丙丁
- 极化码:基于单项式码的极化码部分序(Partial Order)表示
- oracle 迁移到另一台服务器上,Oracle数据库迁移(从一台服务器迁移到另一台服务器)...
热门文章
- Jointjs初认识
- windows下 兼容性助手 修改的注册表位置
- 中国移动灵犀云声纹识别SDK(android)使用指南
- 【中级软考—软件设计师】2操作系统2.3进程调度【****】:2.3.3考点三:前趋图与PV操作
- 什么是毛利润、净利润、纯利润?终于有人说清楚了!
- 28、无界资本:互联网+时代的资本重生之路
- html5图片看不见,html5 绘制图片 drawImage
- java txt数据导入excel,java导入excle文件《如何用java 将txt数据导入excel》
- 计算机考研考电路基础,2018考研华中科技大学814电路理论考试大纲
- 科技创新赋能金融转型,巨杉数据库与赞同科技完成产品互认证