SQL: 如何将 'LIKE' 与日期 'between' 一起使用?

SQL: How to use 'LIKE' with a date 'between'?

所以,我正在尝试 select 两个日期之间的行。
在数据库中,日期也有时间。
因此我需要使用 LIKE.

SQL

$query = "SELECT * FROM table WHERE date >= LIKE :selectedDateFrom AND <= LIKE :selectedDateTo";

$query_params = array(':selectedDateFrom' => $selectedDateFrom.="%", ':selectedDateTo' => $selectedDateTo.="%");

这个returns错误!
它应该是什么样子?

你不能对 SQL 中的日期使用 like 所以使用这个:

$query = "SELECT * FROM table WHERE date >= :selectedDateFrom AND date <= :selectedDateTo";

In db, the dates also have time.
Therefor i need to use LIKE.

不,你不知道。

To select all date/times 其中日期分量在(from)和(to)之间,包括在内,可以写成

SELECT *
FROM table
WHERE date >= :selectedDateFrom
AND date < :selectedDateToPlusOne

(请注意 < 而不是 <=,并将第二个参数设置为一天 您要包含在结果中的最后一天之后.) 即使列包含时间,这也有效。

您可以使用 DATE() 从日期时间中删除时间部分。

SELECT * 
FROM mytable 
WHERE date(mydate) >= :selectedDateFrom 
AND date(mydate) <= :selectedDateTo;

或使用 BETWEEN 以获得更好的可读性:

SELECT * 
FROM mytable 
WHERE date(mydate) BETWEEN :selectedDateFrom AND :selectedDateTo;