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属性相关推荐

  1. 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. ...

  2. Elasticsearch Java API 6.2(java client)

    前言 本节描述了Elasticsearch提供的Java API,所有的Elasticsearch操作都使用客户端对象执行,所有操作本质上都是完全异步的(要么接收监听器,要么未来返回). 此外,客户端 ...

  3. Mysql存储时间字段

    兄弟连教育数据库培训教程 Mysql存储时间字段用int.timestamp还是datetime 通常存储时间用datetime类型,现在很多系统也用int存储时间,它们有什么区别?总结如下: int ...

  4. Atitit.获取approot api 应用根路径 java c#.net php asp

    Atitit.获取approot api 应用根路径 java c#.net php asp 1. 如果根路径返回empty,否则返回/app,兼容getContextPath() <scrip ...

  5. java jsf_将Java 8日期时间API与JSF和Java EE 7结合使用

    java jsf 如果您将Java 8与Java EE 7一起使用,则在尝试利用某些Java 8新功能时可能会遇到一些怪癖. 一个这样的怪癖是,默认情况下,新的Date-Time API不适用于许多J ...

  6. 将Java 8日期时间API与JSF和Java EE 7结合使用

    如果您将Java 8与Java EE 7一起使用,则在尝试利用某些Java 8新功能时可能会遇到一些怪癖. 一个这样的怪癖是,默认情况下,新的Date-Time API不适用于许多Java EE 7 ...

  7. leaflet调用mysql_PHP和MySQL以及Leaflet API

    我在这里打了一个关于使用 PHP& amp; MySQL与Leaflet API.我开始使用PHP& MYSQL几个月前,我是那个领域的新手,但我愿意学习,所以请给我一些关于我的问题的 ...

  8. 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 ...

  9. java计算机毕业设计的小区物业管理系统源程序+mysql+系统+lw文档+远程调试java计算机毕业设计的小区物业管理系统源程序+mysql+系统+lw文档+

    java计算机毕业设计的小区物业管理系统源程序+mysql+系统+lw文档+远程调试java计算机毕业设计的小区物业管理系统源程序+mysql+系统+lw文档+ java计算机毕业设计的小区物业管理系 ...

最新文章

  1. 如何在DataGrid里面产生滚动条而不滚动题头
  2. hdu3665 水最短路
  3. python全栈开发要学些什么_如何迅速学习Python 全栈开发?
  4. 数据结构——双向链表的实现
  5. 第三次学JAVA再学不好就吃翔(part60)--Arrays类
  6. 在ASP.NET Atlas中调用Web Service——创建Mashup调用远端Web Service(基础知识以及简单示例)...
  7. InnerClass内部类
  8. java位逻辑运算符_详述:Java逻辑运算符与位运算
  9. centos samba 看不到共享目录_samba共享服务
  10. VALSE学习(十三):网络结构搜索提速方法和训练技巧-NAS
  11. C#基础知识五之abstract virtual关键字
  12. java连接zookeeper服务器出现“KeeperErrorCode = ConnectionLoss for ...”
  13. python中popen阻塞怎么办_对Python subprocess.Popen子进程管道阻塞详解
  14. C语言编写的爱心代码
  15. 串级控制MATLAB实验报告,串级控制系统实验报告.docx
  16. 用聚宽量化炒股-5获取数据函数-6)获取指数成分股代码函数get_index_stocks
  17. LSB图像数字水印嵌入算法(含python代码)
  18. foo, bar, 甲乙丙丁
  19. 极化码:基于单项式码的极化码部分序(Partial Order)表示
  20. oracle 迁移到另一台服务器上,Oracle数据库迁移(从一台服务器迁移到另一台服务器)...

热门文章

  1. Jointjs初认识
  2. windows下 兼容性助手 修改的注册表位置
  3. 中国移动灵犀云声纹识别SDK(android)使用指南
  4. 【中级软考—软件设计师】2操作系统2.3进程调度【****】:2.3.3考点三:前趋图与PV操作
  5. 什么是毛利润、净利润、纯利润?终于有人说清楚了!
  6. 28、无界资本:互联网+时代的资本重生之路
  7. html5图片看不见,html5 绘制图片 drawImage
  8. java txt数据导入excel,java导入excle文件《如何用java 将txt数据导入excel》
  9. 计算机考研考电路基础,2018考研华中科技大学814电路理论考试大纲
  10. 科技创新赋能金融转型,巨杉数据库与赞同科技完成产品互认证