查询大于时间两小时(例:订单设置两小时后过期

$res = Order::where(['status'=>0,'sid'=>1])->whereRaw("created_at < NOW() - INTERVAL 2 HOUR")->get();

时间字段< NOW() - INTERVAL 2 HOUR

解读:当前时间减去2小时(HOUR)如果还大于下单时间则超过

查询当天、昨天等数据 用于统计

public function senior(Request $request)
{
$Sid = $request->session()->get('SUserId');
if ($request->ajax()){
//查询今天订单数据
$dateD = date('Y-m-d');
//我也看不懂。。。有时间研究
$data = DB::select(
"SELECT IF(count IS NULL, 0, count) as num FROM (SELECT count(*) AS count,DATE_FORMAT(created_at, '%H') AS hour
FROM lkx_orders where date_format(created_at,'%Y-%m-%d') = '$dateD' GROUP BY hour ORDER BY 1) A
RIGHT JOIN (SELECT one.hours + two.hours AS dayHour
FROM (SELECT 0 hours
UNION ALL SELECT 1 hours
UNION ALL SELECT 2 hours
UNION ALL SELECT 3 hours
UNION ALL SELECT 4 hours
UNION ALL SELECT 5 hours
UNION ALL SELECT 6 hours
UNION ALL SELECT 7 hours
UNION ALL SELECT 8 hours
UNION ALL SELECT 9 hours) one
CROSS JOIN (SELECT 0 hours UNION ALL SELECT 10 hours UNION ALL SELECT 20 hours) two
WHERE (one.hours + two.hours) < 24) B ON A.hour = CONVERT(B.dayHour, SIGNED) ORDER BY dayHour"
);
$orderNum = array_column($data,'num'); $data7D = date('Y-m-d',strtotime("-6 day")); $data = DB::select("
SELECT t1.date_str , COALESCE(t2.date_total_countss,0) as date_total_count
FROM(
SELECT @cdate:= date_add(@cdate,interval - 1 day) as date_str
FROM (SELECT @cdate:=date_add(CURDATE(),interval + 1 day) from lkx_orders) tmp1
WHERE date_format(@cdate,'%Y-%m-%d') >'$data7D'
) t1
LEFT JOIN(
SELECT date_format(m.created_at, '%Y-%m-%d') as date_str , sum(price) as date_total_countss
FROM lkx_orders as m
WHERE date_format(m.created_at,'%Y-%m-%d') >'$data7D' and m.status=1 and sid=$Sid
GROUP BY date_str
) t2
on t1.date_str = t2.date_str
order by t1.date_str asc
"); $price7D['data'] = array_column($data,'date_total_count');
$price7D['title'] = array_column($data,'date_str'); $dataMyM = date("Y-m-d",mktime(0, 0 , 0,date("m"),2,date("Y"))); $data = DB::select("
SELECT t1.date_str , COALESCE(t2.date_total_countss,0) as date_total_count
FROM(
SELECT @cdate:= date_add(@cdate,interval - 1 day) as date_str
FROM (SELECT @cdate:=date_add(CURDATE(),interval + 1 day) from lkx_orders) tmp1
WHERE date_format(@cdate,'%Y-%m-%d') >= '$dataMyM'
) t1
LEFT JOIN(
SELECT date_format(m.created_at, '%Y-%m-%d') as date_str , sum(price) as date_total_countss
FROM lkx_orders as m
WHERE date_format(m.created_at,'%Y-%m-%d') >= '$dataMyM' and m.status=1 and sid=$Sid
GROUP BY date_str
) t2
on t1.date_str = t2.date_str
order by t1.date_str asc
"); $priceMyM['data'] = array_column($data,'date_total_count');
$priceMyM['title'] = array_column($data,'date_str'); //获取上个月数据统计
$dataUpM = date("Y-m-d",mktime(0, 0 , 0,date("m")-1,30,date("Y"))); $Mnum = date("t",strtotime("-1 month")); $dataUpYm = date('Y-m',strtotime("-1 month")); $data = DB::select("
SELECT t1.date_str , COALESCE(t2.date_total_countss,0) as date_total_count
FROM(
SELECT @cdate:= date_add(@cdate,interval - 1 day) as date_str
FROM (SELECT @cdate:=date_add('$dataUpM',interval + 1 day) from lkx_orders) tmp1
limit $Mnum
) t1
LEFT JOIN(
SELECT date_format(m.created_at, '%Y-%m-%d') as date_str , sum(price) as date_total_countss
FROM lkx_orders as m
WHERE date_format(m.created_at,'%Y-%m') = '$dataUpYm'
GROUP BY date_str
) t2
on t1.date_str = t2.date_str
order by t1.date_str asc
"); $priceUpM['data'] = array_column($data,'date_total_count');
$priceUpM['title'] = array_column($data,'date_str'); return array(
'orderNum'=>$orderNum,
'priceMyM'=>$priceMyM,
'price7D'=>$price7D,
'priceUpM'=>$priceUpM,
);
}
}

新手经百度查询等方式写的、如有更好方案请指点一番...

关于sql时间方面的处理的更多相关文章

  1. 常用SQL时间格式SQLServer中文版的默认的日期字段datetime格式是yyyy-mm-d

    常用SQL时间格式 SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm 例如: select getdate() -- ::08.177 ...

  2. SQL 时间格式化函数发布

    SQL 时间格式化函数,有时候因某种需要需要格式化成需要的时间格式,需要的朋友可以收藏下,以备后用. SQL Server里面可能经常会用到的日期格式转换方法: sql server使用convert ...

  3. SQL 时间处理

    1.获取当前时间 GetDate() 2.获取当前年.月.日 DATEPART(yyyy,GetDate()).DATEPART(m,GetDate()).DATEPART(d,GetDate()) ...

  4. 转 sql 时间转换格式 convert(varchar(10),字段名,转换格式)

    convert(varchar(10),字段名,转换格式) CONVERT(nvarchar(10),count_time,121)CONVERT为日期转换函数,一般就是在时间类型(datetime, ...

  5. SQL时间第二期_时间格式化

    0   或   100   (*)     默认值   mon   dd   yyyy   hh:miAM(或   PM)       1   101   美国   mm/dd/yyyy       ...

  6. SQL时间第一期_获取系统年月日时分秒

    select GETDATE() as '当前日期',DateName(year,GetDate()) as '年',DateName(month,GetDate()) as '月',DateName ...

  7. sql时间格式

    取值后格式化 {:d}小型:如2005 {:D}大型:如2005年5月6日 {:f}完整型 当前时间获取 DateTime.Now.ToShortDateString 取值中格式化 SQL Serve ...

  8. 【MySQL】Java对SQL时间类型的操作(获得当前、昨天、前年。。时间)

    Java获得当前时间 java.util.Date date = new java.util.Date(); Timestamp time = new Timestamp(date.getTime() ...

  9. (转)sql 时间转换格式 convert(varchar(10),字段名,转换格式)

    convert(varchar(10),字段名,转换格式) CONVERT(nvarchar(10),count_time,121) CONVERT为日期转换函数,一般就是在时间类型(datetime ...

  10. SQL时间格式化

    1 取值后格式化 {:d}小型:如2005 {:D}大型:如2005年5月6日 {:f}完整型 2 当前时间获取 DateTime.Now.ToShortDateString 3 取值中格式化SQL ...

随机推荐

  1. lg9019题解

    容易发现,向左跳是不优的. 而且除了最后一次跳跃,每次跳跃一定跳到现在能够跳到的最右的区间. 设\(r_i\)表示第\(i\)个区间能够跳到的最右的区间,\(l_i\)表示第\(i\)个区间能够跳到的 ...

  2. Docker中使用Jenkins(3)

    一.前言 上一文章介绍了docker-compose,本文介绍Jenkins自动化部署. 二.Jenkins dockerfile文件切记右键属性复制到输出目录调整为:如果较新则复制,否则在publi ...

  3. Android studio学习笔记3

    Android studio学习笔记3 RelativeLayout常见属性 相对于父元素给控件布局 android:layout_centerHrizontal 若为ture水平居中 android ...

  4. c++ 从编译到执行

    参考博客 原理分析 结合实例 看别人的博客上拼出答案.不会就先模仿吧. 这个是今日头条面试时候的一个题目,当时别提答的多烂了,感觉一个题目准备深了还是非常耗费时间的.小论文一样.c/c++从编译到执行 ...

  5. C++ 中的匿名函数(lambda表达式)

    问题引入 使用std::sort函数对自定义类型排序时,我们需要传入一个比较函数作为参数.该比较函数只需要使用一次,但占有一个全局命名域中的名字,而且非常短,短到不需要名字就知道它的作用.这很浪费命名 ...

  6. java运算符相关学习

    java运算符 面试题1: 计算2*8如何操作效率更高? 剖析: 2 * 8 => 实际上是2 * 2 * 2 * 2 2<<3 System.out.println(2<&l ...

  7. 【vite+pinia】

    vite 轻量快速热重载,开发环境中不需要打包操作,可以快速冷启动 按需编译,不需要等待整个应用编译完成 pinia 支持vue2和vue3,是vue专属的状态管理库,允许跨组件或者页面 共享状态 与 ...

  8. 073_SFDC Limit

    我们在开发的过程中,应多注意一些系统自身的限制,以及遇到此类问题的应对措施: Description Synchronous Limit Asynchronous Limit Total number ...

  9. docker私有镜像仓库搭建(简)

    1.装包 yum install docker-registry 2.启动服务 systemctl start docker-distribution 3.打标自己的镜像 docker tag mys ...

  10. react native 中 fetch获取请求头header 的token信息

    首先说一句,所有请求,都要带一个token信息,很难受啊,我目前直接将token信息放在global下自定的属性里面.(本地存储Storage和AsyncStorage,取一下,好麻烦) global ...