0

ユーザーが特定の会場でエンターテインメントプログラムを作成できるウェブサイトを作成しています。ユーザーが入力した開始時間と終了時間について、その特定の会場に固定されたプログラムがあるかどうかを確認する必要があります。

データベースに2つの列名がstarttimeあり、「endtime」という形式の値が含まれていますyyyy-mm-dd hh:mm:ss。データベースの両方のフィールドに格納されている値をタイムスタンプに変換する必要があると思います。しかし、クエリの書き方。

例えば:

SELECT *
FROM table_name
WHERE
  timestamp(starttime)>='user entered value'
  AND timestamp(endtime)<='user entered value '

このクエリは可能ですか?

4

2 に答える 2

1

「ユーザーが入力した値」がUNIXタイムスタンプの場合、UNIX_TIMESTAMP(フィールド)関数を使用して、そのフィールドをタイムスタンプに変換できます。そうでない場合は、最初にstrtotimeまたは同様の関数を使用してタイムスタンプに変換する必要があります。または、逆に、 STR_TO_DATE(日付、形式)MySQL関数を使用して文字列を日時に変換することにより、クエリ内で日時値を使用することもできます。

たとえば、ユーザーが日付をYYYY-mm-dd hh:mm形式で入力する場合は、次のクエリを使用します。

SELECT * FROM table_name WHERE starttime> = STR_TO_DATE( '2012-02-01 12:00'、'%Y-%m-%d%H:%i')AND endtime <= STR_TO_DATE( '2013-01-01 00 :00'、'%Y-%m-%d%H:%i')

個人的には、クエリ内でUNIXタイムスタンプを使用するのが好きですが、それは私の癖です。

于 2013-03-01T13:33:42.043 に答える
0

Unix 時間を使用しないのはなぜですか? これにより、日付の処理がはるかに簡単になります。

$current_time=time();

これにより整数が作成されます。

クエリ:

SELECT * FROM table 
WHERE starttime
BETWEEN starttime AND endtime
于 2013-03-01T13:35:15.053 に答える