web-dev-qa-db-ja.com

DB2のGETDATE()メソッド

私はしばらくの間、DB2 for iのGETDATE()と同様のメソッドを取得しようとしています。これまでのところ、私は次のことを発見しました:

current date
current timestamp
current time

私にできることはありますか:

 select specific, columns
 from table
 where datefield = current date - 1 day

これが最も効率的な方法ですか、それともまだ見つかっていない方法がありますか?

編集:

私は現在これを持っています:

WHERE datefield = - days(date('2013-10-28'))

ただし、クエリを実行するたびに編集する必要があるため、これは役に立ちません。

これに来ました:

WHERE datefield = VARCHAR_FORMAT(CURRENT TIMESTAMP, 'YYYYMMDD') - 1

ただし、これは月の最初の日に1-1 = 0として機能せず、月に0日がないことを除いて...

10
DeanMWake

これにより、昨日の日付が表示されます。

SELECT CURRENT DATE - 1 DAY FROM sysibm.sysdummy1
25
Benny Hill

代替手段として特定の日付範囲を知りたい場合は、TIMESTAMPDIFFスカラー関数を試すことができます。構文図を読みます。

次の例では、現在の70日間の範囲を決定します。

WHERE (TIMESTAMPDIFF(16, CHAR(SYSDATE- CURRENT DATE)) )<70 AND (TIMESTAMPDIFF(16, CHAR(SYSDATE- CURRENT DATE)) ) > -1

dB2でサポートされているこのメソッドの詳細については、このリンクをご覧ください。 http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2 .luw.sql.ref.doc/doc/r0000861.html?cp = SSEPGG_9.7.0%2F2-10-3-2-155

3
Israelm