#sql #postgresql #timestamp #aggregate-functions #olap-cube
#sql #postgresql #временная метка #агрегатные функции #olap-куб
Вопрос:
У меня есть запрос SELECT для извлечения нужных мне данных. Одной из необходимых данных является «агрегированная» функция для выбора двух дат временных меток и вычисления разницы между ними. Используя несколько ресурсов и веб-сайтов, все они дали мне сохранить ответ, и он не сработал:
DECLARE @DATE1 TIMESTAMP = actual_route.end_location_time
DECLARE @DATE2 TIMESTAMP = actual_route.actual_trip_start_time
SELECT
CONVERT (TIMESTAMPDIFF, @DATE1, @DATE2) AS time_taken, actual_route.time as date_time
Я получаю сообщение об ошибке «@»: синтаксическая ошибка в или рядом с «@»
(Это только часть кода, но ошибка здесь)
Комментарии:
1. Просто вычтите их: postgresql.org/docs/current/functions-datetime.html
Ответ №1:
Вы можете использовать разницу в Postgres:
select (actual_route.end_location_time - actual_route.actual_trip_start_time) as duration
Я не уверен, почему вы используете синтаксис SQL Server для этого. Я также не знаю, что timestampdiff
должно быть.
Комментарии:
1. я создаю OLAP-куб, в котором разница между двумя временными метками является мерой для куба
2. функция «timestamdiff» — это то, что я нашел в Интернете
3. @JanaNizam . , , Хотя это функция в некоторых базах данных, я никогда не видел ее в качестве аргумента
convert()
.