在案例中使用DATEDIFF

时间:2014-05-22 22:02:48

标签: case sqlplus datediff

我的请求出了问题。

我想比较2个日期,如果天数不如2,我想什么都不显示。但如果它结束了,我想展示日子。 我收到了我的请求,但是当我尝试将DATEDIFF与2进行比较时失败了。

SQL> SELECT noLivraison, noCommande, noArticle, dateCommande, quantite, dateLivraison, quantiteLivree, 
CASE dateCommande
WHEN DATEDIFF(day, dateLivraison, dateCommande) < 2 THEN null
ELSE DATEDIFF(day, dateLivraison, dateCommande)
END nombreJoursEcoules
FROM Commande
NATURAL JOIN LigneCommande
NATURAL JOIN Livraison      
NATURAL JOIN DetailLivraison  2    3    4    5    6    7    8    9  
 10  /
WHEN DATEDIFF(day, dateLivraison, dateCommande) < 2 THEN null
                                                *
ERROR at line 3:
ORA-00905: missing keyword

我不知道如何修复它,我添加了更多括号,但它没有用。

Ty阅读。

1 个答案:

答案 0 :(得分:0)

您可以尝试以下代码,可能会解决您的问题

         select col1,col2,case when DATEDIFF(dd, dateLivraison, dateCommande)

         >= 2 then 'days' else null end as 'datefield', DATEDIFF(dd, dateLivraison, 

         dateCommande) as 'days' from tablename

由于