Utilisation de la logique de date dans SQL

J'essaie d'inclure une logique de date qui suit cette ligne de raisonnement:

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 ') 

Dans SAS, vous pouvez utiliser TODAY () pour accomplir cela. Est-ce que SQL a une fonction de date équivalente que je peux implémenter? Lorsque j'utilise CURDATE () et GETDATE (), j'obtiens l'erreur suivante dans le journal des messages:

Le fournisseur OLE DB "MSDASQL" pour le server lié "ACLS_PROD" a renvoyé le message "[IBM] [pilote CLI] [DB2] SQL0206N" CURDATE "n'est pas valide dans le context où il est utilisé SQLSTATE = 42703". Msg 7350, niveau 16, état 2, ligne 19 Impossible d'get les informations de colonne du fournisseur OLE DB "MSDASQL" pour le server lié "ACLS_PROD".

Une idée de comment je peux résoudre cela?

Dans DB2 , le 'registre spécial' appelé CURRENT DATE (deux mots) vous donne la date actuelle.

Pas de parenthèses; juste CURRENT DATE à la place GETDATE() .

Avertissement: JE NE SUIS PAS un développeur DB2; Je n'ai jamais couru autant qu'une requête auparavant.

Cela étant dit, à partir du message d'erreur que vous avez copié, il semble qu'il essaie de s'exécuter sur une database DB2. En tant que tel, pouvez-vous simplement utiliser current time au lieu de GETDATE ()? Voici ce que j'ai trouvé dans environ 15 secondes de Googling DB2 date actuelle .

En espérant que ça aide et bonne chance.