我的数据中有一列充满了'日期'格式为030816
并且数据类型为Varchar。我整个上午都在尝试将此号码转换为03/08/2016
的日期格式。我似乎没有做任何事情给我预期的结果。以下是我尝试过的内容:
03/08/2016
的日期最后会显示2003-08-16
。Convert(Varchar(10),Bill_Date,103)
,但这没有导致任何更改,并继续将结果显示为030816
Cast(Bill_Date AS Date)
,但这也为我提供了2003-08-16
的结果,这也是正确的日期。Format(Bill_Date,'MM/DD/YYYY')
,但这给了我一条错误消息,声称Argument数据类型Varchar对于参数无效。有没有办法让SQL将这个数字字符串转换为我需要的日期格式,或者至少有一种方法可以在select查询中显示数字字符串,它将为我提供我需要的格式?
答案 0 :(得分:1)
'.20'
如果您的某些日期早于2000-01-01,则需要对特定数据集进行数学运算,以将'19'
替换为{{1}}。
答案 1 :(得分:-1)
您需要将值转换为日期,而不是日期:
select Convert(date, Bill_Date, 3)
适当的格式似乎是" 3"。
如果之后需要字符串,可以使用101将其转换回MM / DD / YYYY格式。
答案 2 :(得分:-1)
CREATE TABLE SampleData( DescSample VARCHAR(10) )
INSERT INTO SampleData 价值观('030816')
SELECT LEFT(DescSample,2)+'/'+ SUBSTRING(DescSample,3,2)+'/'+'20'+ RIGHT(DescSample,2)
FROM SampleData
- 只是你想要的格式 - 你应该使用适当的年份格式。 -_-