如何获得每个月的第n个日期(如果为“星期日”),则下一年的下一个即时日期为n + 1。例如 :
Year=2014
nth value = 2(2nd of each month)
Date:
2014-01-02
2014-02-03 (since 02 is "Sunday" next Immediate date)
2014-03-03 (since 02 is "Sunday" next Immediate date)
2014-04-02
2014-05-02
2014-06-02
2014-07-02
and so on...
怎么样,在这里摆弄
可以使用介于'01'
和之间的日期值'28'
,我已经进行了参数检查并将其转换为OP。
DECLARE @Year = Char(4);
DECLARE @Day = VarChar(2);
SET @Year = '2014';
SET @Day = '2';
SELECT
CASE DATENAME(dw, [Date])
WHEN 'Sunday' THEN DATEADD(d, 1, [Date])
ELSE [Date]
END [Date]
FROM (
SELECT
CAST(@Year + '-' + [M] + '-' + @Day AS DATETIME) [Date]
FROM (
SELECT '1' [M] UNION ALL
SELECT '2' UNION ALL
SELECT '3' UNION ALL
SELECT '4' UNION ALL
SELECT '5' UNION ALL
SELECT '6' UNION ALL
SELECT '7' UNION ALL
SELECT '8' UNION ALL
SELECT '9' UNION ALL
SELECT '10' UNION ALL
SELECT '11' UNION ALL
SELECT '12') [Months]) [RawDays];
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句