如何使用where语句比较日期?

时间:2017-01-23 10:37:17

标签: sql-server

我有一个名为 dbo.reminder 的表,因为我有一个列名 rdate 我已声明为

  

NVARCHAR(50)

我想使用当前日期的条件对表格进行排序我该怎么做?

我试过这个查询

SELECT rdetail,
       rid,
       rdate = CONVERT(VARCHAR, CONVERT(DATETIME, rdate, 103), 103)
FROM   dbo.reminder  
where  rdate='23/01/2017'

但它没有排序请帮我解决这个问题?

1 个答案:

答案 0 :(得分:1)

请勿将日期存储为NVARCHAR。将您的rate数据类型更改为日期并尝试此方式

SELECT rdetail,rid,rdate 
FROM dbo.reminder  
where rdate = convert(date,'23/01/2017' ,103)

varchar日期输入转换为date,然后查看您的rate列。

最好以YYYYMMDDYYYY-MM-DD格式传递输入,这种格式是通用的,不需要任何转换

如果您无法更改数据类型,那么

SELECT rdetail,rid,rdate 
FROM dbo.reminder  
where convert(date,rdate,103) = convert(date,'23/01/2017' ,103)