3

MySqlデータベースにはAM_TIMETABLEその中にテーブルがあります

UserId        DateTime
 101        2012-08-08 04:00:00 
 102        2012-08-15 10:00:00
 103        2012-08-18 09:00:00
 104        2012-08-24 05:00:00

私の質問は、開始日と終了日を渡してからDateTime、例の列の日付を取得することです。

select * from AM_TIMETABLE where DateTime<='2012-08-08 00:00:00' and DateTime>='2012-08-20 00:00:00'

次に、101,102,103UserIdの値を取得します。しかし、私はエラーが発生していますplease help

4

6 に答える 6

4

BETWEENこれにははるかに優れています。DateTimeまた、予約語なので脱出する必要があります。

SELECT * 
FROM   AM_TIMETABLE 
WHERE  `DateTime` BETWEEN '2012-08-08 00:00:00' AND '2012-08-20 00:00:00'
于 2012-08-06T11:23:46.233 に答える
2

これはうまくいくかもしれません:

select * from AM_TIMETABLE where `DateTime`<='2012-08-20 00:00:00' and `DateTime`>='2012-08-08 00:00:00'

DateTime予約語かもしれませんが、それについてはよくわかりません。その場合は、それらの周りにバッククォートが必要です(前後の単一の `)

于 2012-08-06T11:16:01.703 に答える
0

日時フィールドは引用符で囲む必要があります。

SELECT * 
FROM AM_TIMETABLE 
WHERE `DateTime` <= '2012-08-08 00:00:00' AND 
      `DateTime` >= '2012-08-20 00:00:00';

または、次のことを試すこともできます。

SELECT * 
FROM AM_TIMETABLE 
WHERE `DateTime` NOT BETWEEN '2012-08-08 00:00:00' AND '2012-08-20 00:00:00';
于 2012-08-06T11:18:10.993 に答える
0

日時の値を引用する必要があります。

于 2012-08-06T11:18:52.940 に答える
0

日付を引用符で囲む必要があります

   set @start_date='2012-08-08 00:00:00';
   set @end_date='2012-08-20 00:00:00';
   select * from AM_TIMETABLE where DateTime<=@start_date and DateTime>=@end_date
于 2012-08-06T11:20:19.233 に答える
0
SELECT * FROM AS_TIMETABLE WHERE DateTime BETWEEN CAST('2012-08-08 00:00:00' AS DATETIME) AND CAST('2012-08-08 00:00:00' AS DATETIME);
于 2019-09-22T21:23:47.990 に答える