我有一个表table_a
,其列为field_b
,格式为字符串。
在那个领域,他们被写成例如01/06/2012
。
我需要将其更改为2012-06-01
我无法更改字段类型等。
答案 0 :(得分:1)
SELECT CONVERT(DATE,CONVERT(DATEtime,'01/06/2012',103))
有关更多示例Click here
答案 1 :(得分:0)
select cast(cast('01/06/2012' as DATE) as varchar(10))
答案 2 :(得分:0)
大多数SQL引擎都有substring()函数。与concat()一起使用以创建新字符串:
(伪代码)
update table_a set field_b=concat(substring(field_b, 6, 4), '-', substring(field_b, 3, 2), '-', substring(field_b, 0, 2))
有关详细信息,请参阅SQL Server的手册。
答案 3 :(得分:0)
select convert(datetime,'01/06/2012',103)
答案 4 :(得分:0)
update [YourDB].[dbo].[YourTable]
set [YourColumn] = convert(nvarchar(10), convert(datetime,[YourColumn]), 126)
答案 5 :(得分:-1)
这是可行的,将避免本地化问题的答案:
select cast(cast(convert(DATETIME, '01/06/2012', 103) as DATE) as NVARCHAR(10))
您需要使用103作为格式,然后将其转换为日期(以切断时间),然后将其转换为varchar。