Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > mysql时间格式和Java时间格式对应

mysql时间格式和Java时间格式的对应方式

作者:紫金小飞侠

这篇文章主要介绍了mysql时间格式和Java时间格式的对应方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

在 MySQL 中有两种存储时间的数据类型 DATETIME 和 TIMESTAMP ,它们在数据库实际应用中,各有各的优势和劣势。

以下将详细详解两个数据类型的区别,以及用实战案例说明它们的使用场景。

一. DATETIME 和 TIMESTAMP 的相同点

两个数据类型存储时间的格式一致。均为 YYYY-MM-DD HH:MM:SS

两个数据类型都包含「日期」和「时间」部分。

两个数据类型都可以存储微秒的小数秒(秒后6位小数秒)

二. DATETIME 和 TIMESTAMP 的区别

1.表示范围

2.空间占用

3. 存入时间是否会自动转换?

4.使用 now() 存储当前时间时

保存的实际值,是否与当前计算机时间一致?

5.如果存入的是 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;
}
    @Autowired
    TaskLockMapper taskLockMapper;
    @Test
    public 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);
    }

在这里插入图片描述

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文