3

日付範囲でmySQLDBに関連付けられた検索条件を作成しようとしていますが、これまでのところ期待される結果が返されないようです。

日付は次の形式で保存されます。mm/dd/yy日付範囲で並べ替えたいので、ユーザーが日付を入力するFrom: 2/2/12<current date>、クエリは現在の日付を含むその日付範囲に該当するすべてのクエリを返します。

これは私が試したものです:

次のタイムスタンプを持つテストworkorderレコードがDBにあります:1362250990および1362251039。

PHP

$date1 = strtotime($_GET['dateFirst']);
$date2 = strtotime($_GET['dateSecond']);
echo $date1 . '> work order date <='. $date2;
$results = mysqli_query($mysqli, "SELECT * FROM workorders WHERE (work_order_date > $date1) AND (work_order_date <= $date2) LIMIT 20");
4

1 に答える 1

2

DATE日付は常に適切な列タイプ( 、、、DATETIMEまたはできれば)に格納する必要がありますTIMESTAMP

ビッグエンディアンの順序であるため、これにより自動的に簡単に並べ替えることができます。

入力形式が信頼できると仮定すると、次のBETWEENように比較演算子を使用できます。

$date1 = date("Y-m-d H:i:s",$_GET['dateFirst']);
$date2 = date("Y-m-d H:i:s",$_GET['dateSecond']);
$results = mysql_query("SELECT * FROM `workorders` WHERE `work_order_date` BETWEEN '$date1' AND '$date2'");
于 2013-03-03T03:45:51.960 に答える