0

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

4

6 に答える 6

4

解決

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使用<=しているため、期待どおりの結果が得られます>=

于 2013-09-25T10:04:47.370 に答える
2

これを試して...

Delete from emp_leave_details 
  Where emp_id='$id' 
   AND from_data > '$f_date' 
   AND from_date <= '$t_date';
于 2013-09-25T09:58:01.850 に答える
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日後に設定します。

于 2013-09-25T09:57:36.243 に答える
0

クエリに ID も含める理由がわかりませんが、質問に直接答えるには、

Delete from emp_leave_details
  Where emp_id='$id'
  and from_date > '$f_date'
  and from_date <= '$t_date'
于 2013-09-25T09:57:51.323 に答える
0
mysql_query("Delete from emp_leave_details Where emp_id='$id' and (from_date BETWEEN '$f_date' AND '$t_date'");
于 2013-09-25T09:58:32.847 に答える
0

問題は、$t_date が 00:00:00 から始まることです。それが一日の始まりです。日中のすべては含まれていません。$t_date のレコードを含めたい場合は、それに 1を追加する必要があります。

$t_date = $t_date + 1
于 2013-09-25T10:07:10.410 に答える