函数 str_to_date 的日期时间值不正确:“ ”

问题描述 投票:0回答:1

在 MySQL 5.7 中,我有一个 varchar 列,其中包含一个字符串日期时间,如下所示:

`2024-09-03 02:00:07`

我可以运行此查询:

select date_format(str_to_date(`column1`, '%Y-%m-%d %H:%i:%s'), '%m/%d/%Y')  from table;

这会以如下格式返回第 1 列日期:

09/03/2024

但是,当我运行此更新查询时:

update table set `column1` = date_format(str_to_date(`column1`, '%Y-%m-%d %H:%i:%s'), '%m/%d/%Y');

我收到以下错误:

Incorrect datetime value: '' for function str_to_date

列中存在一些空值。 我将表的结构更新为列上的

DEFAULT: NULL
,并选中了 Null 复选框:

enter image description here

我该如何解决这个问题,以便它能够相应更新?

mysql datetime mysql-5.7 str-to-date
1个回答
0
投票

在调用转换函数之前检查是否有空白值。

update table set `column1` = 
    CASE column1
        WHEN '' THEN NULL 
        ELSE date_format(str_to_date(`column1`, '%Y-%m-%d %H:%i:%s'), '%m/%d/%Y')
    END;
© www.soinside.com 2019 - 2024. All rights reserved.