replace curdate() - 带$ variable - interval的区间

时间:2013-06-17 07:57:26

标签: php mysql

下面的代码是选择然后从我的数据库中回显按周或月分组的内容。我有几个这样的,然后使用偏移来获得第二周等。

FROM my_db WHERE DATE >= CURDATE() - INTERVAL 10 ".$grouping1." GROUP BY ".$grouping."(DATE) order by DATE desc limit 1

我有两个问题:

  1. 我想用变量交换curdate(),以便我们能够“选择一个开始日期”,然后从该日期开始查看10周/月。

  2. 有更简单/更好的方法吗?

  3. 我试图用这样的变量交换curdate:

    FROM my_db WHERE DATE >= '". $startdate ."' - INTERVAL 10 ".$grouping1." GROUP BY ".$grouping."(DATE) order by DATE desc limit 1
    

    但即使变量(开始日期)发生变化,周/月保持不变。

    编辑:我的$ startdate变量的格式与2013-05-07类似,而mysql db中的DATE列是日期格式。

    和平 /的Adis

2 个答案:

答案 0 :(得分:1)

类似的东西:

FROM my_db WHERE DATE >= '".date(Y-m-d, strtotime($my_date))."'

会工作

答案 1 :(得分:0)

试试这个。

这将从当前日期减去10个月

FROM my_db WHERE DATE >= '".date("Y-m-d", strtotime("-10 months"))."'

这将从当前日期减去10周

FROM my_db WHERE DATE >= '".date("Y-m-d", strtotime("-10 weeks"))."'