我已經設置了一個SQL存儲過程,其中參數是可選的,因爲在前端中,這些過濾器的任何組合都可以具有值或不具有值。唯一的問題是當我傳遞一個空日期時SQL會產生一個錯誤,如果我留下這個空,但我已設法做一些解讀這個問題,並發現使用以下應該可以解決錯誤:SQL中的可選DateTime參數
SET @SessionStarted = ISNULL(@SessionStarted, GETDATE())
但是,它現在不返回它應該返回的記錄,因爲它只查找包含當前日期和時間的記錄。
的參數定義爲這樣:
@SessionStarted datetime = NULL,
而對於這個特定參數的where子句:
(@SessionStarted IS NULL OR VisitDate = @SessionStarted)
反正有圓這個問題,當爲一個值不能指定?
@SessionStarted是一個DATETIME。什麼數據類型是'VisitDate'?如果是DATETIME/DATETIME2/SMALLDATETIME,則該列中的值是「僅限日期」,時間部分已剝離? – DMason
VisitDate是一個DateTime字段,與參數 –
相同如果您使用「VisitDate」列查詢表,數據是什麼樣的?你看到像'2015-06-19 12:28:49.083'這樣的值嗎?或者看起來更像這個'2015-06-19 00:00:00.000'? – DMason