mysql中的日期格式问题

  在Mysql中,关于日期的格式有三种类型:Data、Datatime、Timestamp

  Data Datatime Timestamp
存储数据格式 YYYY-MM-DD YYYY-MM-DD hh:mm:ss yyyymmddhhmmss
支持的范围 1000-01-01 到 9999-12-31

1000-01-01 00:00:00 到

9999-12-31 23:59:59

1770-01-01到2037年

 

特殊说明 允许使用字符串或者数字来赋值。例如,12331212和‘1233-12-12’的存储结果为:1233-12-12 允许使用字符串或者数字来赋值。例如,12331212121212和‘1233-12-12 12:12:12’的存储结果都为:1233-12-12 12:12:12 给该类型字段赋值时,值必须大于19700101000000,否则会抛异常。

 

 

 

 

 

 

 

 

 

 

注意:对于datatime类型:

  1、自动识别时间字符串:

    当写入其他时间字符串时,只有数据库识别成功才能够写入成功,且是想要的数据;如果识别不了的时间值,会显示为:‘000-00-00 00:00:00’

  2、查询时智能补全模式:

    假设要查询某天的全部数据,当在where条件后写入where dt = ‘2021-12-01’时,想要查出一天的数据时。若dt的类型是date时,则可以查出;若dt的类型是datetime时或者其他类型,则无法查出。因为在MySQL中,会对时间类型进行自动补零。上面的实际语句为where dt = ‘2021-12-01 00:00:00’。

    要想解决上面的问题有两种思路:

      1、在service层中对传进来的时间进行拼接(next_day + " (一定要在这个位置加一个空格)00:00:00")

      2、使用MySQL中的to_days(next_day)函数,使用between and

上一篇:PHP的curl造成性能瓶颈,如何优化?


下一篇:C++程序中嵌入Ruby脚本系统