【问题标题】:Error while inserting date - Incorrect date value:插入日期时出错 - 日期值不正确:
【发布时间】:2012-07-25 00:20:37
【问题描述】:

我有一个名为today 的列,类型为DATE

当我尝试以 '07-25-2012' 格式添加日期时,我收到以下错误:

无法运行查询:日期值不正确:列的“07-25-2012”

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    由于MySql在日期类型列中接受y-m-d格式的日期,所以需要STR_TO_DATE函数将日期转换为yyyy-mm-dd格式插入,方法如下:

    INSERT INTO table_name(today) 
    VALUES(STR_TO_DATE('07-25-2012','%m-%d-%y'));  
    

    同理,如果你想选择除Mysql格式以外的其他格式的日期,你应该试试DATE_FORMAT函数

    SELECT DATE_FORMAT(today, '%m-%d-%y') from table_name; 
    

    【讨论】:

    【解决方案2】:

    这是date format

    DATE 类型用于具有日期部分但没有时间部分的值。 MySQL 以 'YYYY-MM-DD' 格式检索和显示 DATE 值。这 支持的范围是“1000-01-01”到“9999-12-31”。

    为什么 MySQL 格式为 '2012-07-25' 时要插入 '07-25-2012' 格式?实际上,如果 sql_modetraditional/strict mode 则会出现此错误,否则它只会输入 0000-00-00 并发出警告:1265 - Data truncated for column 'col1' at row 1

    【讨论】:

      【解决方案3】:

      在mysql中插入日期需要使用YYYY-MM-DD格式

      【讨论】:

        【解决方案4】:

        一般mysql使用这种日期格式'Y-m-d H:i:s'

        【讨论】:

        • 不,那是日期时间类型。对于日期类型,默认为 Y-m-d
        【解决方案5】:

        您可以在创建表时使用“DATE”作为数据类型。这样就可以避免上述错误。 例如:

        CREATE TABLE Employee (birth_date DATE);
        INSERT INTO Employee VALUES('1967-11-17');
        

        【讨论】:

          【解决方案6】:

          您需要将日期转换为 YYYY-MM-DD 以便使用默认配置将其作为 MySQL 日期插入。

          一种方法是STR_TO_DATE():

          insert into your_table (...)
          values (...,str_to_date('07-25-2012','%m-%d-%Y'),...);
          

          【讨论】:

            【解决方案7】:

            我对这个错误有不同的原因。我尝试在不使用引号的情况下插入日期,但收到一个奇怪的错误,告诉我我尝试插入 2003 年的日期。

            虽然我已经使用了 YYYY-MM-DD 格式,但我忘了在日期前后加上引号。即使它是日期而不是字符串,仍然需要引号。

            【讨论】:

              【解决方案8】:

              您可以使用此代码。它会正常工作的。

              INSERT INTO table_name(today)  
              VALUES(STR_TO_DATE('07-25-2012','%m-%d-%Y'));  
              

              实际上你不能直接将日期存储为字符串,你首先需要将字符串转换为正确格式的日期,我们使用STR_TO_DATE()函数,它需要两个参数,第一个是日期作为字符串,第二个是日期您传递第一个参数的格式。

              【讨论】:

                猜你喜欢
                • 2021-01-23
                • 1970-01-01
                • 2023-04-02
                • 2021-09-30
                • 2022-11-17
                • 2019-12-13
                • 1970-01-01
                • 2015-03-17
                • 1970-01-01
                相关资源
                最近更新 更多