我正在尝试使用时区投射日期时间,原始日期如下: 2015年7月6日上午08时35分02秒PDT
所以我想要列的最大日期(UserAddDate),
我在SQL Server中使用此公式:
MAX(CAST(左(SIG.UserAddDate,10)AS nvarchar))
它有效,我得到了这个: 02/18/2016,但我不想将其转换为nvarchar,我想将其转换为DATETIME, 当我尝试施放它时,我收到了这个错误: 从字符串转换日期和/或时间时转换失败。
任何人都知道为什么? ,谢谢。
答案 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