mysql时间格式和Java时间格式对应
mysql时间格式和Java时间格式对应
在 MySQL 中有两种存储时间的数据类型 DATETIME 和 TIMESTAMP ,它们在数据库实际应用中,各有各的优势和劣势。本文将详细详解两个数据类型的区别,以及用实战案例说明它们的使用场景。
一. DATETIME 和 TIMESTAMP 的相同点
两个数据类型存储时间的格式一致。均为 YYYY-MM-DD HH:MM:SS
两个数据类型都包含「日期」和「时间」部分。
两个数据类型都可以存储微秒的小数秒(秒后6位小数秒)
二. DATETIME 和 TIMESTAMP 的区别
1.表示范围
DATETIME:1000-01-01 00:00:00.000000 到 9999-12-31 23:59:59.999999
TIMESTAMP:‘1970-01-01 00:00:01.000000’ UTC 到 ‘2038-01-09 03:14:07.999999’ UTC
2.空间占用
TIMESTAMP :占 4 个字节(小数秒+3 个字节)
DATETIME:在 MySQL 5.6.4 之前,占 8 个字节 ,之后版本,占 5 个字节。(小数秒+3 个字节)
3. 存入时间是否会自动转换?
TIMESTAMP:TIMESTAMP 的值是从「当前时间」转换成 UTC 时间,或者反过来转换。
DATETIME:不会做任何转换,也不会检测时区,你给什么数据,它存什么数据。
4.使用 now() 存储当前时间时,保存的实际值,是否与当前计算机时间一致?
TIMESTAMP:可能不一致。存储值会被转换成 UTC 时间值再存入数据库。
DATETIME:与当前时间是一致的。
5.如果存入的是 NULL 时,两个类型如何存储?
TIMESTAMP:会自动存储当前时间( now() )。
DATETIME:不会自动存储当前时间,会直接存入 NULL 值。
sql
CREATE TABLE `task_lock` (`id` bigint NOT NULL AUTO_INCREMENT,`task_name` varchar(255) NOT NULL,`lock_state` varchar(255) NOT NULL,`update_time` datetime DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8mb3;
mybatis
<insert id="save" parameterType="com.example.test1.model.TaskLock">insert into task_lock(task_name,lock_state,update_time) values(#{taskName},#{lockState},#{updateTime})</insert>
java
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class TaskLock {private Integer id;private String taskName;private String lockState;private Date updateTime;
}@AutowiredTaskLockMapper taskLockMapper;@Testpublic void InsetTest() {System.out.println(taskLockMapper);SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String currentSimpleDateFormat = simpleDateFormat.format(new Date());TaskLock taskLock = TaskLock.builder().lockState("locked").taskName("123").updateTime(new Date()).build();int result = taskLockMapper.save(taskLock);System.out.println("result:"+result);}
mysql时间格式和Java时间格式对应相关推荐
- java 时间戳转化datetime_c# DateTime时间格式和JAVA时间戳格式相互转换
///java时间戳格式时间戳转为C#格式时间 public static DateTime GetTime(longtimeStamp) { DateTime dtStart= TimeZone.C ...
- oracle日期格式和java日期格式区别 HH24:mm:ss和HH24:mi:ss的区别
oracle日期格式和java日期格式区别 HH24:mm:ss和HH24:mi:ss的区别 1.java 1)分钟用mm表示 24小时制: java(区分大小写):yyyy-MM-dd HH:mm: ...
- java日期格式拼接,java转换时间格式
Java中怎么把字符串转换成日期格式啊 就像"2005-06-09"怎么才能让它输出2005年6月9日呢,我用SimpleDateForma希望将日期输出成2005年6月9日,我们 ...
- java毫秒 mysql秒_MySQL和Java时间毫秒之间的转换问题的总结
在做关于依时间查询用户认证的业务,因为在MySQL中,time字段使用的是bigint类型,所以存在其中都是毫秒数.当需要从数据库中取出 最近几天在做关于依时间查询用户认证的业务,因为在MySQL中, ...
- java定义时间格式大全_Java时间格式转换大全
package com.date; import java.text.DateFormat; import java.text.ParseException; import java.text.Par ...
- java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)...
转载地址:http://www.devba.com/index.php/archives/4581.html java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明); ...
- mysql java 日期格式化_(转)java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)...
java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明);部分资料参考网络资源 1. java向MySQL插入当前时间的四种方式 第一种:将java.util.Date ...
- Java 程序读取Mysql数据库时间信息与真实时间相差 13、14 小时、SQLException: HOUR_OF_DAY: 2 -> 3
CST时区引起的异常: Java 程序读取Mysql数据库时间信息,与真实时间相差 13.14 小时 java.sql.SQLException: HOUR_OF_DAY: 2 -> 3 原因: ...
- inner join ,left join ,right join 以及java时间转换
1.inner join ,left join 与 right join (from 百度知道) 例表a aid adate 1 a1 2 a2 3 a3 表b bid bdate ...
最新文章
- oracle ORA-01113的解决方法(file 1 needs media recovery)
- 万词霸屏的本质是什么?
- 在阿里云主机上基于CentOS用vsftpd搭建FTP服务器
- 工具条内控件背景色设置
- 回退n帧协议c语言代码,[计算机网络]Ch.3 数据链路层
- ubuntu系统下如何修改host
- 奥鹏东师计算机应用基础18,免费在线作业答案奥鹏东师计算机应用基础15秋在线作业1试卷及答案(1)...
- 浏览器测试基本跑分网站
- Rabbtmq 消费端-幂等性保障
- 6、raid、lvm、while、until 学习笔记
- SmartSVN 14 for Mac(多平台SVN客户端)
- 文本对比工具google-diff-match-patch
- win7计算机开机启动项设置,如何设置WIN7开机启动项?
- DB---数据模型的三要素
- R语言自动提取新闻摘要的简单实现
- Mac中搜狗输入法在各应用中默认中英文状态
- Dremel made simple with Parquet(CN)
- ffmpeg examples -- demuxing_decoding
- 触发字检测 trigger word detection
- Obsolete和Conditional属性