我正在使用SQL Server 2014,我一直试图转换它:
ReceiveDate
07/01/15
07/02/15
进入这个:
ReceiveDate
2015-07-01
2015-07-02
我尝试过:
try_convert(date,SRD.ReceiveDate,103)
try_convert(date,SRD.ReceiveDate,101)
任何建议?
答案 0 :(得分:3)
试试这个:
select convert(varchar(10), SRD.ReceiveDate, 120)
答案 1 :(得分:1)
答案是:
try_convert(date,SRD.ReceiveDate,1)
您引用的格式编号与输入不匹配,以下是相关的数字值和日期格式:
1 - mm/dd/yy
101 - mm/dd/yyyy
103 - dd/mm/yyyy
答案 2 :(得分:0)
不打算作为答案,但是,关于Xedni的评论,这是我使用的一些东西:
------ Convert Dates
;with cte as (
Select Conv = N
,AsDateTime = try_convert(nvarchar(30),GetDate(),N)
,AsDate = try_convert(nvarchar(30),convert(date,GetDate()),N)
,AsTime = try_convert(nvarchar(30),convert(time,GetDate()),N)
From (Select Top 200 N=Row_Number() Over (Order By (Select NULL)) From master..spt_values ) N
)
Select *
From cte
Where AsDateTime is not null
or AsDate is not null
or AsTime is not null
<强>返回强>
答案 3 :(得分:0)
同意mjsqu的答案。
除此之外,对于更多date-format
个选项以及处理可能的输入格式问题(如果输入是varchar),您还可以尝试以下方法:
DECLARE @dateValue VARCHAR(20)='07/01/15'
SELECT TRY_CONVERT( DATE, @dateValue, 1) DateValueConvert;
SELECT TRY_PARSE(@dateValue AS DATE USING 'en-us') DateValueUS
SELECT TRY_PARSE(@dateValue AS DATE USING 'en-gb') DateValueGB
带输出: