我想删除两个日期之间的详细信息
我的代码如下
Delete from emp_leave_details
where emp_id='$id'
and from_date BETWEEN '$f_date' AND '$t_date'
问题是它删除了所有记录$f_date
,$t_date
但没有删除记录。$t_date
我也想删除记录$t_date
。
Delete from emp_leave_details
where emp_id='$id'
and DATE(from_date) BETWEEN DATE('$f_date') AND DATE('$t_date')
您的查询等于from_date >= '$f_date' AND from_date <= '$t_date'
,这意味着它将忽略最后一天的所有内容('2013-09-05' < '2013-09-05 00:00:01')
。我的上面给出了('2013-09-05' <= '2013-09-05')
。
DATE()
简单地去掉小时、分钟和秒的值,并给你预期的结果,因为BETWEEN
使用<=
和>=
。
尝试这个...
Delete from emp_leave_details
Where emp_id='$id'
AND from_data > '$f_date'
AND from_date <= '$t_date';
当您有一列时,使用日期是datetime
不够的,因为大于2013-09-25 12:00:00
2013-09-25
你可以你这个
Delete from emp_leave_details
Where emp_id = '$id'
and from_date >= '$f_date'
and from_date < '$t_date'
并设置'$t_date'
为 1 天后。
问题是对于 $t_date,它从 00:00:00 开始。那是一天的开始。不包括白天的一切。如果要包含 $t_date 的记录,则应将其加 1。
$t_date = $t_date + 1
mysql_query("Delete from emp_leave_details Where emp_id='$id' and (from_date BETWEEN '$f_date' AND '$t_date'");
我看不出您为什么还要在查询中包含一个 id,但直接回答您的问题,您应该
Delete from emp_leave_details
Where emp_id='$id'
and from_date > '$f_date'
and from_date <= '$t_date'