2

私はこれに数日間取り組んでおり、見つけたすべてのオプションを試しました。私は誰かがこれを片付けることができることを望んでいます。保存されたプロシージャ内で、JDEからSQLテーブルにデータをプルしています。フィールドの1つはJDE日付フィールドであり、日時形式でSQLテーブルに入れるためにこれが必要です。日付フィールドはIVEFTJです。

私には次のようなものがあります。

SELECT DISTINCT * FROM OPENQUERY(GDCJDE9PRODR, '
    SELECT 
       IVLITM,
       IVCITM,
       IVEFTJ,
       Convert(datetime,DATEADD(day,[IVEFTJ]-729960,Convert(datetime,"1900-01-01")),103) as BCDAte
FROM 
    PRODDTA.F4104
WHERE
    IVXRT = ''UP'' 
')
4

1 に答える 1

0

このステートメントは行を選択するデータベースに関連しているため、openquery SQL ステートメント内で SQL 関数を使用することはできません。代わりに、次のように外側の SQL ステートメントで関数を使用します。

SELECT DISTINCT 
   IVLITM,
   IVCITM,
   IVEFTJ,
   dateadd(day, convert(int, substring(IVEFTJ, 4, 3)), convert(datetime,convert(varchar(4), convert(int, substring(IVEFTJ, 1, 1))*100 + 1900 + convert(int, substring(IVEFTJ, 2, 2))) + '-01-01 00:00:00', 121)) as BCDAte 
FROM OPENQUERY(GDCJDE9PRODR, '
SELECT 
   IVLITM,
   IVCITM,
   IVEFTJ,
   IVEFTJ
FROM 
PRODDTA.F4104
WHERE
IVXRT = ''UP'' 
')

これがあなたが遊ぶためのsqlfiddleです

于 2012-11-26T21:37:26.037 に答える