首先,你不應該在where子句中的操作符左側使用mysql函數。這樣mysql需要讀取磁盤上的完整表來計算要比較的值,而不是優化查詢速度和資源使用情況(IO,cpu)。
從你的問題和意見我明白,你正在查詢數據庫的行與$giorno_selected
代表的字符串有同一天。所以你需要找到特定日0:00到23:59之間,時間戳的所有行:
$giorno_timestamp_start = date_create_from_format('d-m-Y', $giorno_selected)->getTimestamp();
$giorno_timestamp_end = $giorno_timestamp_start + 86399; //add almost all seconds per day onto the start timestamp
$information="SELECT * FROM scheda_anagrafica WHERE time_inserted BETWEEN " . $giorno_timestamp_start. " AND ". $giorno_timestamp_end;
$result1 = mysql_query($information) or die (mysql_error());
while($row = mysql_fetch_array($result1)) {
echo $row['information1'];
}
這個作品,如果你time_inserted
列integer
型和持有unix_timestampds。 如果是datetime
型或timestamp
您需要修改本查詢:
$information="SELECT * FROM scheda_anagrafica WHERE time_inserted BETWEEN FROM_UNIXTIME(" . $giorno_timestamp_start. ") AND FROM_UNIXTIME(". $giorno_timestamp_end .")";
你好,請你解釋一下多一點? – nana
$ giorno_selcted – RomanKonz
的內容是肯定的,所以我在數據庫中有一個字段,它是一個timstamp,當前日期即;讓我們假設時間戳給我23-09-2012 12:23:45和日期變量給我23-09-2012,我需要檢查時間戳和日期是否相等,但我需要在查詢中這樣做。 – Tao