2015-06-25 147 views
0

我有一张表,其中有nvarchar数据。在sql server中将nvarchar转换为smalldatetime

Table 
18-FEB-11 10.29.52.000000000 AM 
20-FEB-11 04.10.40.000000000 PM 
23-SEP-10 10.34.57.714000000 AM 
08-OCT-10 09.41.16.921000000 PM 

我想这个字段转换为小日期时间在SQL Server 2008 R2

我怎样才能将其转换。

Expected OUTPUT: 

2011-02-18 10:29:52 
2011-02-20 16:10:40 
2010-09-23 10:34:57 
2010-10-08 21:41:16 
+0

SMALLDATETIME不包含秒 –

回答

3

试试这个请

declare @s_date as nvarchar(100)= '18-FEB-11 10.29.52.000000000 AM' 
SELECT CONVERT(nvarchar(100),CAST(REPLACE(REPLACE(@s_date, SUBSTRING(@s_date, 19, 10),''),'.',':') as datetime), 120) 

result : 2011-02-18 10:29:52 
1

这应该工作太:

DECLARE @datestring NVARCHAR(50) = '08-OCT-10 09.41.16.921000000 PM' 
SELECT CAST(REPLACE(LEFT(@datestring,18),'.',':') + RIGHT(@datestring,2) AS SMALLDATETIME) 
相关问题