2017-02-13 14 views
1

TeradataにSASの日付を読み込む際に問題が発生しています。 SASの日付書式は '01Jan2017'Dでした。読み込んだ後、テラデータ内の日付には23050のような数字の文字列が表示されますが、日付書式は表示されません。そして、私はSASのフォーマットを変更するためにロードする前にput関数を使っていましたが、ロード後もTeradataのキャスト日付フォーマット関数を使用しましたが、どちらも機能しませんでした。Teradataにsasをロードする日付形式

誰にも解決策がありますか?

お返事ありがとうございます!

+0

put機能なしで試してください。私は通常、日付フィールドが実際に日付でない限り、SAS日付をロードするために特別なことを行う必要はありません。もちろん、私はそれがデータをロードするためにどのような方法を使用しているのかによって異なります。 –

+1

SAS変数の作成方法と、Teradataへのロード方法の詳細な例を投稿できますか?問題を再現するために使用できる最小限の例にしておいてください。 – Tom

答えて

1

TeradataへのSAS/Accessを使用していますか?そうであれば、自動的に変数をTeradataの日付として定義する必要があります。 SASでテーブルを作ってみましょう。 SASが変数に日付値を持つことを理解するためには、有効なSAS日付形式を付けることが重要です。

data have ; 
    mydate = '01JAN2017'd; 
    format mydate date9. ; 
run; 

次に、新しいテラデータテーブルにアップロードします。

libname td teradata ..... ; 
data td.mytable ; 
    set have; 
run; 

ここでそれを読んで、その内容を見てみましょう。

proc print data=td.mytable; 
run; 

SAS店が内部日付どのようにしている、あなたはすでにTeradataのに大量のデータをロードしていると値が1960年1月1日からの日数の整数のように見える場合は今、それは簡単な計算でありますそれを日付に変換するTeradataそれを日付 '1960-01-01'に戻してください。 TDサーバーでこのクエリを実行してみてください。

select DATE '2017-01-01' date1, date '1960-01-01' + 20820 date2 

DATE1とDATE2の両方が同じである必要があります。