0

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

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

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

我无法更改字段类型等。

4

6 回答 6

1
SELECT CONVERT(DATE,CONVERT(DATEtime,'01/06/2012',103))

更多示例请点击这里

于 2012-07-16T09:13:30.893 回答
0
update [YourDB].[dbo].[YourTable]
set [YourColumn] =  convert(nvarchar(10), convert(datetime,[YourColumn]), 126)
于 2012-07-16T09:23:52.987 回答
0
select cast(cast('01/06/2012' as DATE) as varchar(10))
于 2012-07-16T09:06:33.303 回答
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 手册。

于 2012-07-16T09:07:36.580 回答
0
select convert(datetime,'01/06/2012',103)
于 2012-07-16T09:10:21.490 回答
-1

这是可行的答案,并且可以避免本地化问题:

select cast(cast(convert(DATETIME, '01/06/2012', 103) as DATE) as NVARCHAR(10))

您需要使用 103 作为格式,然后将其转换为日期(以切断时间),然后将其转换为 varchar。

于 2012-07-16T09:12:26.497 回答