0
我在SQL Server中有一个存储日期的表格,以及它们是否为工作日,包括公共假期。检查varchar输入是否有效日期
Date_Id Date_Date Date_JDE Is_WorkingDay
20141223 2014-12-23 114357 1
20141224 2014-12-24 114358 1
20141225 2014-12-25 114359 0
20141226 2014-12-26 114360 0
20141227 2014-12-27 114361 0
20141228 2014-12-28 114362 0
20141229 2014-12-29 114363 1
我创建了一个存储过程,通过该表去,发现日期,如果日期为非工作日就找到下即是。
DECLARE @TargetDate Date = '2014-12-29'
IF (@TargetDate IS NOT NULL)
BEGIN
SELECT TOP 1 *
FROM dbo.Dates
WHERE Date_Date >= @TargetDate
AND Date_Date <= (SELECT MIN(Date_Date)
FROM dbo.Dates
WHERE Is_WorkingDay != 0 AND Date_Date >= @TargetDate)
ORDER BY Date_Date DESC
END
ELSE
BEGIN
RAISERROR ('(TargetDate is required) is required ',10,1);
RETURN
END
我如何可以验证该日期是有效的,因此,例如它是正确的格式,是真正的约会?
你认为“选择行然后迭代,直到满足条件”是恰当地描述你的要求,这实际上似乎是:“如何检查一个varchar是否是一个有效的日期时间”? – 2014-09-25 13:37:07
@TimSchmelter道歉,更改问题标题。 – user667430 2014-09-25 13:38:41
您不能相信dbo.Dates中的日期有效吗?你不拥有那张桌子?你能建立一个你拥有并相信的吗? – 2014-09-25 13:40:04