Php 基于日期时间列的查询记录

Php 基于日期时间列的查询记录,php,mysql,zend-framework,datetime,zend-db,Php,Mysql,Zend Framework,Datetime,Zend Db,我在MySql表中有一个类型为datetime的列。存储值如下所示: 2008-02-15 17:21:56 2008-02-15 17:22:02 2008-02-15 17:22:03 现在我想根据这个列查询一些记录,但我只有日期部分,没有时间部分。 所以我在zend中这样询问 $select->where('tableName.columnName = ?', '2008-02-15' ); 但它与任何记录都不匹配。如果没有时间段,我如何查询 谢谢试试这个WHERE DATE(t

我在MySql表中有一个类型为datetime的列。存储值如下所示:

2008-02-15 17:21:56
2008-02-15 17:22:02
2008-02-15 17:22:03
现在我想根据这个列查询一些记录,但我只有日期部分,没有时间部分。 所以我在zend中这样询问

$select->where('tableName.columnName = ?', '2008-02-15' );
但它与任何记录都不匹配。如果没有时间段,我如何查询


谢谢

试试这个
WHERE DATE(tableName.columnName)='2008-02-15'
试试这个
WHERE DATE(tableName.columnName)='2008-02-15'
这个@Shota提供的答案会起作用,但是,它会阻止MySQL在datetime列上使用任何索引,因为必须对表的每一行调用DATE函数,以查看它是否匹配

如果将时间范围硬编码到查询中,它将给出相同的结果,并且仍然允许使用索引


例如,
$select->where('tableName.columnName>=?和tableName.columnNameShota提供的答案将起作用,但是它将阻止MySQL在datetime列上使用任何索引,因为必须对表的每一行调用DATE函数以查看它是否匹配

如果将时间范围硬编码到查询中,它将给出相同的结果,并且仍然允许使用索引

例如,
$select->where('tableName.columnName>=?和tableName.columnName