【问题标题】:Query records based on datetime column根据日期时间列查询记录
【发布时间】:2011-03-31 00:55:41
【问题描述】:

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' );

但它不匹配任何记录。没有时间部分如何查询。

谢谢

【问题讨论】:

    标签: php mysql zend-framework datetime zend-db


    【解决方案1】:

    试试这个WHERE DATE(tableName.columnName) = '2008-02-15'

    【讨论】:

      【解决方案2】:

      @Shota 提供的答案会起作用,但它会阻止 MySQL 使用 datetime 列上的任何索引,因为必须在表的每一行上调用 DATE 函数来查看它是否匹配。

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

      例如。 $select->where('tableName.columnName >= ? AND tableName.columnName <= ?', '2008-02-15 00:00:00', '2008-02-15 23:59:59' );

      请注意,我的 php 语法可能有误,但你应该明白。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多