Sql 将包含各种格式的varchar转换为DATETIME
我创建了一个varchar类型的记录列,其中包含多个以两种不同方式格式化的值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
- 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;