TSQL:Convert varchar';年月日';迄今为止

TSQL:Convert varchar';年月日';迄今为止,tsql,datetime,Tsql,Datetime,我们使用的一个愚蠢的第三方软件将datetime存储为varchar,这是出于一些很好的老理由,我需要将其解析为sql datetime。问题是,当字符串是mm/dd/yy格式时,纯CAST()作为datetiem可以正常工作,但我的数据格式是dd/mm/yy,CAST抛出一个 结果将varchar数据类型转换为datetime数据类型 在超出范围的值中 例外。使用CONVERT或CAST而不使用RIGHT()/LEFT()等的技巧 谢谢一个选项是在执行转换之前使用SQL Server的设置。e

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

结果将varchar数据类型转换为datetime数据类型 在超出范围的值中

例外。使用CONVERT或CAST而不使用RIGHT()/LEFT()等的技巧


谢谢

一个选项是在执行转换之前使用SQL Server的设置。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

一种选择是在执行转换之前使用SQL Server的设置。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