首先,我根本没有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'
任何人都可以帮忙吗?获取其他值时我真的需要使用这些条件
提前致谢
答案 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)