3

SQL Server 2000 DBには、OracleDBの日付の文字列表現を保持するテーブルがあります。それらは「16-MAY-12」のようにフォーマットされています。これらを日時に変換する必要があります。一致する変換スタイル番号が見つからないようです。また、入力形式を指定できる関数も見つかりません。何か案は?

4

2 に答える 2

2

これは私にとってはうまくいくようです:

SELECT CONVERT(DATETIME, '16-MAY-12');

また、を使用TO_CHAR()してOracleの値をよりSQL Serverに適した形式(最良の形式YYYYMMDD)に変換してから、暗い側から引き出すこともできます。

于 2012-05-16T18:49:59.020 に答える
0

Aaronのアドバイスに従い、Oracle側で文字列にキャストしてから、MSSQL側でチェック/再キャストを実行しました。以下の例を参照してください。


    ;WITH SOURCE AS (
    SELECT * FROM openquery(lnk, 
    'SELECT
        TO_CHAR(OFFDATE , ''YYYY-MM-DD HH24:MI:SS'') AS OFFDATE,
    FROM
        ORACLE_SOURCE')),
    SOURCE_TRANSFORM AS
    (
    SELECT
        CASE 
        WHEN ISDATE(OFFDATE) = 1 THEN CAST(OFFDATE AS DATETIME)
        ELSE NULL END AS OFFDATE
    FROM
        SOURCE
    )
    SELECT * FROM SOURCE_TRANSFORM
于 2014-10-29T16:20:34.000 に答える