SQL如何从例如更改字符串。 01/06/2012至2012-06-01

时间:2012-07-16 09:01:31

标签: sql string

我有一个表table_a,其列为field_b,格式为字符串。

在那个领域,他们被写成例如01/06/2012

我需要将其更改为2012-06-01

我无法更改字段类型等。

6 个答案:

答案 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。