我有一个 SP 需要计算一些日期和时间。当语言设置为英语时,它工作正常。但是,当它是法语时,它会出现以下错误:
La convert d'un type de données varchar en type de données datetime a créé une valeur hors limites。
这意味着基于翻译的日期时间溢出。
查询类似于:
SET LANGUAGE 'French'
DECLARE @StartPastDays INT
SET @StartPastDays = 1;
DECLARE @PastDays INT
SET @PastDays = 30;
PRINT CONVERT(VARCHAR(10),GETDATE(),111)
PRINT CONVERT(DATE,GETDATE(),111)
PRINT DATEADD(day, -(@PastDays+@StartPastDays-1), CONVERT(VARCHAR(10),GETDATE(),111) )
PRINT DATEADD(day, -(@PastDays+@StartPastDays-1), CAST('2013-07-23' AS DATE))
如果我运行它,结果是:
Le paramètre de langue est passé à Français。
2013/07/23
2013-07-23
Msg 242, Level 16, State 3, Line 16 La conversion d'un type de données varchar en type de données datetime a créé une valeur hors limites。
2013-06-23
错误发生在: PRINT DATEADD(day, -(@PastDays+@StartPastDays-1), CONVERT(VARCHAR(10),GETDATE(),111) )
有谁知道为什么?