-1

イベントの特定の日付範囲を格納する 2 つのフィールドがあります。

たとえば、イベントが 12/13/12 ~ 12/20/12 に開始されるとします。

だから私たちのフィールドは

名前:私のイベント Start_at: 12/13/12 End_at: 12/20/12

ユーザーには 2 つの入力ボックスがあります。1 つのボックスには from_date が記載され、もう 1 つのボックスには to_date が記載されています。ユーザーが選択した場合

from_date: 12/15/12 to_date: 12/19/12

date_range に該当するため、'my event' レコードを表示する必要があります。

質問: これを SQL でどのように処理しますか?

4

2 に答える 2

1

データベースに日付データを保持する方法によって異なります

「日時」フィールドの場合は、「間」構築を使用します

mysql_query("select * from events where date between '".date("Y-m-d H:i:s", strtotime($from_date))."' and ".date("Y-m-d H:i:s", strtotime($to_date)));

テーブルのフィールド名とクエリのパラメータ名がわからないため、正確なクエリを作成できません

あなたがその考えを理解してくれることを願っています

于 2012-12-13T03:41:59.303 に答える
0

私の経験として。INT データ型の日付が mysql データベースの datetime データ型よりも軽い場合、最初に datetime を INT に変更してみてから、データベースに保存する前に、次のように秒に変換できます。

<?php
 $start_at = strtotime("12/13/12");
 $end_at = strtotime("12/20/12");
/* SAVE on the database */
?>

次に、INTデータ型でテーブルの日付フィールドに保存します

クエリでは、簡単に言うことができます

ユーザーが from_date: 12/15/12 to_date: 12/19/12 を 2 つのフィールド (開始フィールドと終了フィールド) に入力した場合

<?php
 $start_at = strtotime($from_date); //12/15/12
 $end_at = strtotime($to_date); //12/19/12
/*do the query*/
 mysql_query("SELECT name FROM table WHERE Start_at <= '$start_at' AND End_at >= '$end_at'");
?>

私はスクリプトを完成させませんでしたが、アイデアはそこにあります。

于 2012-12-13T03:59:02.180 に答える