[英]Date comparison in where clause of sql stored procedure
請任何人告訴我如何在sql存儲過程的where子句中進行日期比較。
我為用戶提供了一個文本框過濾器,用戶可以在其中輸入任何格式的日期(例如13/09 / 2013、13092013、13-Sep-2013、130913)。 數據庫表具有要將此過濾器應用於的datetime類型列。
在這里我有3個問題
一個代碼示例將不勝感激。
親切的問候
回答:
(1)。 您應強制用戶輸入“某些格式”。 如果您不知道輸入格式,怎么知道是12-11-2013
11月12日還是12月11日? 這只是一個例子。
如果您知道用戶輸入的格式,則可以將其轉換為代碼中的日期,也可以將其作為ISO FORMAT( yyyymmdd
)中的字符串傳遞給存儲過程。
第一種方法會更好,因為如果用戶輸入的日期無效,則可以停止調用存儲過程。
(2)。 您后面的代碼將用戶輸入作為字符串接收。 因此,您可以在like后面的代碼中對其進行檢查;
bool isNull = string.IsNullOrWhiteSpace(userEnteredDate);
(3)。 在您的存儲過程中
--Rest of the query
WHERE Convert(date, yourdateColumn) = @yourDateParameter
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.