我想删除两个日期之间的详细信息
我的代码如下:
Delete from emp_leave_details
where emp_id='$id'
and from_date BETWEEN '$f_date' AND '$t_date'
问题是它删除了$f_date
和$t_date
之间的所有记录,但没有删除$t_date
的记录。我想从{{1}删除记录也是。
答案 0 :(得分:2)
试试这个......
Delete from emp_leave_details
Where emp_id='$id'
AND from_data > '$f_date'
AND from_date <= '$t_date';
答案 1 :(得分:2)
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
使用<=
和>=
后为您提供预期结果。
答案 2 :(得分:1)
如果您有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天后。
答案 3 :(得分:0)
我看不出为什么你的查询中也包含了一个id,但直接回答你的问题,你应该
Delete from emp_leave_details
Where emp_id='$id'
and from_date > '$f_date'
and from_date <= '$t_date'
答案 4 :(得分:0)
mysql_query("Delete from emp_leave_details Where emp_id='$id' and (from_date BETWEEN '$f_date' AND '$t_date'");
答案 5 :(得分:0)
问题是对于$ t_date,它从00:00:00开始。那是一天的开始。白天的一切都不包括在内。 如果您想要包含$ t_date的记录,则应 添加1 。
$t_date = $t_date + 1