如何从 MS SQL 表中具有 MM/DD/YYYY 日期的单个列中减去

Posted

技术标签:

【中文标题】如何从 MS SQL 表中具有 MM/DD/YYYY 日期的单个列中减去【英文标题】:How to subtract from a single column in the MS SQL table which has dates in the MM/DD/YYYY 【发布时间】:2020-05-18 17:05:02 【问题描述】:

我的 MS SQL 表中有一个名为 Effective_Date 的列。在 Effective_date 列中,我们有 MM/DD/YYYY 格式的日期

现在我想从 Effective_Date 列中的日期中减去 6 天。

例如,我在生效日期列中有一个日期为 2020 年 5 月 22 日,我想将 2020 年 5 月 22 日的 6 个日期删除为 2020 年 5 月 16 日。

这应该适用于表格的 Effective_date 列中的所有日期。

【问题讨论】:

effective_date的数据类型是什么? 请在此处添加示例数据,显示删除查询后的输入和输出。 【参考方案1】:

我了解到您需要 update 查询,其中每行应从 effective_date 中减去 6 天。

如果effective_date 是类似date 的数据类型,您可以这样做:

update mytable 
set effective_date = dateadd(day, -6, effective_date);

如果是字符串,则需要先将cast 转换为date,进行日期运算,然后将其格式化回字符串:

update mytable 
set effective_date = format(dateadd(day, -6, cast(effective_date as date)), 'MM/dd/yyyy');

【讨论】:

您在此解决方案中交换 DD/MM 订单!!

以上是关于如何从 MS SQL 表中具有 MM/DD/YYYY 日期的单个列中减去的主要内容,如果未能解决你的问题,请参考以下文章

如何从MS SQL Server 2012中的不同表中减去连续的行?

如何使用sql从具有不同列的两个表中获取不同的记录

Android - 显示不同日期格式的月份名称

如何从具有字典列表的表中查询,仅针对某些键 (BigQuery) SQL

如何将 Update 语句添加到我将要插入到带有 MS SQL 查询的表中的选定行中?

如何从 sql server 2008 中具有不同 TaskIds 的表中查找日期?