2016-06-27 61 views
1

クエリビルダを使用して、SASの日付形式を別の日付インフォスタイルに変更したいとします。Query Builderを使用してSASで日付を変更する

私はそれはのように単純であるべきと思った。

INPUT(t1.In_date, MMDDYY10.) 

しかし、これは次のエラーを返します。

ERROR: INPUT function requires a character argument. 

だから私は&は、例えばいくつかのことを試してみましたそれでおよそ演奏

INPUT("t1.In_date", MMDDYY10.) 

これはエラーメッセージを作成しませんが、空白を生成します。

私は、エラーメッセージをGoogleで検索しましたが、クエリビルダーを使用してこの問題を解決する方法がわかりません。

t1.In_dateの情報はDATETIME18です。

誰かが何か提案があれば、私は感謝します。

+0

何フォーマットはin_dateの変数のためにあるのですか? –

+0

入力は文字を引数として求め、数値を返します。日付はすでに数字であるため、これは機能しません。 "t1.indate"は変数値ではなくsasの文字列であり、数値に変更することはできません。 Format t1.ln_date MMDDYY10を使用してください。またはこのような文字変数に日付を変更するnew_date = put(t1.In_date、MMDDYY10); – kl78

+0

select t1.In_date format = MMDDYY10のようなクエリを選択するだけで簡単に変更することができます。テーブルt1から。 –

答えて

0

ここにはいくつかの問題があります。

まず、informatは間違った用語です。あなたの日付変数は、フォーマットの日付(数字)です。したがって、あなたはformatを変更したいと考えています。 informatは、テキスト文字列を数値に変換しています。 formatは、数字(または文字列)の表示方法を変更しています。

次に、datetimeがあります。統計時刻は、秒の数字で、日のの数字であるのに対し、1950年1月1日からの数字として保存されます。つまり、形式的には互換性がありません。日時を日付に変換するには、datepartを使用する必要があります(基本的に、これは86400で割ることを意味します)。

だから、あなたは何をすべきかをしたい:

put(datepart(t1.in_date),mmddyy10.) 
+0

ありがとうございました:)正確に私が探していたものとどこに間違っていたの説明。 – Paul

+0

すぐに話してください。 :)コードput(datepart(t1.in_date)、mmddyy10。)は日付ではなく文字を返します。助言がありますか?まだいくつかのことを試みている。ありがとうポール – Paul

+0

INPUT(put(datepart(t1.in_date)、mmddyy10。)、mmddyy10) MDY(put(datepart(t1.in_date)、mmddyy10。)、mmddyy10) DATE(put(datepart(t1.in_date)、mmddyy10。)、mmddyy10) – Paul

関連する問題