2 つの日付の間の詳細を削除したい
私のコードは以下のとおりです
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')
Yours query is equal toです。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日後に設定します。
クエリに ID も含める理由がわかりませんが、質問に直接答えるには、
Delete from emp_leave_details
Where emp_id='$id'
and from_date > '$f_date'
and from_date <= '$t_date'
mysql_query("Delete from emp_leave_details Where emp_id='$id' and (from_date BETWEEN '$f_date' AND '$t_date'");
問題は、$t_date が 00:00:00 から始まることです。それが一日の始まりです。日中のすべては含まれていません。$t_date のレコードを含めたい場合は、それに 1を追加する必要があります。
$t_date = $t_date + 1