我正在尝试包含遵循这一推理路线的日期逻辑:
SELECT *
FROM OPENQUERY(ACLS_PROD, 'SELECT A182.BK_NUM as Bank,
A182.LN_NUM as Loan_Number,
A182.ACT_STA as Ln_Sta,
A182.NXT_PMT_DUE_DAT as Due_Date,
A182.CUR_LN_BAL as Balance,
A182.INS_REF_NUM as Debt_Can_Ref
FROM PZFRL.ALT0182 A182
WHERE A182.ACT_STA IN(''0'', ''1'', ''2'')
AND (A182.INS_REF_NUM IN(''SDC'', ''SDD'', ''SDU'', ''SLF'', ''SUF'', ''DSF'',
''JDC'', ''JDD'', ''JDU'', ''JLF'', ''JDF'')
AND A182.NXT_PMT_DUE_DAT <= GETDATE())
ORDER BY A182.BK_NUM,
A182.LN_NUM
')
在SAS中,您可以使用TODAY()来实现这一目标。 SQL是否具有我可以实现的等效日期函数?当我使用CURDATE()和GETDATE()时,我在消息日志中收到以下错误:
链接服务器“ACLS_PROD”的OLE DB提供程序“MSDASQL”返回消息“[IBM] [CLI驱动程序] [DB2] SQL0206N”CURDATE“在使用它的上下文中无效.SQLSTATE = 42703 ”。 Msg 7350,Level 16,State 2,Line 19 无法从OLE DB提供程序“MSDASQL”获取链接服务器“ACLS_PROD”的列信息。
知道如何解决这个问题吗?
答案 0 :(得分:2)
在DB2中,名为CURRENT DATE
的'特殊寄存器'(两个字)为您提供当前日期。
没有括号;只有CURRENT DATE
到位GETDATE()
。
答案 1 :(得分:0)
免责声明:我不是DB2开发人员;我之前从未对它进行过如此多的查询。
据说,从您复制的错误消息中,看起来它正在尝试针对DB2数据库运行。因此,您可以使用current time
代替GETDATE()吗?这是我在Googling DB2 current date大约15秒内发现的内容。
希望有所帮助,祝你好运。