在DQL中查询表以获取过去一周创建的记录

发布于 2024-11-18 10:17:16 字数 314 浏览 3 评论 0原文

我正在尝试在 Doctrine 中编写一个查询,该查询将返回在一定天数内添加的记录,我的查询中有这一行,但没有按预期工作:

$q->andWhere('g.date_added >= ?', array(strtotime('-'.$recent_interval.' day')));

date_added 是 mySQL 时间戳。

centre_interval 是天数。

我正在使用 Doctrine-1.2.4 和 Zend Framework 1.11.7

感谢您的帮助。

I'm trying to write a query in Doctrine that will return records added within a certain numbr of days, I have this line in my query but doesn't work as expected:

$q->andWhere('g.date_added >= ?', array(strtotime('-'.$recent_interval.' day')));

date_added is a mySQL timestamp.

recent_interval is number of days.

I am using Doctrine-1.2.4 with Zend Framework 1.11.7

Appreciate the help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

A君 2024-11-25 10:17:16

MySQL 时间戳的格式为YYYY-MM-DD HH:MM:SS。您将其与 UNIX 时间戳 进行比较,后者是从 strtotime()< 返回的数字/代码>

您需要首先将 UNIX 时间戳转换为 MySQL 时间戳才能使其工作。

要格式化 UNIX 时间戳,您可以使用 PHP date()函数。格式为Ymd H:i:s

例子:

$compare = date('Y-m-d H:i:s', strtotime('-'.$recent_interval.' day'));
$q->andWhere('g.date_added >= ?', array($compare));

The format of a MySQL timestamp is YYYY-MM-DD HH:MM:SS. You're comparing it with a UNIX timestamp which is a number returned from strtotime().

You need to convert the UNIX timestamp into a MySQL timestamp first to make it work.

To format a UNIX timestamp, you can make use of the PHP date() function. The format is Y-m-d H:i:s.

Example:

$compare = date('Y-m-d H:i:s', strtotime('-'.$recent_interval.' day'));
$q->andWhere('g.date_added >= ?', array($compare));
掐死时间 2024-11-25 10:17:16

您忘记将数组更改为 Doctrine 可以理解的内容:

以下内容向您展示了该怎么做:

->andWhere('g.date_added >= ?', date('Ymd', strtotime("-2 周")))

You've forgotten to change the array to something Doctrine understands:

The following shows you what to do:

->andWhere('g.date_added >= ?', date('Y-m-d', strtotime("-2 weeks")))

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文