我是新手。我想生成一個報告來計算時間戳在兩個日期之間的MySQLi記錄。每條記錄都有一個timestamp
字段,該字段在MySQLi創建時自動生成。當我在phpMyAdmin中查看時間戳時,它們顯示爲以下格式2015-12-31 19:25:51
。比較MySQLi中的日期WHERE子條款
我有一個PHP頁面,使用單選按鈕選擇「Last 7 days」,「Last 30 days」,「自開始記錄」等HTML表單輸入。基於這個選擇,我有一個Javascript創建startdate和enddate變量作爲DATE對象,我使用JQuery $ .post將這些變量發送到另一個PHP頁面來執行查詢。
我開始寫SQL查詢。我想是這樣
$startdate = $_POST["startdate"];
$enddate = $_POST["enddate"];
$con = mysqli_connect("localhost","username","password","db");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="SELECT * FROM dbtable WHERE timestamp BETWEEN $startdate AND $enddate";
if ($result = mysqli_query($con,$sql)) {
$count = mysqli_num_rows($result);
}
的代碼工作正常,如果我沒有一個WHERE款(當然只計算所有記錄這是不是我要找的)。所以我知道問題在於WHERE子句中。我懷疑問題是MySQLi時間戳格式與我發佈的變量的JS DATE對象格式不同。如果我可以將時間戳和JS變量轉換爲整數(可能表示1970年1月1日以後的毫秒或類似),那麼比較就可以工作。
你已經用單引號或'#'符號完成了'$ startdate'和'$ enddate'嗎? – Cyval