PDOException:基于TIMESTAMP列的DATE的数据

时间:2014-12-21 17:58:50

标签: mysql pdo

不太确定为什么这不起作用。我阅读了很多帖子,但仍然无法使其发挥作用。

我可以在准备好的声明中使用“to_char”吗?

    global $db;
    $st = $db->prepare("SELECT * 
                        FROM info
                        WHERE To_char(timestampColumn, 'YYYY-MM-DD') = '$NewDateToQuery' 
                        ORDER BY timestampColumn DESC");

    $st->execute();

这非常简单 - 从基于日期的时间戳列中选择(我使用jQuery UI datepicker来选择日期)。

非常感谢任何帮助。很抱歉,这可能会出现重复...我已经阅读了其他帖子以及启动查询时建议的所有帖子。但是,我无法得到答案。

最好,

更新

目前$ NewDateToQuery看起来是YYYY-MM-DD。如果我在表中添加了一个已知记录的小时:分钟:秒,它会返回正确的信息。 我应该将timestamp列拆分为2列(1表示日期,另一列表示时间)?我认为这不是最有效的方式。

再次感谢。

2 个答案:

答案 0 :(得分:0)

为什么在其中使用To_char

试试这个

$st = $db->prepare("SELECT date_format(`timestampColumn`, '%Y-%m-%d')  as myDate
                        FROM info
                        WHERE timestampColumn= '$NewDateToQuery' 
                        ORDER BY timestampColumn DESC");

答案 1 :(得分:0)

这简直太简单了......遗憾的是,我花了一整天才使它发挥作用。 如果您需要从时间戳列中选择特定日期,则可以使用此处。

通过DATE()有条件地将列包装到查询中。见下文。 $ NewDateToQuery是一个字符串,格式为YYYY-MM-DD。

$ st = $ db-> prepare(" SELECT timestampColumn                         来自信息                         WHERE DATE(timestampColumn)=' $ NewDateToQuery'                         ORDER BY timestampColumn DESC");