我有一个名为$date的变量,其日期格式类似于2012-01-30。另一方面,我在mysql表中有一个名为srt_date_sortie的字段。该字段的格式类似于2012-01-30 11:31:00。我想选择$date和srt_date_sortie具有相同日期的所有记录,而不考虑时间。希望有人能帮上忙。
mysql_query("SELECT * FROM sorties WHERE srt_date_sortie = '$date'");下面是我是如何构建$date的:
++$input;
$test=$input." days";
$date=date('Y-m-d', strtotime($test));提前感谢您的回复。干杯。Marc
发布于 2012-02-08 18:32:13
出于性能原因,您应该避免与DATE(srt_date_sortie)这样的派生列进行比较,因为这将阻止使用任何索引。这否定了已经发布的一些解决方案。
查询DATETIME字段的最有效方法是使用范围查询,如下所示:
mysql_query("SELECT * FROM sorties WHERE srt_date_sortie BETWEEN '$date 00:00:00' AND '$date 23:59:59'");除非需要表中的所有行,否则SELECT *可能效率不高,只列出需要检索的行。
发布于 2012-02-08 18:20:51
将查询更改为日期、开始时间和结束时间的BETWEEN关键字。
发布于 2012-02-08 18:19:08
您可以在mysql中使用DATE_FORMAT格式化日期。
mysql_query("SELECT * FROM sorties
WHERE DATE_FORMAT(srt_date_sortie,'%Y-%m-%d') = '$date'");https://stackoverflow.com/questions/9191324
复制相似问题