Método GETDATE() para o DB2
eu tenho tentado por um tempo agora para obter um método semelhante para GETDATE()
no DB2 para i. Até agora eu encontrei o seguinte:
current date
current timestamp
current time
Seria possível para mim ...
select specific, columns
from table
where datefield = current date - 1 day
Esta é a maneira mais eficiente ou há alguma maneira que talvez ainda não tenha encontrado?
editar:
tenho isto:
WHERE datefield = - days(date('2013-10-28'))
embora isto não seja útil, pois vou precisar de editá-lo todos os dias que a consulta correr.
Agora chegamos a isto:WHERE datefield = VARCHAR_FORMAT(CURRENT TIMESTAMP, 'YYYYMMDD') - 1
excepto isto não vai trabalhar no primeiro dia do mês como 1-1 = 0 e não há dia 0 em um mês...
3 answers
SELECT CURRENT DATE - 1 DAY FROM sysibm.sysdummy1
Se quiser saber um determinado intervalo de datas como alternativa, pode tentar a função escalar TIMESTAMPDIFF, ler o diagrama de sintaxe do diagrama de sintaxe visual O parâmetro: 16 indica que irá avaliar por dias
O próximo exemplo determina um intervalo de 70 dias a partir de agora.
WHERE (TIMESTAMPDIFF(16, CHAR(SYSDATE- CURRENT DATE)) )<70 AND (TIMESTAMPDIFF(16, CHAR(SYSDATE- CURRENT DATE)) ) > -1
Você pode dar uma olhada neste link para todos os detalhes sobre este método que é suportado por 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())