好的,所以我想在我的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还不够......我还能在这里添加什么?
答案 0 :(得分:1)
如果您只想比较字符串的第一部分,只是日期,那么为什么不使用MySQL DATE()
提取日期或日期时间表达式expr的日期部分
SELECT DATE('2003-12-31 01:02:03');
-> '2003-12-31'
答案 1 :(得分:1)
对于日期比较,您可以使用。 尝试使用类似的东西:
departs between <date> and DATE_ADD(<date>,INTERVAL 1 DAY)
答案 2 :(得分:0)
请尝试
"SELECT * FROM cruises WHERE title = '".$colname_cruises."' AND departs LIKE '".$colname_date."%'";
如果你想获取记录,其中离开值的起始字符串包含此日期,那么你必须使用Like $str%
。
谢谢