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;

 

 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');

 

 有效期:'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 中获取日期时间值。

 

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
与本课题相关的技术和方法综述: 系统将采用JSP、SQL Server 2008、JDBC、JavaScript技术来进行设计,具体如下: (1)JSP JSP是一种动态网页开发技术,主要用于实现应用程序的登录界面和资源信息等界面。JSP标签可以访问数据库、记录用户选择信息。 JSP可以直接在HTML网页中动态嵌入元素而不需要单独引用CGI文件。本系统将采用JSP技术,运用HTML和CSS实现各个功能的网页界面,与对应java程序连接实现各个功能。 (2)SQL Server SQL Server具有使用方便可伸缩性好与相关软件集成程度高等优点,本系统将采用SQL Server技术建立多个数据库表用来记录学生的账号信息、管理员信息、学生个人共享的学习资源和所有学生共享的学习资源。 (3)JDBC JDBC是一种用于执行SQL语句的Java API,有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。本系统将采用JDBC技术实现Java程序与SQL Server之间的链接,可以通过程序来对数据库进行学生共享学习资源、学生查询学习资源、管理员对学习资源增删改查等操作。 (4)JavaScript JS具有跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(Windows、Linux、Mac、Android、iOS等),在本设计中将用JS做一些动态交互和事件响应效果。 山西大学商务学院毕业论文(设计)开题报告 主要设计内容: 设计内容主要包括系统需求分析、功能分析、数据库设计、系统测试主要内容,具体如下: 1、系统需求分析 学习资源共享系统是一个面闻喜中学学生的共享系统,对于学生来说,可以注册账号然后通过系统向其他学生共享自己的学习资源并可以查看自己的分享历史,也可以查询其他学生分享的学习资源让自己了解更多。对于系统的管理员来说主要是对学生们分享的资源进行一些审查,不合适的资源将进行删除。 2、功能分析 设计的系统主要包括学生共享模块,共享记录模块,留言板,浏览记录模块,管理员模块等功能。 (1)学生的登录模块:学生注册账号密码,账号密码将保存到数据库中,然后学生登录。 (2)学生共享模块:学生对自己想要共享的资源进行录入,录入时对资源进行分类录入,可以在整个资源页面进行搜索,可以模糊搜索。 (3)共享记录模块:学生可以查看自己共享的记录,可以删除自己不想再共享的资源,也可以修改自己的共享记录。 (4)留言板:学生可以留言自己想要获得的资源,其他学生可以在下面回复他。 (5)浏览记录模块:学生可以查看自己浏览过哪些资源记录,并可以删除它们。 (6)管理员模块:管理员有固定账号密码,可以对所有共享的学习资源进行增删改查。 3、数据库设计 数据库将建立存储管理员账号密码的表和学生账号密码的表,存放资源信息的表、学生个人共享资源的表。 4、系统测试 设计将采用功能测试,进行登录注册功能的测试,验证学生账号密码是否能存进数据库,进行资源的增删改查等操作测试与数据库是否正常连接。在不同的电脑系统上运行程序测试是否可以正常运行。
如果你是在Java中获取一个ID对应的名字,那么具体的实现会根据你所使用数据库或其他数据存储方式而有所不同。一般而言,你需要先连接到数据库或数据存储服务,然后使用查询语句(如SQL语句)查询该ID对应的名字,并将结果返回给你的Java程序。 以下是一个使用JavaMySQL数据库的例子,查询一个ID对应的名字: ```java import java.sql.*; public class GetNameByID { public static void main(String[] args) { Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; String name = null; try { // 加载MySQL驱动 Class.forName("com.mysql.jdbc.Driver"); // 连接到MySQL数据库 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password"); // 准备查询语句 stmt = conn.prepareStatement("SELECT name FROM mytable WHERE id = ?"); // 设置查询参数 stmt.setInt(1, 123); // 执行查询语句 rs = stmt.executeQuery(); // 处理查询结果 if (rs.next()) { name = rs.getString("name"); System.out.println("Name for ID 123 is: " + name); } else { System.out.println("No name found for ID 123"); } } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } finally { // 关闭数据库连接和查询结果集 try { if (rs != null) rs.close(); if (stmt != null) stmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } ``` 在上面的例子中,我们使用MySQL数据库和JDBC API连接到数据库,并使用PreparedStatement对象准备了一个查询语句。我们将查询参数设置为123,然后执行查询并处理结果集,最后关闭了数据库连接和查询结果集。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

華同学.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值