【发布时间】:2009-09-29 21:06:13
【问题描述】:
从表中仅选择过去 7 天内创建的行的最佳方法是什么?
MySQL 中有几十个时间和日期函数,我有点不知道什么是最简单的方法。
为了这个问题,假设您有一个名为“my_table”的表,它包含一行“created_at”,它是一个 DATETIME。
SELECT * FROM my_table WHERE ...
你会在 WHERE 子句中填写什么?
【问题讨论】:
-
嗯,有几种方法可以做到这一点。但是,如果您使用一种语言来构建查询,那将会改变一些事情。
-
@brandon,不是真的,您应该使用数据库来执行此操作,而不是应用层。
-
做同一件事的方法太多了。所以社区 rox!
-
@Byron:是的,MySQL 也是如此,尽管正如 Richard 所说,哇 日期/时间函数的数组令人眼花缭乱。 :-)
-
@Brandon Hansen:我实际上是在使用 Zend Framework 及其组件(Zend_Db_Table、Zend_Db)来创建 sql 查询,但这并没有改变任何事情。你可以很好地只取一个 where 对象并将一个像 'AND field = 5' 这样的字符串连接到它。