2012-05-07 15 views
0

db2プロシージャーを作成しています。 私の選択したクエリ結果には、比較する必要がある日付時刻があります。- 照会結果の選択 - 条件付きサブストリング

日付形式20120507時刻形式111111

は両方をCONCATし、整数として比較することで計画しています。それは正しい比較方法ですか?

しかし、それが10より小さい場合、値は71111のようになります。これらのケースで時間の前に0を追加し、連結して比較する予定です。

私はこれをシングルステートメントで行うことはできますか?

select dbdate, if LENGTH(trim(dbtime))=7 then '0'||dbtime into newtime from tablename 
+1

日付/時刻を整数として比較することはできません。一部のOLAPシステムでは、カレンダーテーブルの特殊な使用を禁止して、適切なデータ型と比較しないでください。あなたのデータは実際には整数(または文字列)として格納されていますか、それともクエリの結果ですか?そして、どのような比較をする必要がありますか? –

答えて

0

これはあなたに比較操作で使用することができ、DB/2のタイムスタンプを与える

select TIMESTAMP(dbdate, dbtime) 

のようにTIMESTAMPスカラー関数を使用してみてください。おそらく、すべての日付/時刻の値をタイムスタンプにキャストし、次に比較する前に、必要に応じてtruncateまたはroundをキャストすることが最善の方法です。