【发布时间】:2020-01-03 20:30:20
【问题描述】:
我有一个 azure 函数,可以在每个月的 1 号到 3 号之间运行和执行命令。我有一列'datecolumn',它随着每行受到影响的时间而更新。
所有行都有从每个月的 1 号到 3 号的日期列,我想检查这个日期是否小于 当前月份 的 1 号到 3 号,以确保每一行只受到影响每个月一次。
假设现在是 2020 年 1 月 3 日,我希望查询查看并浏览所有行并忽略本月已更改的行,即 datecolumn 显示 2020 年 1 月 1 日或 2 日,并且只选择那些已更改的行并且具有上个月某个时间(2019 年 12 月)的 datecolumn 值。
预期结果:日期为当月 1 日至 3 日。
我尝试了一些代码,但我得到了正确的日子,但它每年都会选择。
谢谢
DECLARE @startDate DATETIME=CAST(MONTH(GETDATE()) AS VARCHAR) + '/' + '1/' + + CAST(YEAR(GETDATE()) AS VARCHAR) -- mm/dd/yyyy
DECLARE @endDate DATETIME=CAST(MONTH(GETDATE()) AS VARCHAR) + '/' + '3/' + + CAST(YEAR(GETDATE()) AS VARCHAR) -- mm/dd/yyyy
;WITH Calender AS
(
SELECT @startDate AS CalanderDate
UNION ALL
SELECT CalanderDate + 1 FROM Calender
WHERE CalanderDate + 1 <= @endDate
)
SELECT * FROM thetable where datecolumn BETWEEN @startDate AND @endDate
【问题讨论】:
标签: sql sql-server azure-functions