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,103 UserId 的值。但我收到错误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

You need to quote the datetime values.

于 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 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
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 回答