不太确定为什么这不起作用。我阅读了很多帖子,但仍然无法使其发挥作用。
我可以在准备好的声明中使用“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表示日期,另一列表示时间)?我认为这不是最有效的方式。
再次感谢。
答案 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");