2016-10-28 3 views
1
@TimeCurr Char(1) 

SELECT RecordDate, a, b,c 
FROM tbl_xyz 
WHERE 1 = 1 
AND 

に基準を省略した場合SQL - @TimeCurr = 'Y' の場合であれば@TimeCurr = 'N' を RecordDate < =のGetDate()Paramでヌルは次いで RecordDate =のGetDate()</p> <p>WHERE句

if @TimeCurr = Null 次に、criteraを完全に省略します。どうすればこれを達成できますか?

+1

'(ISNULL OR CASE ... END)' –

+0

どのDBMSを使用していますか? –

答えて

1

このような何か:

GETDATE()の使用に基づいて
SELECT RecordDate, a, b,c 
FROM tbl_xyz 
WHERE 1 = 1 AND 
     ((@TimeCurr = 'Y' AND RecordDate = CAST(GetDate() as date)) OR 
     (@TimeCurr = 'N' AND RecordDate <= GetDate()) OR 
     @TimeCurr IS NULL 
    ); 

、私はSQL Serverを使用していることを推測しています。その場合、関数GETDATE()は日付/時刻値を返します。通常は=を使用したくないです。そのため、私はそれを日付に変換します。RecordDateは、実際には時間コンポーネントのない日付です。

関連する問題