@TimeCurr Char(1)
SELECT RecordDate, a, b,c
FROM tbl_xyz
WHERE 1 = 1
AND
如果@TimeCurr ='Y'那么 RecordDate = GetDate()
如果@TimeCurr ='N'则 RecordDate< = GetDate()
如果@TimeCurr = Null 然后完全省略critera。我们怎样才能做到这一点?
答案 0 :(得分:1)
这样的事情:
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
);
基于GETDATE()
的使用,我猜你正在使用SQL Server。如果是,则函数GETDATE()
返回日期/时间值。您通常不想使用=
。这就是为什么我将它转换为日期,假设RecordDate
实际上是一个没有时间组件的日期。