0

好的,所以我想在我的 SQL 语句中使用 LIKE 运算符来匹配数据库查询。

我正在查看一个包含日期和时间的字段,就像这样

2012-04-27 12:00:00

我只想比较字符串的第一部分,只是日期位,所以我使用 LIKE 但我没有得到任何匹配。

这是代码

$colname_cruises = "-1";
if (isset($_GET['id'])) {
$colname_cruises = str_replace('-', ' ', $_GET['id']);
}

$colname_date = "-1";
if (isset($_GET['date'])) {
$colname_date = $_GET['date'];
}

$query_cruises = sprintf("SELECT * FROM cruises WHERE title = %s AND departs LIKE %s", GetSQLValueString($colname_cruises, "text"), GetSQLValueString($colname_date, "text"));
$cruises = mysql_query($query_cruises, $connection) or die(mysql_error());
$row_cruises = mysql_fetch_assoc($cruises);
$totalRows_cruises = mysql_num_rows($cruises);

我很确定仅仅做一个 LIKE %s 是不够的......我还能在这里添加什么?

4

3 回答 3

1

对于日期比较,您可以使用 between。尝试使用类似的东西:

departs between <date> and DATE_ADD(<date>,INTERVAL 1 DAY)
于 2012-08-22T09:08:56.283 回答
1

如果您只想比较字符串的第一部分,只是日期,那么为什么不使用MySQL DATE()

提取日期或日期时间表达式 expr 的日期部分

 SELECT DATE('2003-12-31 01:02:03');
   -> '2003-12-31'
于 2012-08-22T09:08:26.860 回答
0

请试试

 "SELECT * FROM cruises WHERE title = '".$colname_cruises."' AND departs LIKE '".$colname_date."%'";

如果要获取包含此日期的起始值起始字符串的记录,则必须使用Like $str%.

谢谢

于 2012-08-22T09:16:56.937 回答