在sql中查找日期

时间:2011-04-27 11:31:12

标签: sql-server

我需要一个查询来查找基于年,月,星期几和工作日数的日期。比如说,如果问题是找到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

1 个答案:

答案 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个或更多列,具体取决于您认为对查询有用的值。