Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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转换为DATETIME_Sql_Sql Server_Datetime_Type Conversion - Fatal编程技术网

Sql 将包含各种格式的varchar转换为DATETIME

Sql 将包含各种格式的varchar转换为DATETIME,sql,sql-server,datetime,type-conversion,Sql,Sql Server,Datetime,Type Conversion,我创建了一个varchar类型的记录列,其中包含多个以两种不同方式格式化的值 2017-04-17 16:55:53.3840460 2015年9月18日晚上11:25 如何将此列转换为要与GETDATE进行比较的日期时间?如果您使用的是SQL Server,则可以在此处使用convert函数: SELECT CONVERT(datetime, LEFT('2017-04-17 16:55:53.3840460', 23), 121) AS date1, CONVERT(da

我创建了一个varchar类型的记录列,其中包含多个以两种不同方式格式化的值

  • 2017-04-17 16:55:53.3840460
  • 2015年9月18日晚上11:25

如何将此列转换为要与GETDATE进行比较的日期时间?

如果您使用的是SQL Server,则可以在此处使用
convert
函数:

SELECT
    CONVERT(datetime, LEFT('2017-04-17 16:55:53.3840460', 23), 121) AS date1,
    CONVERT(datetime, 'Sep 18 2015 11:25PM', 100) AS date2;
您的第一种时间戳似乎适用于掩码121,而第二种时间戳适用于掩码100。下面的演示链接显示转换正在工作

GETDATE()
是特定于SQL Server的

但是,如果字符串日期与您提供的格式完全相同,则您只需执行以下操作:

select cast(cast(col as datetime2) as datetime)
from table t;
您使用的是哪种数据库管理系统?(说到日期/时间,许多产品远远不符合ANSI SQL。GETDATE是一个特定于产品的函数。)标记您正在使用的DBMS(即
MySQL
SQL Server
等)。
select cast(cast(col as datetime2) as datetime)
from table t;