在php中,如何从表中选择特定时间之前的行?
我想从php或sql中添加的在php中,如何从表中选择特定时间之前的行?,php,sql,postgresql,Php,Sql,Postgresql,我想从php或sql中添加的date
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;