You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL中按条件修正datetime类型delivery_date列的正确方法

正确的SQL实现方案

你的原查询问题在于CASE表达式的写法错误——CASE需要返回具体的字段值,而不是使用=进行赋值操作。以下是两种符合需求的实现方案:

方案1:查询时修正显示值(不修改原表数据)

如果只是需要在查询结果中修正delivery_date的值,而不改动原表数据,可以使用以下SQL:

SELECT 
    id,
    order_date,
    CASE 
        WHEN delivery_date < order_date THEN order_date
        ELSE delivery_date
    END AS delivery_date
FROM your_table_name; -- 替换成你的实际表名

方案2:直接更新原表数据

如果需要永久修正原表中的错误数据,使用UPDATE语句:

UPDATE your_table_name
SET delivery_date = order_date
WHERE delivery_date < order_date; -- 只更新delivery_date早于order_date的行

执行后的查询结果(对应方案1)

idorder_datedelivery_date
12023-01-232023-01-26
22023-05-212023-05-29
32023-06-032023-06-03
42023-07-042023-07-20
52023-08-212023-08-21

内容的提问来源于stack exchange,提问作者Victor Barreto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 09:52:46