如何从 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中的不同表中减去连续的行?
如何从具有字典列表的表中查询,仅针对某些键 (BigQuery) SQL