我有一个字段ADATE,它是一个varchar(8),它的格式如下:yyyymmdd(20080402)
我想让它看起来像: 2008年4月2日
我尝试了以下内容:
select convert(varchar(8),adate,101) from myTable
where
AYEAR= ISNULL('2008', ayear)
and active = 'y'
但结果仍然是:
20080402
如果我将convert语句更改为:
convert(date,adate,101)
我总是得到:
2008-04-02
无论我将格式数字更改为。
我错过了什么?
答案 0 :(得分:2)
您需要先convert
aDate
到datetime
,然后才能将其转换为您想要的格式:
select convert(varchar(10), cast(adate as datetime), 101)
from myTable
where AYEAR= ISNULL('2008', ayear)
and active = 'y'
或:
select convert(varchar(10), convert(datetime, adate), 101)
from myTable
where AYEAR= ISNULL('2008', ayear)
and active = 'y'
答案 1 :(得分:1)
第一次,您将字符串格式化为日期,第二次,您将日期格式化为字符串,因此将它们合并:
select convert(varchar(10), convert(date, adate), 101)