【问题标题】:Minus a day in DATEDIFF query在 DATEDIFF 查询中减去一天
【发布时间】:2015-08-27 08:26:05
【问题描述】:

如果用户选择"2015-08-27 to 2015-08-29" 之间的日期,那么 29 被认为是他的结帐日期,所以我想输出 27 和 28 的比率。

现在下面这段代码输出 3 天,它只需要输出 2 天

数据库

$pdo = $dbo->prepare(
    "SELECT r.*, rr.rid, SUM(ABS(DATEDIFF(:ci, :co) * rr.rate)) as totalsum, rr.sdate, rr.edate 
    FROM rooms r 
    LEFT JOIN rates as rr ON r.id=rr.rid
    WHERE r.id NOT IN (SELECT room_id FROM reservation as b WHERE (b.checkout <= :ci 
    AND b.checkin >= :co) OR (b.checkout >= :ci AND b.checkin <= :co)) 
    AND (rr.sdate >= :ci AND rr.edate <=:co) OR (rr.sdate <=:ci AND rr.edate >=:co)
    GROUP BY rr.rid, r.room_name");                           
//$pdo->bindValue(':stat', 'confirm', PDO::PARAM_STR);
$pdo->bindParam(':ci', $check_in, PDO::PARAM_STR);
$pdo->bindParam(':co', $check_out, PDO::PARAM_STR);
if (!$pdo->execute()) {
    print_r($pdo->errorInfo());
} else {
    //Do something
}

【问题讨论】:

  • 不清楚的问题。你的表是什么(显示结构和数据示例)?查询返回什么?你期待什么结果?
  • 现在查询输出 3 天费率它只需要输出 2 天
  • 那么不要使用
  • ...或者您可以执行 DATEDIFF(...)-1 删除额外的一天
  • 两者都不起作用我将&lt;=更改为&lt;并尝试了DATEDIFF(...)-1

标签: php mysql datediff


【解决方案1】:

您甚至可能不需要在查询中使用 PHP 解决它,例如:

DATE_SUB(final_date, INTERVAL 1 DAY)

这应该等于(final_date - 1 天)

【讨论】:

  • 或者只是final_date - INTERVAL 1 DAY
【解决方案2】:

我只是从这里更改我的check out string

$check_out =  date("Y-m-d" strtotime($_POST['co'])

$check_out = date("Y-m-d", strtotime('-1 day', strtotime($_POST['co'])));

并在下面这样的查询中删除DATEDIFF() &amp; ABS()

SELECT r.*, rr.rid, SUM(rr.rate) as totalsum, rr.sdate, rr.edate 
FROM rooms r 
LEFT JOIN rates as rr ON r.id=rr.rid
WHERE rr.sdate >= :ci AND rr.edate <= :co
GROUP BY rr.rid, r.room_name

完成。

【讨论】:

    【解决方案3】:

    在 MySql 中,您可以简单地使用 DATE_ADD(checkout_date,INTERVAL -1 DAY)。它将从您的结帐日期减少 1 天 那么你可以正确计算日期差异

    DATEDIFF(DATE_ADD(checkout_date,INTERVAL -1 DAY),checkin_Date) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-17
      • 1970-01-01
      • 2013-09-17
      • 2023-03-16
      • 1970-01-01
      • 2022-08-04
      • 1970-01-01
      相关资源
      最近更新 更多