我需要语言在SQL查询中设置一年。如果当前日期在10/1到12/31之间,我需要年份值为CurrentYear-5,如果当前日期在1/1和9/30之间,我需要年份值为CurrentYear-6 。这就是我要陈述的方式,但我知道这还不是SQL。 [END]是正在评估的日期字段,它包含完整日期(例如,dd / mm / yyyy)。
WHERE if CurrentDay BETWEEN 10/1 AND 12/31 Year([END]) = CurrentYear-5 else Year([END]) = CurrentYear-6 endif
答案 0 :(得分:0)
这可能有效
WHERE
YEAR([END]) =
CASE WHEN DATEPART(Q,CURRENT_TIMESTAMP) = 4
THEN YEAR(CURRENT_TIMESTAMP) - 5
ELSE YEAR(CURRENT_TIMESTAMP) - 6
END
答案 1 :(得分:0)
SELECT
CASE
WHEN getdate() < 12/31/year(getdate()) AND getdate() > 10/01/year(getdate())
THEN year(dateadd(year, -5, getdate()))
ELSE year(dateadd(year, -6, getdate()))
END
AS whatever
应该这样做。
答案 2 :(得分:0)
您可以使用DATEPART()
功能在Access中使用OR
而不是CASE
语句的两组条件执行此操作:
WHERE (DATEPART("yyyy",[END]) = DATEPART("yyyy",DATE())-5 AND DATEPART("q",DATE()) = 4)
OR (DATEPART("yyyy",[END]) = DATEPART("yyyy",DATE())-6 AND DATEPART("q",DATE()) <> 4)
这要求[END]
字段是5年前,而目前是第4季度,或者[END]
字段是6年前,而不是第4季度。