将整数值添加到日期SQL

时间:2018-10-19 12:57:01

标签: mysql sql integer

在具有Microsoft查询功能的excel中,我们有一列的日期格式为“ JM5OPENORDERSDAY_0.CONFIRMED_DEL_DATE”。

第二列(DB1ARTSTATDAY_0.TOTAL_REP_LEADTIME)包含天,格式为数字,例如“ 40”,“ 10”和“ 5”。

我们要创建一个过滤器,以对日期超过日期的匹配进行排序,例如:CONFIRMED_DEL_DATE +“ 40”。

我和我的同事对SQL的了解非常有限,但是到目前为止,我们想到了:

SELECT
FROM
WHERE DB1ARTSTATDAY_0.MATNR = JM5OPENORDERSDAY_0.MATNR AND 
DB1ARTSTATDAY_0.PLANT = JM5OPENORDERSDAY_0.PLANT AND 
 ((JM5OPENORDERSDAY_0.CONFIRMED_DEL_DATE<(NOW()+DATEADD(DAY,DB1ARTSTATDAY_0.TOTAL_REP_LEADTIME, JM5OPENORDERSDAY_0.CONFIRMED_DEL_DATE)))

该错误发生在最后一行,这是我们自己编写的那行(非常令人惊讶)。

Microsoft查询中的图片:

enter image description here

错误:

enter image description here

1 个答案:

答案 0 :(得分:0)

看来您的错误与您尝试操纵日期的方式有关。从您的查询中,很难确切地了解您想要什么,但是我相信您正在寻找与以下内容类似的东西:

SELECT *
FROM DB1ARTSTATDAY_0 a
JOIN JM5OPENORDERSDAY_0 AS b ON a.MATNR = b.MATNR 
                       AND a.PLANT = b.PLANT 
WHERE b.REQUESTED_DEL_DATE < DATE_ADD(CURDATE(), INTERVAL a.TOTAL_REP_LEADTIME DAY)

这将选择今天的日期在确认的删除日期之后的值以及Total_rep_leadtime列中的天数。

在此工作的更具可读性的示例:SQLFiddle

编辑:使用表名的别名,使查询更具可读性。