【发布时间】:2015-11-30 11:50:33
【问题描述】:
我正在附加一个查询以将日期带到字段中, 如果系统时间在下午 01:00 之前,那么它应该带今天日期+1,否则如果系统日期在或等于下午 01:00 之后,它应该带今天日期+2 此外,用户可以看到将显示日期范围和日期名称的查询结果,如果上述情况不是用户正在寻找的,则可以手动选择其中一个。
查询是可用的并且工作正常但分开, 一个查询带来日期范围,一个查询根据条件设置日期,我需要对它们进行一个查询,带来日期范围并根据条件设置默认日期; 以下是查询: 注意:Q No 2,我尝试将两个查询作为一个查询,但它没有带来正确的结果,无论系统时间是什么,它都会保持今天的日期+1。
1)
If DATEPART(Hour,Getdate())<12
SELECT GetDate()+1
If DATEPART(Hour,Getdate())>=12
SELECT GetDate()+2
2)
If DATEPART(Hour,Getdate())<12
DECLARE @Date1 DATE, @Date2 DATE
SET @Date1 = GetDate()+0
SET @Date2 = GetDate()+365
SELECT DATEADD(DAY,number+1,@Date1) [Date], DateName(Weekday,DATEADD(DAY,number+1,@Date1)) as dayname
FROM master..spt_values
WHERE type = 'P'
AND DATEADD(DAY,number+1,@Date1) < @Date2
If DATEPART(Hour,Getdate())>=12
DECLARE @Date3 DATE, @Date4 DATE
SET @Date3 = GetDate()+2
SET @Date4 = GetDate()+365
SELECT DATEADD(DAY,number+1,@Date3) [Date], DateName(Weekday,DATEADD(DAY,number+1,@Date3)) as dayname
FROM master..spt_values
WHERE type = 'P'
AND DATEADD(DAY,number+1,@Date3) < @Date4
【问题讨论】:
标签: sql sql-server tsql date