查询以查找当前日期的最后 4 个星期二

问题描述

我正在处理双报告。 所以我有一张桌子

occupancy ID | rent amount | Date of payment

租金在每周的每周二支付。我需要一个 sql 查询来查找当前日期的最后 4 个星期二。随着当前日期的继续,它需要是动态的,它需要自动获取前 4 个星期二

解决方法

我猜,您正在寻找日期时间函数的正确语法。 这里是周数、月份等的示例以及如何使用它。 希望它可以帮助您查询。

DECLARE @today         DATETIME = GETDATE()
DECLARE @todayDayName        VARCHAR(10) = DATENAME(WEEKDAY,@today),@todayShortDay       VARCHAR(10) = CONVERT(VARCHAR(10),@today,103),@todayDATE           DATE        = CAST(@today AS DATE),@todayDayNumber      INT         = DATEPART(DAY,@todayWeekNumberYear INT         = DATEPART(wk,@todayWeekNumber     INT         = DATEDIFF(WEEK,DATEADD(MONTH,DATEDIFF(MONTH,0),@today) +1,@month               INT         = MONTH(@today)
select 
    @today as DayNow,@todayDayName [TodayDayName],@todayShortDay [TodayShortDay],@todayDATE todayDATE,@todayDayNumber [TodayDayNumber],@todayWeekNumberYear TodayWeekNumberYear,@todayWeekNumber TodayWeekNumber,@month [month]


select top 100 
    UpdateDate,[date] = CAST(UpdateDate AS DATE),[DateName] = DATENAME(WEEKDAY,UpdateDate),WeekNumber = DATEDIFF(WEEK,UpdateDate) +1,monthnumber = MONTH(UpdateDate)
from [dbo].TABLE 
where DATENAME(WEEKDAY,UpdateDate) = 'Tuesday'

enter image description here