如果select语句为空,则夏令时返回1,否则返回2

时间:2014-07-18 08:24:56

标签: sql sql-server datetime

我正在研究日光偏移功能,并希望听到您对如何解决此问题的意见。假设我创建了一个包含以下代码的存储过程(输入是当前时间@time):

SELECT*
from
dbo.DaylightSavings
WHERE @time between Timestart AND Timeend

现在,如果上面的SELECT语句返回表视图,那么dayligt节省应该为ON,因此存储过程应返回+2的偏移量。否则,如果上方的SELECT语句不返回表格视图,那么日光照明应为OFF,而存储过程将返回+1。我如何制作一个合理的存储过程来处理这个逻辑?

谢谢!

系统:

MS SQL 2008R2

1 个答案:

答案 0 :(得分:0)

这应该做你想要的(假设'偏移'是几小时):

DECLARE @Count INT
SET @Count = (  SELECT COUNT(*)
                FROM
                dbo.DaylightSavings
                WHERE @time between Timestart AND Timeend)

IF @Count > 0   
    SELECT DATEADD(HH, 2, @time)
ELSE IF @Count = 0
    SELECT DATEADD(HH, 1, @time)