DATE_FORMAT无法在insert语句中使用

时间:2018-02-27 12:35:58

标签: mysql

我收到一些时间戳,格式为

  

2018-02-26T23:59:49Z

我想将此日期插入日期时间列。执行以下语句

SELECT DATE_FORMAT('2018-02-26T23:59:49Z', '%Y-%m-%d %H:%i:%s');

其中第二个参数是

的结果
select @@datetime_format;

但是,以下声明失败

    INSERT INTO
        my_db.my_table(
            my_datetime
        )
    VALUES
        (DATE_FORMAT('2018-02-26Т23:59:49Z', '%Y-%m-%d %H:%i:%s'))

错误

  

错误代码:1292。截断的日期时间值不正确:   '2018-02-26T23:59:49Z'

DATE_FORMAT在这样的插入语句中不起作用吗?

2 个答案:

答案 0 :(得分:0)

也许使用str_to_date:

 INSERT INTO
        my_db.my_table(
            my_datetime
        )
    VALUES
        (STR_TO_DATE('2018-02-26 23:59:49Z', '%Y-%m-%d %H:%i:%s'));

或试试这个:

INSERT INTO
            my_db.my_table(
                my_datetime
            )
VALUES
  (STR_TO_DATE(substring_index('2018-02-26 23:59:49Z', 'Z', 1),
                                 '%Y-%m-%d %h.%i.%s'));

答案 1 :(得分:0)

检查一下 -

 set  @date1 = from_unixtime(unix_timestamp('2018-02-26 23:59:49Z'));
 INSERT INTO
            mytable(
                my_datetime
            )
        VALUES
            (@date1);