0

OKなので、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

文字列の最初の部分、つまり日付だけを比較したい場合は、MySQL DATE()を 使用しないでください。

日付または日時式exprの日付部分を抽出します

 SELECT DATE('2003-12-31 01:02:03');
   -> '2003-12-31'
于 2012-08-22T09:08:26.860 に答える
1

日付の比較には、間で使用できます。次のようなものを使用してみてください。

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

してみてください

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

この日付を含む出発値の開始文字列でレコードをフェッチする場合は、を使用する必要がありますLike $str%

ありがとう

于 2012-08-22T09:16:56.937 に答える