将VARCHAR转换为DATETIME

时间:2014-04-15 19:59:26

标签: sql-server tsql datetime

我有一个VARCHAR,其中包含以下格式的datetime数据:

15/04/2014 16:05

我需要将其转换为datetime(具有与之前一样的格式),但转换时出现超出范围的错误:

CONVERT(DATETIME, @endDate, 108)

将nvarchar数据类型转换为日期时间数据类型会导致超出范围的值。

有没有建议成功转换的最佳方法?请记住,我无法更改源格式,最终需要比较日期,看看它是否已过去。

2 个答案:

答案 0 :(得分:3)

我认为您想使用103而不是108作为最终参数。

答案 1 :(得分:0)

请使用与语言/国家无关的日期常量值

-- Independent constant (natural date)
DECLARE @END_DTE VARCHAR(20) = '20140415 16:05'

-- Show the result
SELECT CONVERT(DATETIME, @END_DTE, 108) AS FORMAT_DTE