首页 > 解决方案 > 如何每月自动更新日期字段

问题描述

我在表格中有一个日期字段,需要在上一个日期过去后自动移至下个月,并且需要考虑不同的月份长度以及年份变化时,例如该字段是否具有以下日期。

02/01/2019 would need moved onto 02/02/2019
28/02/2019 would need moved onto 28/03/2019
29/06/2019 would need moved onto 29/07/2019
28/12/2019 would need moved onto 28/01/2020

这需要自动化的原因是我们可以有成千上万的客户需要更改此日期字段并且不可能手动执行。

这可以做到吗?如果可以,怎么做?

标签: sqlsql-serverdate

解决方案


希望代码会有所帮助。@GordonLinoff 的评论是解决方案。该代码是从 Microsoft Server 生成的。

SELECT Your_Column, ' would need moved onto ' AS Your_Message_Column, DATEADD(month, 1, Your_Column) AS UpdatedDate_Column
FROM Test_Db.dbo.Sheet1$

查找附件的输入和输出示例。

2019-01-02 00:00:00.000  would need moved onto  2019-02-02 00:00:00.000
2019-02-28 00:00:00.000  would need moved onto  2019-03-28 00:00:00.000
2019-06-29 00:00:00.000  would need moved onto  2019-07-29 00:00:00.000
2019-12-28 00:00:00.000  would need moved onto  2020-01-28 00:00:00.000
2019-01-31 00:00:00.000  would need moved onto  2019-02-28 00:00:00.000
2019-03-31 00:00:00.000  would need moved onto  2019-04-30 00:00:00.000

对于重复查询的问题,可以比较评论中提到的日期。应该注意的是,方程式将省略较晚的日期。

SELECT
    CASE WHEN Your_Column = CONVERT(DATETIME, CONVERT(DATE, GETDATE()), 120) THEN DATEADD(month, 1, Your_Column)
    ELSE Your_Column
    END
FROM Test_Db.dbo.Sheet1$

推荐阅读