繁体   English   中英

MS SQL Server中的Oracle RR日期格式

[英]Oracle RR date format in MS SQL Server

我有一个要转换为在MS SQL Server中运行的Oracle SQL脚本。 该脚本中包含to_date函数,并使用RR日期格式。 功能如下:

to_date('07-AUG-14','DD-MON-RR')

我将像这样使用MS SQL Server函数CONVERT

CONVERT(DATETIME, '07-AUG-14', num)

其中num是我需要的格式的代码。

我应该在MS SQL Server中使用什么代码来获得与Oracle RR格式相同类型的功能?

对于美国日期时间转换,可以使用:

CONVERT(DATETIME, '07-AUG-14', 10)
--                             ^^

对于其他文化, 样式 (第三个参数)会有所不同; 但是,为了达到您的目的, 样式必须是一个无世纪(yy)的值。

Oracle RR日期格式的语义也适用于SQL Server的yy日期样式。 MSDN上的CAST和CONVERT(Transact-SQL) (用于SQL Server 2008)说明了...

默认情况下,SQL Server会基于截止日期2049来解释两位数年份。即两位数年份49解释为2049,两位数年份50解释为1950。

...并列出无世纪(yy)日期样式的数值。

(作为参考,另一个SO答案解释了Oracle RR日期格式的等效语义 。)

您可以使用以下查询来更广泛地确认SQL Server( yy日期样式的默认语义...

SELECT CONVERT(DATETIME, '07-AUG-14', 10)
SELECT CONVERT(DATETIME, '07-AUG-49', 10)
SELECT CONVERT(DATETIME, '07-AUG-50', 10)
SELECT CONVERT(DATETIME, '07-AUG-51', 10)

...,产生...

2014-08-07 00:00:00.000 -- This century assumed.
2049-08-07 00:00:00.000 -- This century assumed.
1950-08-07 00:00:00.000 -- Last century assumed.
1951-08-07 00:00:00.000 -- Last century assumed.

...具有默认的两位数年份截止时间配置。 (其他文化的yy日期样式应表现类似。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM