用于MySQL查询的PHP中的当前和前一天
我正在编写一个查询,它应该只返回当天的数据,并希望使用结束时间和开始时间 像这样的用于MySQL查询的PHP中的当前和前一天,php,mysql,Php,Mysql,我正在编写一个查询,它应该只返回当天的数据,并希望使用结束时间和开始时间 像这样的 $endtime = date ("Y-m-d H:i:s"); $starttime = date ("Y-m-d H:i:s") - 1; // Not working.. $sql = "select * from tbl_order where transdate between $starttime and $endtime"; 你能帮忙吗 RJ无法100%确定您试图实现的目标,但如果您希望在过去
$endtime = date ("Y-m-d H:i:s");
$starttime = date ("Y-m-d H:i:s") - 1; // Not working..
$sql = "select * from tbl_order where transdate between $starttime and $endtime";
你能帮忙吗
RJ无法100%确定您试图实现的目标,但如果您希望在过去24小时内获得订单(注意:不是最后一天),则可以:
$endtime = date ("Y-m-d H:i:s");
$starttime = date ("Y-m-d H:i:s", (time() - (60*60*24)));
尽管我认为使用纯SQL更简洁。关键字
between
对日期值而不是字符串进行操作
<?php
$jan = '2014-01';
$feb = '2014-02';
$sql = "select record_ts from table where date(record_ts)
between str_to_date('$jan', '%Y-%m')
and str_to_date('$feb', '%Y-%m');
";
?>
date(transdate)=CURDATE()
?另请参见单个时间点之间的@Dagon@如果这是他想要的,那么纯sql版本是:transdate>NOW()-间隔1天
mysql> select record_ts from table where date(record_ts)
between '2014-01'
and '2014-02' ;
Empty set, 2 warnings (0.01 sec)
mysql> select record_ts from table where date(record_ts)
between str_to_date('2014-01', '%Y-%m')
and str_to_date('2014-02', '%Y-%m');
(...)
1119 rows in set (0.01 sec)
$ mysql --version
mysql Ver 14.14 Distrib 5.1.70, for pc-linux-gnu (x86_64) using readline 5.1