2016-05-31 5 views
0

日付の値が 'YYMMDD'の形式のCHAR_Date列があります。DB2 iの場合:YYMMDDを日付に変換する

私は日付演算をしたいので、日付データ型に変換する必要があります。問題は、Char_Dateにブランクも含まれていることです。

有効な値を使用してCHAR_DateをDATE_Date列にキャストするにはどうすればよいですか?

+0

明らかに「空白を含む」と推定される唯一の答えは、Char_Date列の値が空白である可能性があることを意味します。唯一の答えが受け入れられていないことを考えれば、おそらく "ブランクを含んでいる"とは何か異なることを暗示しようとしています。多分いくつかの例を提供することは役に立つでしょう - あるいは、おそらく答えが受け入れられて受け入れられるかもしれません。あるいは、DATEデータ型の指定に失敗したかどうかが問題であるか、またはunstated releaseが1つのargumet TIMESTAMPスカラーを有効にしていない可能性があります。 – CRPence

+0

@CRPence "TO_DATE()"は、有効なDB2 for i( "db2400")関数ではありません。 http://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/db2/rbafzscale.htm 回答は受け入れ済みとマークされています。クエリはすでにサインオフされており、運用中です。 –

+1

そのページでは\検索可能ではありませんが、TO_DATEは有効です。 [リンク](http://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/db2/rbafzscatsformat.htm)を参照してください。 "**注** **構文の代替方法**:TO_DATEおよびTO_TIMESTAMPは、TIMESTAMP_FORMATの同義語です。 – CRPence

答えて

4
SELECT 
case when CHAR_Date = '' then TIMESTAMP('0001-01-01') 
          else TIMESTAMP_FORMAT(CHAR_Date, 'YYMMDD') 
        end 
    as DATE_Date 

FROM TABLE_Data 
0

あなたは

TIMESTAMP_FORMAT( '990205'、 'YYMMDD')

関数TIMESTAMP_FORMATを使用することができますし、日付したい場合:

DATE(TIMESTAMP_FORMAT( '990205' が、 「YYMMDD」))

関連する問題