可以请任何人告诉我如何在sql存储过程的where子句中进行日期比较。
我向用户提供了一个文本框过滤器,用户可以以任何格式输入日期(例如13/09 / 2013,13092013,13-Sep-2013,130913)。数据库表具有日期时间类型列,我想在其上应用此过滤器。
这里我有3个问题
我们非常感谢代码示例。
亲切的问候
答案 0 :(得分:2)
数目:
(1)。您应该强制用户输入某些格式。如果您不知道输入格式,您如何知道11月12日或12月11日12-11-2013
?这只是一个例子。
如果您知道用户输入格式,您可以将其转换为代码中的日期,或者将ISO FORMAT(yyyymmdd
)中的字符串作为字符串传递到存储过程中。
第一种方法会更好,就好像用户输入不是有效日期那么你可以停止调用存储过程。
(2)。您的代码后面的用户输入作为字符串。所以你可以在后面的代码中查看它;
bool isNull = string.IsNullOrWhiteSpace(userEnteredDate);
(3)。在您的存储过程中
--Rest of the query
WHERE Convert(date, yourdateColumn) = @yourDateParameter