使用T-SQL';两位数的年份截止值';手稿

使用T-SQL';两位数的年份截止值';手稿,sql,sql-server,sql-server-2005,sql-server-2008,Sql,Sql Server,Sql Server 2005,Sql Server 2008,我正在编写一个脚本来清理一些数据,将存储在varchar字段中的日期从dd/mm/yy转换为dd/mm/yyyy格式。(是的,我知道,但不是我的设计:) 我已经编写了一个脚本来实现这一点,但是我现在得到了一个硬编码的常数2049作为截止日期。我知道SQL有一个“两位数年份截止”高级选项,我想用它来代替这个常量 是否有一种安全/方便的方法可以在脚本中检索和使用此信息? (需要支持SQL Server 2005/2008/2008R2) 但是,您不能将(假设您的系统设置为使用dd/mm/yyy作为标

我正在编写一个脚本来清理一些数据,将存储在varchar字段中的日期从dd/mm/yy转换为dd/mm/yyyy格式。(是的,我知道,但不是我的设计:)

我已经编写了一个脚本来实现这一点,但是我现在得到了一个硬编码的常数2049作为截止日期。我知道SQL有一个“两位数年份截止”高级选项,我想用它来代替这个常量

是否有一种安全/方便的方法可以在脚本中检索和使用此信息? (需要支持SQL Server 2005/2008/2008R2)


但是,您不能将(假设您的系统设置为使用dd/mm/yyy作为标准)转换为日期时间,然后再返回吗?

为什么不将其存储为日期时间…?同意,不要将日期值存储在字符字段中;那就是疯狂。特别是因为您选择的格式没有很好地排序/索引。完全同意,但这不是我的设计,我无法更改此版本的架构。这是为了清理一些遗留数据以解决一个特定问题。我的第一段脚本就是这样做的,但我不能确定系统将使用dd/mm/yyyy格式进行设置,我不想动态更改它。不过这很有效,谢谢。
SELECT value
FROM sys.configurations 
WHERE name = 'two digit year cutoff'