Mysql函数TO_DAYS参数不正确

时间:2013-07-16 20:38:05

标签: mysql parameters

首先,我根本没有mySQL大师,所以如果我的问题太愚蠢,请原谅我。

我试图获得两个日期之间的日差,但第一个需要使用子查询来获取。这是

AND TO_DAYS((SELECT DATE(date_add) FROM ps_order_history oh2 WHERE oh2.id_order_state = 4       
AND id_order = o.id_order limit 1) as shdate) < (TO_DAYS(NOW()) - 12)

我想知道我在这里做错了什么,因为我收到以下错误:

Incorrect parameters in the call to native function 'TO_DAYS'

任何人都可以帮忙吗?获取其他值时我真的需要使用这些条件

提前致谢

1 个答案:

答案 0 :(得分:0)

我认为问题是“as shdate”,应删除。

   AND TO_DAYS( (SELECT DATE(date_add) 
                   FROM ps_order_history oh2
                  WHERE oh2.id_order_state = 4
                    AND id_order = o.id_order
                  LIMIT 1
                ) as shdate
-- not valid here ^^^^^^^^^
              ) < (TO_DAYS(NOW()) - 12)

如果你想要包含一个别名,它应该在FROM列表中的表达式之后,在FROM关键字之前。这不是必需的,但可以这样接受:

   AND TO_DAYS( (SELECT DATE(date_add) AS shdate  
-- alias is valid here                 ^^^^^^^^^
                   FROM ps_order_history oh2
                  WHERE oh2.id_order_state = 4
                    AND id_order = o.id_order
                  LIMIT 1
                ) 
              ) < (TO_DAYS(NOW()) - 12)