2

我有这样的数据

sno name    date        time

1   Irona   2016-01-01  10:00:00
2   Meona   2016-01-02  21:00:00
3   Lessa   2016-01-02  8:00:00
4   Airik   2016-01-03  10:00:00

我正在尝试这样的查询

SELECT * FROM `appointment` where (date <= '2016-01-02' and time >= '21:00:00') and (date >= '2016-01-03' and time >= '10:00:00')

我想要那些在 2016 年 1 月 2 日和 2016 年 1 月 3 日之间以及晚上 9 点到上午 10 点之间的约会

4

3 回答 3

1

尝试这个:

SELECT * 
FROM `appointment` A
WHERE STR_TO_DATE(CONCAT(A.date, ' ', A.time), '%Y-%m-%d %H:%i:%s') BETWEEN '2016-01-02 21:00:00' AND '2016-01-03 10:00:00'
于 2016-01-05T09:46:08.823 回答
0

我会这样做:

...
WHERE
to_char(date, '%Y%m%d') between '20160102' and '20160103'
AND to_char(timedate, '%H') between '10' and '21'
于 2016-01-05T09:57:49.960 回答
0

查询date <= '2016-01-02' and date >= '2016-01-03'不返回任何内容。你应该把它改成date >= '2016-01-02' and date <= '2016-01-03'

SELECT * FROM `appointment` 
where date >= '2016-01-02' and date <= '2016-01-03' 
and time <= '21:00:00' and time >= '10:00:00'
于 2016-01-05T09:45:54.513 回答