【发布时间】:2012-01-21 00:20:08
【问题描述】:
我正在编写一些 T-SQL,它需要在一些空字段上强制执行最小日期值:
DECLARE @epoch DATETIME;
set @epoch='1900-01-01';
select min = ISNULL(ValidFromDate,@epoch)
字符串 '1900-01-01' 在任何环境中总是会返回 1900 年 1 月 1 日的日期时间,还是 SQL Server 会尝试根据本地文化规则解析字符串?
如果这还不够好,在 T-SQL 中指定特定日期/时间的推荐方法是什么?
【问题讨论】:
-
快速反例
set language british; DECLARE @epoch DATETIME; set @epoch='1900-01-25'; select min = ISNULL(CURRENT_TIMESTAMP,@epoch)给出错误
标签: sql-server string tsql datetime