如何将带有varchar数据类型的日期列转换为另一种日期格式

时间:2012-08-18 07:14:21

标签: sql-server-2008

我有一个数据类型为'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'

1 个答案:

答案 0 :(得分:1)

问题是:date是nvarchar你应该将它转换为Date然后将其转换为其他格式。

select convert(varchar(8),CAST(tdate as Date),112) AS DATE, field1, field2 from tbltable

tdate是tbltable.tdate。

它有效。