You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何为数据表中的日期列统一减去5天并完成表更新?

把日期列所有日期统一减5天的更新操作方案

没问题!我来给你梳理下不同主流数据库里怎么实现这个需求——把表中日期列的所有日期都改成早5天的日期,顺便也给你讲清楚具体的实现逻辑~

MySQL/MariaDB 实现方式

在MySQL里,有两种常用写法,效果完全一致:

-- 写法1:用DATE_SUB函数
UPDATE 你的表名
SET 日期列名 = DATE_SUB(日期列名, INTERVAL 5 DAY);

-- 写法2:直接用减号加INTERVAL语法
UPDATE 你的表名
SET 日期列名 = 日期列名 - INTERVAL 5 DAY;

PostgreSQL 实现方式

PostgreSQL里直接给日期列减去一个时间间隔即可,注意间隔的写法要加单引号:

UPDATE 你的表名
SET 日期列名 = 日期列名 - INTERVAL '5 days';

SQL Server 实现方式

SQL Server用DATEADD函数,第二个参数传负数就代表减去对应的天数:

UPDATE 你的表名
SET 日期列名 = DATEADD(day, -5, 日期列名);

Oracle 实现方式

Oracle处理日期非常直接,日期类型的值直接加减数字就代表天数,写法很简洁:

UPDATE 你的表名
SET 日期列名 = 日期列名 - 5;

重要提醒!

在执行UPDATE操作之前,一定要先验证结果是否正确,避免误改数据。你可以先跑一条SELECT语句预览转换后的日期:

-- 以PostgreSQL为例,其他数据库把日期运算部分换成对应语法即可
SELECT 日期列名, 日期列名 - INTERVAL '5 days' AS 调整后的日期
FROM 你的表名;

确认所有日期都正确减去5天后,再执行UPDATE。另外如果日期列有NULL值,这些操作不会改变NULL,因为任何和NULL的运算结果还是NULL

内容的提问来源于stack exchange,提问作者ArUn GuPta

火山引擎 最新活动