Mysql存储时间,对应Api及对应的java属性

这篇具有很好参考价值的文章主要介绍了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-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

 时间格式化: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;

 文章来源地址https://www.toymoban.com/news/detail-462198.html

 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: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() 函数获取给定时间的小时、分钟、秒信息。

还可以使用 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');

 Mysql存储时间,对应Api及对应的java属性

 有效期:'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属性的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mysql常见时间函数, 获取日期对应的年、月、日、星期、周、季度、时、分、秒函数、加减、日期都有

     获取日期对应的年、月、日、星期、季度、时、分、秒函数、日期为当年的第几天函数都有 1、NOW(),用于获取当前日期和时间函数 select now()  返回:2023-05-18 10:58:06 2、CURDATE(),用于获取当前日期,同CURRENT_DATE() select curdate()  返回:2023-05-18 3、CURTIME(),用于获取当前时间,

    2024年02月15日
    浏览(47)
  • 根据Java Web 使用Servlet +Mysql 实现简易的登录及注册功能以及项目间的分层

    1、概述         一个好的层次划分不仅可以能使代码结构更加清楚,还可以使项目分工更加明确,可读性大大提升,跟回家有利于后期的维护和升级。从另一个角度来看,好的代码分层架构,应该使可以很好的匹配上单一职责原则的。这样就可以降低层与层之间的依赖,

    2024年02月05日
    浏览(59)
  • Java常用类之 JDK 8之前的日期时间API 和 8中新日期时间API

    Java常用类 JDK 8 之前日期和时间的API测试: 详细代码如下: SimpleDateFormate的使用: SimpleDateFormate对日期Date类的格式化和解析 重点关注: 具体代码如下: 1.获取Calendar实例的方法 2.重点掌握几个常用方法: 注意: 获取月份时:一月是0,二月是1,以此类推,12月是11 获取星期

    2024年02月07日
    浏览(52)
  • Java8 时间处理API(Date Time API)详解

    在Java8之前,我们通常使用 java.util.Date 和 java.util.Calendar 类来处理日期和时间相关的操作,例如: 这种方式虽然可以实现功能,但是有一些缺点: 可变性: Date 和 Calendar 类都是可变的,这意味着它们的值可以被修改,这可能会导致一些线程安全和逻辑错误的问题。 可读性差

    2024年02月11日
    浏览(57)
  • Java 日期和时间 API:实用技巧与示例 - 轻松处理日期和时间

    Scanner 类用于获取用户输入,它位于 java.util 包中。 要使用 Scanner 类,请执行以下步骤: 导入 java.util.Scanner 包。 创建一个 Scanner 对象,并将其初始化为 System.in 。 使用 Scanner 对象的方法读取用户输入。 Scanner 类提供了各种方法来读取不同类型的数据: 方法 描述 nextBoolean()

    2024年03月09日
    浏览(101)
  • Java调用Elasticsearch API实现全文检索,搭配MinIO文件存储

    应用背景: 对存储在MinIO服务器的文件实现全文检索。也可以是其他服务器或本地文件,本文仅详细介绍MinIO文件的读取及转换。通过Elasticsearch的Ingest-Attachment插件抽取文件内容,支持Word、Excel、PDF、TXT等格式文件,无需手动解析文件内容。 上代码,详细解释可以阅读注释、

    2024年02月11日
    浏览(44)
  • 如何查看硬盘对应的主板接口属性

    20220917 By wdhuag 最近关注到PCIE4.0*4固态硬盘读写速度已经在7000MB/s左右浮动了,而我笔记本的WDS250G2X0C-00L350和IM2P33F8-512GD还是PCIE3.0*4接口(读写速度在1000~3000MB/s)突然就不香了。更换硬盘之前要了解本机的主板接口类型,但是大多数硬件监控软件只会告诉你硬盘的接口类型,不

    2024年02月07日
    浏览(27)
  • Minio入门系列【5】JAVA集成Minio之存储桶操作API使用详解

    官方文档:https://min.io/docs/minio/kubernetes/upstream/index.html?ref=docs-redirect SDK:https://github.com/minio/minio-java Minio 提供了多种语言的SDK,比如java、go、python等。JAVA开发平台可以选择JS和java SDK,也就是前端和后端都可以直接集成minio。 每个OSS的用户都会用到上传服务。Web端常见的上传

    2024年02月05日
    浏览(51)
  • 头歌Educoder云计算与大数据——实验五 Java API分布式存储

    原始电商数据都是存储在关系型数据库或 NoSQL 数据库上的,是面向OLTP(联机事务处理过程)的;数据都是面向业务的,而不是面向分析。因此数据比较复杂,表很多关联的数据是分散的,不利于统计分析;因此需要把数据从多个表里导出来、联合起来,找出分析所需要的数据项

    2023年04月09日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包