php - 如何从数据库中获取两个日期之间的值?

标签 php mysql

我正在创建一个酒店预订应用程序。我如何获取两个日期之间的数据。

这是我的 Controller 逻辑。

public function GetMarriageDate(){

   $frm = $this->input->post('from');

   $to = $this->input->post('to');

   $date=$this->db->query("SELECT * FROM `tbl_marriagebooking` WHERE (to_date BETWEEN '$frm' AND $to')UNIONSELECT * FROM `tbl_marriagebooking` WHERE (from_date BETWEEN '$frm' AND to')");

   $count=$date->num_rows();return $count;

}

我的数据库表(tbl_marriageBooing)

id   name        to_date        from_date

1    name 1     2014-11-15    2014-11-18

2    name 2     2014-11-20    2014-11-24

3    name 3     2014-11-26     2014-11-30   

我的问题是,如果有人在这种情况下从 2014-11-23 选择日期 to=2014-11-20,则 sql 返回或选择 id = 2 因为 2014-11-242014-11-20 已被预订。

最佳答案

尝试

$frm = date('Y-m-d', strtotime($this->input->post('from')));
$to =  date('Y-m-d', strtotime($this->input->post('to')));
$date=$this->db->query("SELECT * FROM tbl_marriagebooking WHERE DATE(to_date) >= '$to' AND DATE(from_date) <= '$frm'");

对于两个日期完全匹配

$date=$this->db->query("SELECT * FROM tbl_marriagebooking WHERE DATE(to_date) = '$to' AND DATE(from_date) = '$frm'");

关于php - 如何从数据库中获取两个日期之间的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26734532/

相关文章:

mysql - 如何使用另一个表中的最大 ID 增加表值

MySQL TEXT 字段性能

php - Laravel 5.3 中三个表的 sql 连接

php - 如何使用 javascript 中的 onclick 事件链接到另一个 php 页面?

php - 保护 PHP 源代码

php - 比较表行数,数据量大

php - MySQL:从日期时间列中计算连续工作日的数量

php - 在 Codeigniter 中选择带有限制的结果中的 SUM

php - 表单关闭标签在 php echo 中不起作用?表格元素在编译时相互超越。另外我的 'comment' 输入有什么问题?

mysql - Oracle-sql和Mysql通用日期格式函数