17

GETDATE()私はしばらくの間、DB2 for iと同様の方法を取得しようと試みてきました。これまでのところ、次のことがわかりました。

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 日はありません...

4

3 に答える 3

32

これにより、昨日の日付が得られます。

SELECT CURRENT DATE - 1 DAY FROM sysibm.sysdummy1
于 2013-10-30T14:12:39.453 に答える
4

別の方法として特定の日付範囲を知りたい場合は、TIMESTAMPDIFF スカラー関数を試すことができます。構文図を読んでください。視覚的な構文図をスキップします。パラメーター: 16 は、日ごとに評価されることを示します。

次の例では、現時点で 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

于 2015-01-13T16:17:24.150 に答える