针对DB2的GETDATE()方法

问题描述:

我一直在尝试一段时间,以获得与DB2 for i中的GETDATE()类似的方法。到目前为止,我已经找到了以下内容:针对DB2的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一个月...

+0

那你到底要达到什么目的?你的问题是什么 ?你想在当天之前有一天吗? – user2919277

+0

这里有一篇文章可以帮助你:http://www.ibm.com/developerworks/data/library/techarticle/0211yip/0211yip3.html – steoleary

+1

select dateadd(dd,-1,getdate())你是当天前一天。如果这回答你的问题... – user2919277

这会给你昨天的日期:如果你想知道某个日期范围内的可选方案,你可以尝试

SELECT CURRENT DATE - 1 DAY FROM sysibm.sysdummy1 

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

这不适用于DB2 for i,V6R1。 –

+0

标准SQL中没有DATEADD()。这是一个微软的扩展。 MySQL也有Date_Add()。 GETDATE()类似。 – user2338816

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

+1

该参考针对DB2 LUW。可以在http://www-01.ibm.com/support/knowledgecenter/ssw_ibm_i_72/db2/rbafzscatimedifstmp.htm上看到DB2 for IBM i参考。 –