SQL 服务器将 Varchar 转换为日期时间 SQL 服务器
SQL Server Convert Varchar to Datetime SQL server
我有这个日期格式:2011-Aug-28 18:01:00(在 varchar 中),我想将它转换为日期时间更改为这种格式 '2011-08-28 18:01:00' .有人可以帮我在 SQL 服务器中转换这个吗?
提前致谢。
例子
Declare @YourTable Table ([YourTextCol] ntext)
Insert Into @YourTable Values
('21-AUG-2019 09-57-46')
,('2011-Aug-28 18:01:00')
Select *
,NewValue = IsNull(try_convert(datetime,convert(varchar(max),[YourTextCol]))
,try_convert(datetime,left(convert(varchar(max),[YourTextCol]),12)+replace(substring(convert(varchar(max),[YourTextCol]),12,8),'-',':'))
)
From @YourTable
Returns
YourTextCol NewValue
21-AUG-2019 09-57-46 2019-08-21 09:57:46.000
2011-Aug-28 18:01:00 2011-08-28 18:01:00.000
具有交叉应用且转化次数较少的选项
Select A.*
,NewValue = IsNull(try_convert(datetime,v)
,try_convert(datetime,left(v,12)+replace(substring(v,12,8),'-',':'))
)
From @YourTable A
Cross Apply ( values (convert(varchar(max),[YourTextCol])) ) B(v)
我有这个日期格式:2011-Aug-28 18:01:00(在 varchar 中),我想将它转换为日期时间更改为这种格式 '2011-08-28 18:01:00' .有人可以帮我在 SQL 服务器中转换这个吗?
提前致谢。
例子
Declare @YourTable Table ([YourTextCol] ntext)
Insert Into @YourTable Values
('21-AUG-2019 09-57-46')
,('2011-Aug-28 18:01:00')
Select *
,NewValue = IsNull(try_convert(datetime,convert(varchar(max),[YourTextCol]))
,try_convert(datetime,left(convert(varchar(max),[YourTextCol]),12)+replace(substring(convert(varchar(max),[YourTextCol]),12,8),'-',':'))
)
From @YourTable
Returns
YourTextCol NewValue
21-AUG-2019 09-57-46 2019-08-21 09:57:46.000
2011-Aug-28 18:01:00 2011-08-28 18:01:00.000
具有交叉应用且转化次数较少的选项
Select A.*
,NewValue = IsNull(try_convert(datetime,v)
,try_convert(datetime,left(v,12)+replace(substring(v,12,8),'-',':'))
)
From @YourTable A
Cross Apply ( values (convert(varchar(max),[YourTextCol])) ) B(v)