从两列中选择较少的日期时间

时间:2018-06-07 12:36:30

标签: mysql sql laravel laravel-5.3

这个问题很难解释,但我会尽力而为。我有两张桌子;这是在特定时间

之间的计数列查询

finaltrades表格结构:

 id   user_id   exchange_id   market_id   symbol_id      buy_datetime          sell_datetime      buy_rate   sell_rate   quantities  
 ---- --------- ------------- ----------- ----------- --------------------- --------------------- ---------- ----------- ------------ 
   1         1             1           1          96   2018-05-25 18:13:26   0000-00-00 00:00:00       2205           0          100  
   2         1             1           1          96   0000-00-00 00:00:00   2018-05-25 18:13:59          0        6680          100  
   3         4             1           1          23   2018-05-25 18:16:27   0000-00-00 00:00:00          0           0           10  
   4         1             1           1          96   2018-05-25 18:13:59   0000-00-00 00:00:00      50351           0           30  
   5         1             1           1          15   0000-00-00 00:00:00   2018-05-25 18:34:46          0         100          150  
   6         4             1           1         573   2018-05-26 09:29:17   2018-05-27 03:10:09         10          10           10  
   7         1             1           1          15   2018-05-11 09:30:54   2018-05-25 18:34:56         40         100           40

buy_datetime表格结构:

sell_datetime

finaltrades表格中有两列buy_datetimesell_datetime。 从DB::raw('exchanges.start_time')public function firstHourTrades(){ $user_id = Auth::user()->id; $data = DB::table('finaltrade') ->join('exchanges', 'finaltrade.exchange_id', '=', 'exchanges.id') ->select('finaltrade.*') ->where('finaltrade.user_id', $user_id) ->whereTime('finaltrade.LESS-DATE', '>=', DB::raw('exchanges.start_time')) ->whereTime('finaltrade.LESS-DATE', '<=', DB::raw("ADDTIME(exchanges.start_time, '01:00:00')")) ->count(); return response()->json($data); } 更短的日期时间,我想将其与sudo tcpdump -A -s 0 'tcp port 4444 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' -i lo0 进行比较。

{"message":"body"}
14:29:07.725362 IP localhost.64258 > localhost.krb524: Flags [P.],seq 1004:1579, ack 469, win 11768, options [nop,nop,TS val 1448865401 ecr 1448865398], length 575 E..s..@.@..............\...^Z.>...-..h.....
V[.yV[.vPOST /v2/8387efc52b0b6b14e83bcd1d1951bdb2 HTTP/1.1
Content-Type: application/json; charset=utf-8

1 个答案:

答案 0 :(得分:0)

我建议使用DB :: raw进行选择

$data = DB::table('finaltrade')
        ->join('exchanges', 'finaltrade.exchange_id', '=', 'exchanges.id')
        ->select(\DB::raw('finaltrade.*, IF(finaltrade.buy_datetime<finaltrade.sell_datetime, finaltrade.buy_datetime, finaltrade.sell_datetime) as less_date'))
        ->where('finaltrade.user_id', $user_id)
        ->whereTime('less_date', '>=', DB::raw('exchanges.start_time'))
        ->whereTime('less_date', '<=', DB::raw("ADDTIME(exchanges.start_time, '01:00:00')"))
        ->count();