mysql中date、dateTime、time和timestamp日期时间的使用

mysql数据库在我们的工作中经常需要使用,经常在表中需要使用时间,mysql中常见的时间格式有date、datetime、time和timestamp。这四种格式有什么区别呢,下面总结一下。

1:time

显示格式:HH:mm:ss

测试数据在数据库中显示如下:

显示这样的时分秒,可能有小伙伴会问了,这个什么时候用呢?比如,在一些业务日报表中,只需要显示当日的数据,这时时间就可以用time格式。

2:date:

显示格式:YYYY-MM-DD

测试数据在数据库中显示如下:

这种格式只显示年月日,比如在一些业务中,只需要统计每天的数据,不需要具体的时分秒的,这个时候就可以用date类型。

3:datetime

显示格式:YYYY-MM-DD  HH:mm:ss

测试数据在数据库中显示如下:

4:timestamp

显示格式YYYY-MM-DD   HH:mm:ss

测试数据在数据库中显示如下:

看了datetime和timestamp的显示格式,那么有小伙伴可能会问了,这两种类型支持的格式一样,那么是不是可以用其一都行。当然不是。timestamp支持的时间范围为1970-01-01  00:00:01   至   2038-01-19  03:14:17,而datetime支持的时间范围为:
1000-00-00  00:00:00  至  9999-12-31  23:59:59;timestamp与时区有关系,插入时间是会把时间从当前时区转换为UTC(世界标准时间)进行存储,查询时,又会把标准时间转换为当时时区时间显示。而datetime会将客户端输入的时间直接进行存储,查询时返回,基本上没有变化。

总结了mysql中常见四种时间的用法,当然,具体要使用哪种格式的时间,主要是根据业务需求选择。知识就是要不断学习,不断复习,才能记忆的更加的深刻。加油,美好的风景一直在路上。

 

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MySQL时间类型有四种,分别是DATETIMEDATETIMETIMESTAMP,这些类型在Java的转换方式如下: 1. DATETIME类型 在Java,可以使用java.time.LocalDateTime类来表示DATETIME类型。在通过JDBC从MySQL读取DATETIME类型的值时,可以使用ResultSet类的getTimestamp方法获取java.sql.Timestamp类型的值,然后再将其转换为java.time.LocalDateTime类型: ```java ResultSet rs = stmt.executeQuery("SELECT datetime_column FROM table"); while (rs.next()) { Timestamp timestamp = rs.getTimestamp("datetime_column"); LocalDateTime datetime = timestamp.toLocalDateTime(); // ... } ``` 在将java.time.LocalDateTime类型的值写入到MySQLDATETIME类型的字段时,可以使用PreparedStatement类的setTimestamp方法: ```java PreparedStatement pstmt = conn.prepareStatement("INSERT INTO table (datetime_column) VALUES (?)"); LocalDateTime datetime = LocalDateTime.now(); Timestamp timestamp = Timestamp.valueOf(datetime); pstmt.setTimestamp(1, timestamp); pstmt.executeUpdate(); ``` 2. DATE类型 在Java,可以使用java.time.LocalDate类来表示DATE类型。在通过JDBC从MySQL读取DATE类型的值时,可以使用ResultSet类的getDate方法获取java.sql.Date类型的值,然后再将其转换为java.time.LocalDate类型: ```java ResultSet rs = stmt.executeQuery("SELECT date_column FROM table"); while (rs.next()) { Date date = rs.getDate("date_column"); LocalDate localDate = date.toLocalDate(); // ... } ``` 在将java.time.LocalDate类型的值写入到MySQLDATE类型的字段时,可以使用PreparedStatement类的setDate方法: ```java PreparedStatement pstmt = conn.prepareStatement("INSERT INTO table (date_column) VALUES (?)"); LocalDate localDate = LocalDate.now(); Date date = Date.valueOf(localDate); pstmt.setDate(1, date); pstmt.executeUpdate(); ``` 3. TIME类型 在Java,可以使用java.time.LocalTime类来表示TIME类型。在通过JDBC从MySQL读取TIME类型的值时,可以使用ResultSet类的getTime方法获取java.sql.Time类型的值,然后再将其转换为java.time.LocalTime类型: ```java ResultSet rs = stmt.executeQuery("SELECT time_column FROM table"); while (rs.next()) { Time time = rs.getTime("time_column"); LocalTime localTime = time.toLocalTime(); // ... } ``` 在将java.time.LocalTime类型的值写入到MySQLTIME类型的字段时,可以使用PreparedStatement类的setTime方法: ```java PreparedStatement pstmt = conn.prepareStatement("INSERT INTO table (time_column) VALUES (?)"); LocalTime localTime = LocalTime.now(); Time time = Time.valueOf(localTime); pstmt.setTime(1, time); pstmt.executeUpdate(); ``` 4. TIMESTAMP类型 在Java,可以使用java.time.LocalDateTime类来表示TIMESTAMP类型。在通过JDBC从MySQL读取TIMESTAMP类型的值时,可以使用ResultSet类的getTimestamp方法获取java.sql.Timestamp类型的值,然后再将其转换为java.time.LocalDateTime类型: ```java ResultSet rs = stmt.executeQuery("SELECT timestamp_column FROM table"); while (rs.next()) { Timestamp timestamp = rs.getTimestamp("timestamp_column"); LocalDateTime datetime = timestamp.toLocalDateTime(); // ... } ``` 在将java.time.LocalDateTime类型的值写入到MySQLTIMESTAMP类型的字段时,可以使用PreparedStatement类的setTimestamp方法: ```java PreparedStatement pstmt = conn.prepareStatement("INSERT INTO table (timestamp_column) VALUES (?)"); LocalDateTime datetime = LocalDateTime.now(); Timestamp timestamp = Timestamp.valueOf(datetime); pstmt.setTimestamp(1, timestamp); pstmt.executeUpdate(); ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值