日付の値が 'YYMMDD'の形式のCHAR_Date列があります。DB2 iの場合:YYMMDDを日付に変換する
私は日付演算をしたいので、日付データ型に変換する必要があります。問題は、Char_Dateにブランクも含まれていることです。
有効な値を使用してCHAR_DateをDATE_Date列にキャストするにはどうすればよいですか?
日付の値が 'YYMMDD'の形式のCHAR_Date列があります。DB2 iの場合:YYMMDDを日付に変換する
私は日付演算をしたいので、日付データ型に変換する必要があります。問題は、Char_Dateにブランクも含まれていることです。
有効な値を使用してCHAR_DateをDATE_Date列にキャストするにはどうすればよいですか?
SELECT
case when CHAR_Date = '' then TIMESTAMP('0001-01-01')
else TIMESTAMP_FORMAT(CHAR_Date, 'YYMMDD')
end
as DATE_Date
FROM TABLE_Data
あなたは
TIMESTAMP_FORMAT( '990205'、 'YYMMDD')
関数TIMESTAMP_FORMATを使用することができますし、日付したい場合:
DATE(TIMESTAMP_FORMAT( '990205' が、 「YYMMDD」))
明らかに「空白を含む」と推定される唯一の答えは、Char_Date列の値が空白である可能性があることを意味します。唯一の答えが受け入れられていないことを考えれば、おそらく "ブランクを含んでいる"とは何か異なることを暗示しようとしています。多分いくつかの例を提供することは役に立つでしょう - あるいは、おそらく答えが受け入れられて受け入れられるかもしれません。あるいは、DATEデータ型の指定に失敗したかどうかが問題であるか、またはunstated releaseが1つのargumet TIMESTAMPスカラーを有効にしていない可能性があります。 – CRPence
@CRPence "TO_DATE()"は、有効なDB2 for i( "db2400")関数ではありません。 http://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/db2/rbafzscale.htm 回答は受け入れ済みとマークされています。クエリはすでにサインオフされており、運用中です。 –
そのページでは\検索可能ではありませんが、TO_DATEは有効です。 [リンク](http://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/db2/rbafzscatsformat.htm)を参照してください。 "**注** **構文の代替方法**:TO_DATEおよびTO_TIMESTAMPは、TIMESTAMP_FORMATの同義語です。 – CRPence