Метод GETDATE () для DB2

Я уже некоторое время пытаюсь получить аналогичный метод для GETDATE() в DB2 for i. До сих пор я нашел следующее:

current date
current timestamp
current time

Это было бы возможно для меня:

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

Это самый эффективный способ или есть какой-то способ, который я, возможно, еще не нашел?

EDIT:

в настоящее время у меня это:

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

хотя это не полезно, Так как мне нужно будет редактировать его каждый день, когда выполняется запрос.

теперь приходите к этому:

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

кроме того, это не будет работать в первый день месяца, 1 - 1 = 0 и нет дня 0 в месяц...

3 ответов


Это даст вам вчерашний день:

SELECT CURRENT DATE - 1 DAY FROM sysibm.sysdummy1

Если вы хотите знать определенный диапазон дат в качестве альтернативы, вы можете попробовать скалярную функцию TIMESTAMPDIFF, прочитать синтаксическую диаграмму визуального синтаксиса diagramSkip Параметр: 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


select dateadd(dd,-1,getdate())