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;
所以,我正在尝试 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;