簡體   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