Sql server SQL Server中的字符串日期格式问题
在SQL Server中,我使用Imprt平面文件选项导入了csv。该文件包含转换为nvarchar(50)数据类型的字符串列。 csv包含日期值。 我需要将包含日期列的数据(格式为12/16/2020 19:09:58)加载到2020-12-16 19:09:58.000。 我尝试使用下面的方法使用转换Sql server SQL Server中的字符串日期格式问题,sql-server,Sql Server,在SQL Server中,我使用Imprt平面文件选项导入了csv。该文件包含转换为nvarchar(50)数据类型的字符串列。 csv包含日期值。 我需要将包含日期列的数据(格式为12/16/2020 19:09:58)加载到2020-12-16 19:09:58.000。 我尝试使用下面的方法使用转换 select convert(datetime, delta_val, 101) from dbo.my_table; 但是得到下面的错误 Conversion failed when co
select convert(datetime, delta_val, 101) from dbo.my_table;
但是得到下面的错误
Conversion failed when converting date and/or time from character string.
有没有办法解决这个问题?也尝试过使用cast和format方法。同样的问题依然存在。正如Honeybecger所建议的,使用try\u convert。现在工作
select try_convert(datetime, delta_val) from dbo.my_table;
选择convert(datetime,'12/16/2020 19:09:58',101)
没有问题,因此我建议您也使用不同的格式(或者完全非日期值)。您可以使用TRY\u CONVERT
找到它们。别忘了TRY\u CONVERT
会为无法转换的数据返回NULL
,因此您会丢失数据。ohh。。然后还需要检查这个问题。确切地说,您可以使用其中try_convert(datetime,delta_val)为NULL,delta_val不为NULL