我将两个日期之间的中点输入变量,我想检查今天是否是中点。我可以毫无问题地选择所需的内容,但是一旦将变量放入WHERE
子句中,它似乎就无法工作。
我尝试输出我需要的两个日期,它们都相同,但是当我在WHERE
子句中比较它们时,没有任何结果。
这向我显示列和middle_date和todays_date在同一列中是相同的
SELECT @order_date := order_date, @delivery_date := delivery_date,
ROUND(UNIX_TIMESTAMP(ADDDATE(@order_date, ((DATEDIFF(@delivery_date, @order_date)/2)))),0) AS middle_date,
UNIX_TIMESTAMP(DATE(NOW())) AS todays_date FROM `order`
现在,当我这样做时,没有任何结果:
SELECT @order_date := order_date, @delivery_date := delivery_date,
ROUND(UNIX_TIMESTAMP(ADDDATE(@order_date, ((DATEDIFF(@delivery_date, @order_date)/2)))),0) AS middle_date,
UNIX_TIMESTAMP(DATE(NOW())) AS todays_date FROM `order`
WHERE ROUND(UNIX_TIMESTAMP(ADDDATE(@order_date, ((DATEDIFF(@delivery_date, @order_date)/2)))),0) = UNIX_TIMESTAMP(DATE(NOW()))
我希望查询返回当日日期和中间日期相同的行。
答案 0 :(得分:1)
您可以在没有变量且没有unix_timestamp的情况下完成
SELECT order_date, delivery_date,
ADDDATE(order_date, ((DATEDIFF(delivery_date, order_date)/2))) AS middle_date,
DATE(NOW()) AS todays_date
FROM `order`
WHERE ADDDATE(order_date, ((DATEDIFF(delivery_date, order_date)/2))) = DATE(NOW())