首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询的当前和前一天

问查询的当前和前一天
EN

Stack Overflow用户
提问于 2014-03-03 02:15:14
回答 2查看 81关注 0票数 0

我正在编写一个查询,它应该只返回当前一天的数据,并且希望使用结束时间和开始时间。

就像这样。

代码语言:javascript
复制
$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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-03 02:26:56

不能百分之百确定你要达到什么目的,但是如果你想从过去的24小时(注意:不是最后一天)得到订单,这就可以了:

代码语言:javascript
复制
$endtime = date ("Y-m-d H:i:s");
$starttime = date ("Y-m-d H:i:s", (time() - (60*60*24)));

尽管我要说,用纯SQL来完成这个任务更合适。

票数 0
EN

Stack Overflow用户

发布于 2014-03-03 02:34:41

between关键字操作日期值,而不是字符串。

代码语言:javascript
复制
<?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');
       ";
?>

注意,我必须将record_ts转换为(MySQL)日期,因为列被定义为时间戳,所以还必须转换日期字符串。

。。。

卡尔·马斯卡姆,你的评论可能对MySQL的最新版本有效。

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22137561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档