Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 通过与getdate比较,显示我的表的expirydate列未过期的数据_Sql - Fatal编程技术网

Sql 通过与getdate比较,显示我的表的expirydate列未过期的数据

Sql 通过与getdate比较,显示我的表的expirydate列未过期的数据,sql,Sql,我有一个包含列expirydate的表,它是datetime列。我只想显示未过期的数据。 我尝试过 您的问题是什么?谢谢您的快速回复。请不要在ExpiryDate上使用函数,它可能不需要,并且会减慢查询速度。您还可以使用:dateadd(dd,datediff(day,0,getdate())、0来代替convert(date,getdate()),它还可以“截断”只留下日期的时间,但会返回一个datetime值。由于没有到期日期的示例数据,因此应该使用,但不确定。我相信它很容易使用转换,因为只

我有一个包含列
expirydate
的表,它是
datetime
列。我只想显示未过期的数据。 我尝试过


您的问题是什么?谢谢您的快速回复。请不要在ExpiryDate上使用函数,它可能不需要,并且会减慢查询速度。您还可以使用:dateadd(dd,datediff(day,0,getdate())、0来代替convert(date,getdate()),它还可以“截断”只留下日期的时间,但会返回一个datetime值。由于没有到期日期的示例数据,因此应该使用,但不确定。我相信它很容易使用转换,因为只有铸造,但dateadd和datediff将消耗更多的时间,因为你需要计算1900:01:01之间的日差,然后再次添加它们,这将给出过于复杂的当前日期。
SELECT AdId, CreatedId, 
CreatedName, AdEmail, 
PostName, AdTopic, 
[Description], SocietyId, 
SocietyName, SocietyUserId, 
SocietyUserName, SocietyUserEmailId, 
IsAccepted, IsRejected, 
IsActive, CreatedDate, 
ExpiryDate, City, 
[Type], Category
FROM dbo.tblClassifedDetails
WHERE IsAccepted='true' 
AND ExpiryDate<GETDATE() 
AND @Type=[Type] 
AND Category=case 
WHEN @Category  IS NULL
OR @Category='' 
OR @Category='All' 
THEN Category 
ELSE @Category 
END
AND City=case 
WHEN @City  IS NULL
OR @City='' 
OR @City='All' 
THEN City 
ELSE @City 
END
select AdId, CreatedId, CreatedName, AdEmail, PostName, AdTopic, 
       [Description], SocietyId, SocietyName, SocietyUserId, SocietyUserName, 
       SocietyUserEmailId, IsAccepted, IsRejected, IsActive, CreatedDate, 
       ExpiryDate, City, [Type], Category
from dbo.tblClassifedDetails
where IsAccepted='true' 
and convert(date,ExpiryDate)>=convert(date,GETDATE()) 
and @Type=[Type] 
and Category= (case when @Category  is null or @Category='' or @Category='All' 
                    then Category 
               else @Category end)
and City=(case when @City  is null or @City='' or @City='All' 
               then City 
          else @City end)