Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中,如何从表中选择特定时间之前的行?_Php_Sql_Postgresql - Fatal编程技术网

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

在php中,如何从表中选择特定时间之前的行?,php,sql,postgresql,Php,Sql,Postgresql,我想从php或sql中添加的date

我想从php或sql中添加的
date
days的表中选择所有行

例如:

SELECT  * FROM order WHERE date_added< (now()-15days).
从添加日期的订单中选择*<(现在()-15天)。
我如何才能做到这一点?

用php构建日期

<?php

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

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

//Execute your SQL and do your stuff.
您可能希望使用和运行

现在是查询

$sql = "SELECT  * FROM order WHERE date_added< '$fiftendayago' ";
$sql=“从添加日期的订单中选择*”<'fiftendayago';

我通常使用日期差异函数

因此,sql查询将如下所示

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

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

在php中生成时间值“-15天”,如果数据库和应用程序主机不同,与数据库生成的日期进行比较可能会有问题。确保两个日期都是指同一个主持人。这是一个公平的观点,但通常不太担心15天!
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;