TSQL:将varchar'dd / mm / yy'转换为DATETIME

时间:2012-03-28 23:42:56

标签: tsql datetime

我们使用的一个愚蠢的第三方软件将datetime存储为varchar有一些很好的原因,我需要将其解析为sql datetime。问题是,当字符串为mm / dd / yy格式时,作为datetiem的普通CAST()工作正常,但我的数据格式为dd / mm / yy,CAST抛出

  

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

异常。使用CONVERT或CAST进行操作的提示,而不使用RIGHT()/ LEFT()等?

由于

1 个答案:

答案 0 :(得分:1)

一种选择是在执行转换之前使用SQL Server的SET DATEFORMAT设置。 e.g。

-- Set date format to day/month/year.
SET DATEFORMAT dmy;
GO

DECLARE @datevar datetime2 = '31/12/2008 09:01:01.1234567';
SELECT @datevar;
GO