sql - 如何每月自动更新日期字段
问题描述
我在表格中有一个日期字段,需要在上一个日期过去后自动移至下个月,并且需要考虑不同的月份长度以及年份变化时,例如该字段是否具有以下日期。
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
这需要自动化的原因是我们可以有成千上万的客户需要更改此日期字段并且不可能手动执行。
这可以做到吗?如果可以,怎么做?
解决方案
希望代码会有所帮助。@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$
推荐阅读
- firebase - Flutter中如何验证用户输入数据是否存在于Firestore文档中?
- apache-spark - 如何从 spark sql databricks 中的临时视图或等效视图中删除?
- animation - 如何使用 ArcHandles 和 Handles 旋转/移动包含 Motor6D 的对象?
- python - 为什么我在 Python3 中收到此错误:IndexError: list index out of range
- javascript - 更改 element.style.display ="none" 后如何保持相同的 d-grid 间隙
- algorithm - 区分负循环中的节点和负循环可达的节点
- .net-core - ProjectTo Jsonb 列类型 EF Core 和 automapper 配置
- php - 如何使用 Laravel 将选定的值传递给创建表单?
- go - 什么时候使用嵌入?
- c++ - V8 - 向 Javascript 代码公开一个非 void C++ 函数