我有一个数据类型为'nvarchar(50)'的日期列,它在原始表格中显示为'01 / 08/2012','02/08/2012'等
但我希望它在查询或存储过程中显示为'20120801','20120802',存储过程中的参数也应该能够作为'20120801','20120802'
我尝试了下面的代码,但它似乎不起作用。
Create procedure testprocedure
@startdate nvarchar(8), @enddate nvarchar(8)
As
Begin
select convert(varchar(8),date,112) AS DATE, field1, field2 from tbltable
where date between @startdate and @enddate
End
Go
execute testprocedure @startdate = '20120801', @enddate = '20120805'
答案 0 :(得分:1)
问题是:date是nvarchar你应该将它转换为Date然后将其转换为其他格式。
select convert(varchar(8),CAST(tdate as Date),112) AS DATE, field1, field2 from tbltable
tdate是tbltable.tdate。
它有效。