-1

次の PL SQL コードを MSSQL と同等のものに変換するのを手伝ってくれる人はいますか? 前もって感謝します。

return to_date(l_date_time, 'rrrrdddhh24miss');
4

1 に答える 1

0

SQL フィドル

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 桁の年の切り捨てオプションを参照してください

于 2013-09-26T04:33:25.603 に答える