Привет У меня проблема в текущем запросе timestamp Я использую laravel и postgres. мой запрос, как этотLaravel postgres current_timestamp
$min_max_avg = DB::table('token_queue')
->join('token', 'token.id', '=', 'token_queue.token_id')
->select(DB::raw('MIN(serving_end_time - serving_start_time) AS min_total_serving_time'))
->whereBetween('token.generated_time',[DB::raw("date_trunc('hour', CURRENT_TIMESTAMP)"),
DB::raw("date_trunc('hour', CURRENT_TIMESTAMP + interval '1 hour')")])
->first();
, которые генерируют SQL, как этот
select
MIN(serving_end_time - serving_start_time) AS min_total_serving_time
from "token_queue" inner join "token" on "token"."id" = "token_queue"."token_id"
where "token"."generated_time" between date_trunc('hour', CURRENT_TIMESTAMP) and date_trunc('hour', CURRENT_TIMESTAMP + interval '1 hour')
так, когда я запустить этот SQL в pgAdmin он работает нормально, но это Laravel давая мне ошибку
Неверный формат DATETIME: 7 ОШИБКА: неверный входной синтаксис для типа временной метки: "date_trunc ('час', CURRENT_TIMESTAMP)"
мой стол, как этого
стол лексема
id | generated_time
196618 | 2016-10-15 01:02:48.963
196619 | 2016-10-15 01:02:50.569
196620 | 2016-10-15 01:03:12.931
196621 | 2016-10-15 02:03:17.037
196622 | 2016-10-15 02:22:55.782
196623 | 2016-10-15 02:24:57.477
196624 | 2016-10-15 03:23:00
стол token_queue
id | serving_start_time | serving_end_time | token_id
1 | 2016-10-15 01:02:48.963 | 2016-10-15 01:03:02.69 | 196618
спасибо за любые предложения.
Я не думаю, что он генерирует SQL, который вы так считаете. Я думаю, что он генерирует предложение where, содержащее заполнители, а затем передает выражения заполнителям. – harmic