簡體   English   中英

PHP的MySQL日期比較大於和小於運算符

[英]php mysql date comparing with greater than and smaller than operator

我在使用php的Mysql datebase中比較日期時遇到問題。我的日期字段在DATETIME中,我在下面使用以下查詢,但未返回正確答案,請幫助我..這是代碼

"SELECT * FROM record WHERE Dateincident  >=  $from AND Dateincident <=$to";

$ from和$ to是從jquery datepicker獲得的輸入。

首先,您必須在日期時間值周圍加上引號

$sql = "SELECT * FROM record WHERE Dateincident >= '$from' AND Dateincident <= '$to'";
                                                   ^     ^                     ^   ^

這相當於

$sql = "SELECT * FROM record WHERE Dateincident BETWEEN '$from' AND '$to'";

現在$from$to應該采用正確的格式

'YYYY-MM-DD' or 'YYYY-MM-DD HH:NN:SS'

喜歡

$from = '2013-06-01';
$to   = '2013-06-26';

這是SQLFiddle演示

另外,請考慮使用准備好的語句,而不是通過將sql語句與值連接來構造查詢字符串。

可能是這樣的:

SELECT * 
FROM record 
WHERE Dateincident BETWEEN <from> AND <to>

我在此sql小提琴中對其進行了測試,並且可以正常工作。

但是可能的問題不是您的SQL查詢,而是您的php腳本。 因此,請嘗試以下操作:

$mysqlhost="yourDBHost";
$mysqluser="yourMYSQLUser";
$mysqlpwd="yourMYSQLPass"; 
$mysqldb="yourDataBaseName";
$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die("Connection failed.");

mysql_select_db($mysqldb, $connection) or die("Database could not be selected.");

$query = "SELECT * FROM `record` WHERE `Dateincident` BETWEEN '".$from."' AND '".$to."'";
$rescource = mysql_query($query) or die("Error processing query.");
while($row = mysql_fetch_array($rescource)){
    // do something with each row
}

mysql_close($connection);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM