次の PL SQL コードを MSSQL と同等のものに変換するのを手伝ってくれる人はいますか? 前もって感謝します。
return to_date(l_date_time, 'rrrrdddhh24miss');
次の PL SQL コードを MSSQL と同等のものに変換するのを手伝ってくれる人はいますか? 前もって感謝します。
return to_date(l_date_time, 'rrrrdddhh24miss');
MS SQL Server 2012 スキーマのセットアップ:
CREATE TABLE Table1
([l_date_time] varchar(25))
;
INSERT INTO Table1
([l_date_time])
VALUES
('1-5-13 1:02:03 PM'),
('9-4-73 9:10:11 AM')
;
クエリ 1 :
select convert(varchar(4), datepart(yyyy,l_date_time)) +
right('00' + convert(varchar(3), datepart(dy,l_date_time)),3) +
right('0' + convert(varchar(2), datepart(hh,l_date_time)),2) +
right('0' + convert(varchar(2), datepart(mi,l_date_time)),2) +
right('0' + convert(varchar(2), datepart(ss,l_date_time)),2)
from Table1
結果:
| COLUMN_0 |
|---------------|
| 2013005130203 |
| 1973247091011 |
また、これを考慮してください:
「Microsoft SQL Server は、日付を解釈するためのカットオフ年として 2049 を使用します。OLE オートメーション オブジェクトは 2030 を使用します。2 桁の年カットオフ オプションを使用して、SQL Server とクライアント アプリケーションの間で日付値の一貫性を確保できます。ただし、日付のあいまいさを避けるために、データでは 4 桁の年を使用してください。」
2 桁の年の切り捨てオプションを参照してください