如何将带有时区的日期转换为DateTime SQL Server

时间:2017-11-06 17:48:12

标签: sql datetime casting

我正在尝试使用时区投射日期时间,原始日期如下: 2015年7月6日上午08时35分02秒PDT

所以我想要列的最大日期(UserAddDate),

我在SQL Server中使用此公式:

MAX(CAST(左(SIG.UserAddDate,10)AS nvarchar))

它有效,我得到了这个: 02/18/2016,但我不想将其转换为nvarchar,我想将其转换为DATETIME, 当我尝试施放它时,我收到了这个错误: 从字符串转换日期和/或时间时转换失败。

任何人都知道为什么? ,谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用CAST。这应该与AM,PM兼容:

 CREATE TABLE #SIG (UserAddDate varchar(100)) --temp table
 INSERT INTO #SIG VALUES ('07/06/2015 08:35:02 AM PDT')
                        ,('07/06/2015 10:35:02 AM PDT')
                        ,('07/06/2015 02:35:02 PM PDT') --hour is lesser but is PM time   

 SELECT MAX( CAST(LEFT(#SIG.UserAddDate, 22) as datetime) ) AS MaxDateTime
   FROM #SIG

 --DROP TABLE #SIG

会产生:

MaxDateTime
2015-07-06 14:35:02.000