【发布时间】:2018-04-26 14:42:29
【问题描述】:
我有一个数据类型 = varchar(50) 的字段,我有几种不同的日期格式,如下所示:
2019-06-17
01/11/19
2019-08-21
08/04/13
10/03/17
11/22/08
2018-06-07
我在表中添加了一个新字段,数据类型 = 日期。如何将 varchar(50) 字段中的所有日期转换为日期字段中的实际日期?
我以为就这么简单:
update TBL_MULTI_LD_Balance_HIST
set [actual_date] = CONVERT(VARCHAR(10), Date, 110)
update TBL_MULTI_LD_Balance_HIST
set [actual_date] = CAST([Date] as Date)
但现在我收到此错误:'Msg 241, Level 16, State 1, Line 65 从字符串转换日期和/或时间时转换失败。'
【问题讨论】:
-
什么版本的 SQL Server?
-
列,而不是字段...
-
SQL Server 2008.
-
如果这些值都是不同的格式,你将如何转换
08/04/13? 4 月 8 日还是 8 月 4 日? -
除非您知道每个日期使用的确切格式,否则您不能简单地对它们应用批处理。有些会在某种格式下转换并在另一种格式下失败。首先将值标准化为众所周知的格式。
标签: sql sql-server sql-server-2008