2

test_1 テーブルでは、my_dateフィールドは「DATE9」です。フォーマット。形式の純粋な数値形式(数値の長さ8)
に変換したいと思います。 また、理想的にはproc sqlステートメントでこれを行いたいと思います。YYYYMMDD

これが私がこれまでに持っているものです。
明らかに、my_date フィールドを操作するために何かが必要です。

rsubmit;
proc sql;
    CREATE TABLE test_2 AS      
    SELECT
        my_date
    FROM
        test_1
    ;
quit;    
endrsubmit;

参考までに、SAS のさまざまなメソッドを理解するのは非常に難しいと感じています。

明確にするために、フィールドは実際には数値であり、文字フィールドでも日付でもない必要があります。

4

2 に答える 2

11

フィールドに の値を格納する場合2014123131DEC2014、次のようにします。

proc sql;
  create table want as
   select input(put(date,yymmddn8.),8.) as date_num
     from have;
quit;

input(..)何かを数値に変換し、put(..)何かを文字列に変換します。この場合、最初putに目的の形式 (yymmddn8.セパレーターなしの YYYYMMDD ) を使用し、次に、input読み取っ8.ている文字列の長さである を使用します。

一般に、これは行うべきではありません。日付を文字列表現の数値として保存することは、非常に悪い考えです。日付形式を理解すれば、操作がはるかに簡単になるため、日付形式にとどまるようにしてください。SAS は他のデータベースと連携して、それらの日付型を使用することもできます。「20141231」表現が必要な場合 (たとえば、テキスト ファイルに入れる場合)、文字変数にします。

于 2014-08-05T19:17:10.073 に答える