我使用SQL Server 2014和我一直在试图将此转换:MM/DD/YY TO DATE
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)
有什么建议吗?
我使用SQL Server 2014和我一直在试图将此转换:MM/DD/YY TO DATE
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)
有什么建议吗?
答案是:
try_convert(date,SRD.ReceiveDate,1)
你引用的不匹配输入格式号,这里是相关数值和日期格式:
1 - mm/dd/yy
101 - mm/dd/yyyy
103 - dd/mm/yyyy
不打算回答,但是,摹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
返回
不错,这是我的工具箱。 – jac
与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
与输出:
这个数据从哪里开始?一个varchar字段? – arcee123