0
私はPHPのlaravelからこのようないくつかのデータを抽出しようとしています:PHP Laravel/Oracleはタイムスタンプを比較します。どうやって?
$x = Carbon::now()->timestamp;
$data=Notifications->where('happened_at','>',$x)
->where('id_user',Auth::user()->getAuthIdentifier());
私はOracleデータベースでは、このSQL文を入力した場合、直接それが完璧に動作します:
select * from notifications where happened_at > '10-06-2017 00:11:12,000000000';
^これは、正しい返しますしかし、私のPHPのlaravelで良い行を返しません(データベースからすべての行を返します)
後編集:ここで問題は、私はちょうど私のDB( 'happened_at' )を現在の時刻と比較します。 ..私はどのようにわからない
オペレータ '>'を '<'に変更すると0行が得られるので、これも問題ではないと私は考えている別のものがあり、うまくいきました。 – Gimv13
これは 'where()'もコレクションメソッド(https://laravel.com/docs/5.4/collections#method-where)であるためです。それよりも小さい値を検索すると_everything_ PHPによって。通常、このようにクエリを実行する場合は、毎回同じです。データベースからすべてを取得し、コレクションでフィルタリングを処理させるようにします。非常に効率的な方法ではありません。 :) –
ええ、ありがとう、私はそれをあなたのやり方に切り替えました、そして今、私はどこで(比較が悪いの)エラーが発生したことに気付きました。 – Gimv13