Sql-Server
SQL Server 中 Oracle RR 日期格式的等價物
在 Oracle 中生成了一堆 SQL 插入腳本,我需要調整它們以在 Microsoft SQL Server 中與 T-SQL 一起使用。
Oracle 導出的日期格式如下:
to_date('01.02.28','DD.MM.RR')
這
RR
意味著0 到 49 之間的值假定目前世紀,而 50 到 99 假定上一世紀。我目前沒有看到與該表示法等效的 SQL Server。
我能想到的唯一解決方案是編寫一個快速腳本,執行一些正則表達式和/或字元串操作來檢測數值並自己添加世紀,以便我可以
YYYY
用於 SQL Server。我的問題:
有沒有辦法
RR
用 T-SQL 表達?
我的問題:
有沒有辦法在 T-SQL 中表達 RR?
例如,可以這樣做
-- from date to string SELECT FORMAT(datetime_field, CASE WHEN YEAR(datetimefield) > 49 THEN 'yyyy-MM-dd' ELSE 'yy-MM-dd' END) AS date_formatted_as_RR, ...
-- from string to date SELECT DATEFROMPARTS(CASE WHEN CAST(SUBSTRING(string_field,7,2) AS INT)>49 THEN CAST(SUBSTRING(string_field,7,2) AS INT)+2000 ELSE CAST(SUBSTRING(string_field,7,2) AS INT)+2100 END, CAST(SUBSTRING(string_field,4,2) AS INT), CAST(SUBSTRING(string_field,1,2) AS INT)) AS date_interpreted_as_RR, ...