0

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

我正在尝试获取 2 个日期之间的天数差异,但需要使用子查询来获取第一个日期。这里是

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'

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

提前致谢

4

1 回答 1

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)

如果您确实想包含别名,它应该在 SELECT 列表中的表达式之后,在 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)
于 2013-07-16T20:51:16.677 回答