我想转换一个像这样的字符串:

'10/15/2008 10:06:32 PM'

转换为Sql Server中的DATETIME值。

在甲骨文,我会这样说:

TO_DATE('10/15/2008 10:06:32 PM','MM/DD/YYYY HH:MI:SS AM')

这个问题意味着我必须将字符串解析为一种标准格式,然后使用其中一种代码进行转换。对于这样一个平凡的行动来说,这似乎很荒谬。有没有更简单的方法?


当前回答

您可以通过使用这段代码轻松实现这一点。

SELECT Convert(datetime, Convert(varchar(30),'10/15/2008 10:06:32 PM',102),102)

其他回答

试试这个

Cast('7/7/2011' as datetime)

and

Convert(DATETIME, '7/7/2011', 101)

有关详细信息,请参阅CAST和CONVERT (Transact-SQL)。

用这个:

SELECT convert(datetime, '2018-10-25 20:44:11.500', 121) -- yyyy-mm-dd hh:mm:ss.mmm

转换代码请参考官方文档中的表格。

dateadd(day,0,'10/15/2008 10:06:32 PM')

在MSSQL中隐式转换字符串到日期时间

create table tmp 
(
  ENTRYDATETIME datetime
);

insert into tmp (ENTRYDATETIME) values (getdate());
insert into tmp (ENTRYDATETIME) values ('20190101');  --convert string 'yyyymmdd' to datetime


select * from tmp where ENTRYDATETIME > '20190925'  --yyyymmdd 
select * from tmp where ENTRYDATETIME > '20190925 12:11:09.555'--yyyymmdd HH:MIN:SS:MS



您可以通过使用这段代码轻松实现这一点。

SELECT Convert(datetime, Convert(varchar(30),'10/15/2008 10:06:32 PM',102),102)