• Java日期时间API系列2-----Jdk7及以前的日期时间类在mysql数据库中的应用


    1.java中与数据库相关的时间类

    java提供与mysql方便交互的三种数据类型:

    java.sql.Date

    java.sql.Time

    java.sql.Timestamp

    它们都是继承java.util.Date,算是对该类的精简,很适合跟数据库交互。

    2.MySQL 中的日期和时间类型

    日期和时间类型 字节 最小值 最大值
    DATE 4 1000-01-01 9999-12-31
    DATETIME 8 1000-01-01 00:00:00 9999-12-31 23:59:59
    TIMESTAMP 4 19700101080001 2038 年的某个时刻
    TIME 3 -838:59:59 838:59:59
    YEAR 1 1901 2155

    3.java中类与mysql中类型的匹配

    java类型 mysql类型
    timestamp  datetime
    timestamp  timestamp
    timestamp  date 保留日期部分
    timestamp  time 保留时间部分
    date date
    time time

    4.mysql中datetime与timestamp的区别

    a)DATETIME的默认值为null,5.6版本之后,也能用CURRENT_TIMESTAMP;TIMESTAMP的字段默认不为空(not null),默认值为当前时间(CURRENT_TIMESTAMP),如果不做特殊处理,并且update语句中没有指定该列的更新值,则默认更新为当前时间。

    b)DATETIME使用8字节的存储空间,TIMESTAMP的存储空间为4字节。因此,TIMESTAMP比DATETIME的空间利用率更高。

    c)两者的存储方式不一样 ,对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。而对于DATETIME,不做任何改变,基本上是原样输入和输出。

    d)两者所能存储的时间范围不一样:

    timestamp所能存储的时间范围为:’1970-01-01 00:00:01.000000’ 到 ‘2038-01-19 03:14:07.999999’;

    datetime所能存储的时间范围为:’1000-01-01 00:00:00.000000’ 到 ‘9999-12-31 23:59:59.999999’。

    所以,如果要适用广泛的,建议适用DATETIME。


    参考:https://www.jianshu.com/p/937656cb269b

          https://blog.csdn.net/z3278221/article/details/81000876

  • 相关阅读:
    ffmpeg——压缩mav格式音频
    java控制台编译通过,运行出现找不到或无法加载主类的情况
    “Hello World!”团队——Final发布用户使用报告
    PSP总结报告
    软工第十二周个人PSP
    “Hello World!”团队第七周召开的第一次会议
    个人第十一周PSP
    互评Beta版本—博客园安卓APP
    sqlalchemy 学习笔记
    sqlite学习笔记
  • 原文地址:https://www.cnblogs.com/xkzhangsanx/p/12037616.html
Copyright © 2020-2023  润新知