Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将varchar行转换或强制转换为日期时间,如(2018年7月18日星期一19:28:36 EDT)_Sql_Sql Server_Tsql_Datetime - Fatal编程技术网

Sql 将varchar行转换或强制转换为日期时间,如(2018年7月18日星期一19:28:36 EDT)

Sql 将varchar行转换或强制转换为日期时间,如(2018年7月18日星期一19:28:36 EDT),sql,sql-server,tsql,datetime,Sql,Sql Server,Tsql,Datetime,我有一个列varchar类型,日期如下: Fri Mar 3 12:55:17 EST 2017 Thu Jul 27 10:12:07 EDT 2017 Fri Jul 21 12:11:35 EDT 2017 Wed Jan 31 13:15:34 EST 2018 我想返回日期和时间,比如: 03/03/2017 12:55:17 07/27/2017 10:12:07 07/21/2017 12:11:35 01/31/2018 13:15:34 我用substring和conver

我有一个列varchar类型,日期如下:

Fri Mar 3 12:55:17 EST 2017
Thu Jul 27 10:12:07 EDT 2017
Fri Jul 21 12:11:35 EDT 2017
Wed Jan 31 13:15:34 EST 2018
我想返回日期和时间,比如:

03/03/2017 12:55:17
07/27/2017 10:12:07
07/21/2017 12:11:35
01/31/2018 13:15:34
我用substring和convert语句尝试了几种方法,但都不起作用


在这方面的任何帮助都将不胜感激。

也许是这样的

示例

Declare @YourTable table (SomeCol varchar(50))
Insert Into @YourTable values
('Fri Mar 3 12:55:17 EST 2017'),
('Thu Jul 27 10:12:07 EDT 2017'),
('Fri Jul 21 12:11:35 EDT 2017'),
('Wed Jan 31 13:15:34 EST 2018')

Select *
      ,AsDateTime = try_convert(datetime,substring(SomeCol,4,len(SomeCol)-11)+right(SomeCol,4))
 From  @YourTable
返回

SomeCol                         AsDateTime
Fri Mar 3 12:55:17 EST 2017     2017-03-03 12:55:17.000
Thu Jul 27 10:12:07 EDT 2017    2017-07-27 10:12:07.000
Fri Jul 21 12:11:35 EDT 2017    2017-07-21 12:11:35.000
Wed Jan 31 13:15:34 EST 2018    2018-01-31 13:15:34.000

美好的正在工作,有没有可能在没有.000的情况下返回?@JCACERES很乐意提供帮助。datetime数据类型的.000部分。如果要将其作为字符串,可以将表达式包装为format(),例如:format(try_convert(datetime,substring(SomeCol,4,len(SomeCol)-11)+right(SomeCol,4)),'yyyyy-MM-dd HH:MM:ss')非常好!!,非常感谢你。