我需要一个查询来查找基于年,月,星期几和工作日数的日期。比如说,如果问题是找到2010年1月第2个星期日的日期,答案应该是'2010-01-10'。
输入
Yr | Mon | Dy | Dyno
-----------------------
2010 | Jan | Sun | 2
2005 | Jan | Mon | 3
1995 | Feb | Sun | 1
2000 | Feb | Wed | 4
1982 | Mar | Tue | 2
2010 | Mar | Tue | 8
Dyno陈述dayno
答案 0 :(得分:1)
SQL中许多与日期相关的问题的最简单答案是create a calendar table。在您的情况下,如果您创建一个包含您已经显示的列的表,以及一个具有您想要的DATETIME
值的额外值(称为BaseDate
),您可以获得所需的值使用简单的查询:
select BaseDate
from dbo.Calendar
where Yr = 2010 and Mon = 'Jan' and Dy = 'Sunday' and Dyno = 2
当然,您的日历表可以包含10个,20个或更多列,具体取决于您认为对查询有用的值。