zoukankan      html  css  js  c++  java
  • 关于Mysql datetime类型存储范围测试

    1. 创建一个datetime表

      > create table date_time(time datetime);
      > desc date_time;
      +-------+----------+------+-----+---------+-------+
      | Field | Type     | Null | Key | Default | Extra |
      +-------+----------+------+-----+---------+-------+
      | time  | datetime | YES  |     | NULL    |       |
      +-------+----------+------+-----+---------+-------+
      
    2. 输入"10000-10-10 00:00:00"进行测试

      > insert into date_time values("10000-10-10 00:00:00");
      ERROR 1292 (22007): Incorrect datetime value: '10000-10-10 00:00:00' for column 'time' at row 1 # 报错
      
    3. 输入”23-01-02 12:23:56"测试

      > insert into date_time values("23-01-02 12:23:56");
      > insert into date_time values("79-01-02 12:23:56");
      > select * from date_time;
      +---------------------+
      | time                |
      +---------------------+
      | 2023-01-02 12:23:56 |
      | 1979-01-02 12:23:56 |
      +---------------------+
      

      会和date一样,'00'-'69'会转换为2000-2069,'70'-'99'会转换为1970-1999

    4. 测试年份输入三位或者一位

      > insert into date_time values("179-01-02 12:23:56");
      > insert into date_time values("9-01-02 12:23:56");
      > select * from date_time;
      +---------------------+
      | time                |
      +---------------------+
      | 2023-01-02 12:23:56 |
      | 1979-01-02 12:23:56 |
      | 0179-01-02 12:23:56 |
      | 0009-01-02 12:23:56 |
      +---------------------+
      

      可以存储进去,但会自动在前面补足0,使年份变为4位

    5. 输入年份格式为”00YY“

      > insert into date_time values("0079-01-02 12:23:56");
      > select * from date_time;
      +---------------------+
      | time                |
      +---------------------+
      | 2023-01-02 12:23:56 |
      | 1979-01-02 12:23:56 |
      | 0179-01-02 12:23:56 |
      | 0009-01-02 12:23:56 |
      | 0079-01-02 12:23:56 |   # 可以存储
      +---------------------+
      
    6. 最后测试极限时间

      > insert into date_time values("0000-00-00 00:00:00");
      > insert into date_time values("9999-12-31 23:59:59");
      > select * from date_time;
      +---------------------+
      | time                |
      +---------------------+
      | 2023-01-02 12:23:56 |
      | 1979-01-02 12:23:56 |
      | 0179-01-02 12:23:56 |
      | 0009-01-02 12:23:56 |
      | 0079-01-02 12:23:56 |
      | 0000-00-00 00:00:00 |
      | 9999-12-31 23:59:59 |
      +---------------------+
      

    总结:

    1. datetime类型范围为”0000-00-00 00:00:00“~”9999-12-31 23:59:59“;
    2. 要存储年份为两位数的需要在前面补足”00“,不然会按照date类型进行转换('00'-'69'会转换为2000-2069,'70'-'99'会转换为1970-1999);
  • 相关阅读:
    手机游戏开发中如何选择适合的纹理格式
    站在巨具的肩膀上:使用现有工具搭建自己的工作流
    游戏引擎不仅是代码,更多的是完善的工具
    Android下/data/data/<package_name>/files读写权限
    Unity3D中灵活绘制进度条
    为什么X86汇编中的mov指令不支持内存到内存的寻址?
    【吐血推荐】简要分析unity3d中剪不断理还乱的yield
    解释型语言和编译型语言如何交互?以lua和c为例
    char,wchar_t,WCHAR,TCHAR,ACHAR的区别----LPCTSTR
    游戏关卡是酱紫加载的,你造吗?
  • 原文地址:https://www.cnblogs.com/Hades123/p/11172841.html
Copyright © 2011-2022 走看看