如何在php中特定时间前从表中选择行?

时间:2013-05-13 21:09:58

标签: php sql postgresql

我想从php或sql中添加date< today-15天的表中选择所有行。

示例:

SELECT  * FROM order WHERE date_added< (now()-15days).

我该怎么做?

3 个答案:

答案 0 :(得分:4)

您可能希望使用datestrtotime功能

$fiftendaysago = date('Ymd',strtotime("-15 days"));

现在查询

$sql = "SELECT  * FROM order WHERE date_added< '$fiftendayago' ";

答案 1 :(得分:3)

在php中构建日期

<?php

$DateString = date('Ymd', strtotime('-15 days'));

$sql = "SELECT  * FROM order WHERE date_added< '$DateString' ";

//Execute your SQL and do your stuff.

答案 2 :(得分:1)

我通常使用date_diff函数

所以sql查询看起来像

SELECT  * FROM order WHERE date_diff(now(), date_added) < 15 ;

它自己的功能

CREATE OR REPLACE FUNCTION date_diff(date, date)
 RETURNS integer AS
 $BODY$
 select $1-$2; $BODY$
LANGUAGE 'sql' VOLATILE
COST 100;

数据库将进行计算。你可以使用变量传递日期的间隔。