0

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

1 回答 1

1

问题是:日期是 nvarchar,您应该将其转换为 Date 然后将其转换为其他格式。

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

tdate 是 tbltable.tdate。

有用。

于 2012-08-18T07:31:33.583 回答