2017-02-13 76 views
1

我在將SAS日期加載到Teradata時遇到問題。 SAS中的日期格式爲'01Jan2017'D,加載Teradata中的日期後會顯示一個類似23050的數字字符串,但不是日期格式。我在加載之前使用了put函數來更改SAS中的格式,並且在Teradata中加載了我使用的日期格式化函數之後,它們都沒有工作。sas加載到Teradata日期格式

有沒有人有解決方案?

非常感謝您的回答!

+0

嘗試它沒有put功能。除非日期字段實際上不是日期,否則我通常不必做任何特殊的加載SAS日期。當然,我想這取決於您使用何種方法加載數據 –

+1

您可以發表您如何創建SAS變量以及如何將其加載到Teradata中的詳細示例?保持它可以用來重現問題的最小例子。 – Tom

回答

1

您是否在使用SAS /訪問Teradata?如果是這樣,它應該自動將變量定義爲Teradata中的日期。讓我們在SAS中做一個小表。請注意,附加一個有效的SAS日期格式對於SAS瞭解您的變量具有日期值至關重要。

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

現在讓我們將其上傳到新的teradata表。

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

現在讓我們回過頭來看看它裏面有什麼。

proc print data=td.mytable; 
run; 

現在,如果你已經加載大量數據到Teradata和值看起來像自1960年1月1日天的整數,這是SAS內部存儲如何日期,那麼它就是一個簡單的計算在Teradata將其轉換爲日期。只需將其添加回'1960-01-01'即可。嘗試在TD服務器上運行此查詢。

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

DATE1和DATE2都應該是相同的。