まず、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 .")";