我有一个名为 dbo.reminder 的表,因为我有一个列名 rdate 我已声明为
NVARCHAR(50)
我想使用当前日期的条件对表格进行排序我该怎么做?
我试过这个查询
SELECT rdetail,
rid,
rdate = CONVERT(VARCHAR, CONVERT(DATETIME, rdate, 103), 103)
FROM dbo.reminder
where rdate='23/01/2017'
但它没有排序请帮我解决这个问题?
答案 0 :(得分:1)
请勿将日期存储为NVARCHAR
。将您的rate
数据类型更改为日期并尝试此方式
SELECT rdetail,rid,rdate
FROM dbo.reminder
where rdate = convert(date,'23/01/2017' ,103)
将varchar
日期输入转换为date
,然后查看您的rate
列。
最好以YYYYMMDD
或YYYY-MM-DD
格式传递输入,这种格式是通用的,不需要任何转换
如果您无法更改数据类型,那么
SELECT rdetail,rid,rdate
FROM dbo.reminder
where convert(date,rdate,103) = convert(date,'23/01/2017' ,103)