0

おはよう、

SASのプログラムは、多くのテーブル内で日付/時刻を英数字の値(例:14-Jan-2013 07:00:00.479)で選択/マージ/ソートし、単一のテーブルを作成しようとしています。このプログラムでは、「format E8601」という命令と、「format type $10.; informat type $10.;」の後の数行を使用して、日付を数値に変換します (例: 2013-01-14T07:02:03.647)。このテーブルを Excel 2007 にエクスポートすると、値は " " になり、従来の日付/時刻形式では変更できません。

どうやってするの ?日付をテキストまたは英数字の値で保持するために使用できる他の形式 (E8601 の代わりに) はありますか?

ご協力いただきありがとうございます。

4

1 に答える 1

1

SAS 日時値は、1960 年 1 月 1 日からの秒数に等しい浮動小数点値として内部的に表されます FORMATS。これらの数値が外部でどのように表されるかを制御するために使用されます。たとえば、次のように考えてください。

data have;
  myDateTime1 = '14-Jan-2013 07:00:00.479'dt;
  myDateTime2 = '14-Jan-2013 07:00:00.479'dt;
  myDateTime3 = '14-Jan-2013 07:00:00.479'dt;

  format myDateTime2 datetime23.3
         myDateTime3 E8601DT23.3;

  put myDateTime1= 'as a number'
    / myDateTime2= 'as a normal SAS datetime'
    / myDateTime3= 'as an ISO 8601 datetime'
   ;
run;

実行すると、SAS ログに次のように表示されます。

myDateTime1=1673766000.5 as a number
myDateTime2=14JAN2013:07:00:00.479 as a normal SAS datetime
myDateTime3=2013-01-14T07:00:00.479 as an ISO 8601 datetime

3 つの変数の値は同じですが、指定さmyDateTimeれた変数に基づいて表示が異なることに注意してください。format

SAS Access to PC File Formats のライセンスがあると仮定するとPROC EXPORT、Excel ワークブックを作成するために使用できます。

proc export data=have
     outfile='c:\temp\test_dates.xlsx'
     replace;
run;

「日時」値としてフォーマットされた 2 つの変数の Excel ワークブックのデータ値は、Excel 列として正しく表示されます。ただし、Excel の既定の書式設定では「日付」部分のみが表示されます。Excel で完全な値を表示するには、Excel の列形式を変更する必要があります。

于 2013-04-16T15:49:36.797 に答える