Как узнать разницу во времени между двумя отметками даты и оформить заказ по убыванию - PullRequest
2 голосов
/ 10 июня 2019

Мне нужна разница во времени между двумя датами в часах, и мне нужно расположить их в порядке убывания, чтобы получить медиану

SELECT "fulfillmentshistories"."fulfillmentid" as "Fulfillment ID" FROM FULFILLMENTHISTORIES
WHERE (Fulfillments."status" IN ('paid','delivered') AND (DATE("fulfillmenthistories"."createdAt") BETWEEN DATE('{{startDate}}') AND DATE('{{endDate}}')))
union
SELECT DATEDIFF(HOUR,   'startDate'-'endDate') as DATEDIFF;
ORDER BY DATEDIFF, DESC

Это то, что я пытался, пожалуйста, помогите

SELECT "fulfillmentshistories"."fulfillmentid" as "Fulfillment ID" FROM    FULFILLMENTHISTORIES
WHERE (Fulfillments."status" IN ('paid','delivered') AND (DATE ("fulfillmenthistories"."createdAt") BETWEEN DATE('{{startDate}}') AND DATE('{{endDate}}')))
union
SELECT DATEDIFF(HOUR,   'startDate'-'endDate') as DATEDIFF;
ORDER BY DATEDIFF, DESC

Ошибка при выполнении запроса: синтаксическая ошибка в строке "ORDER" или рядом с ней. 5: ORDER BY DATEDIFF, DESC ^

Ответы [ 2 ]

0 голосов
/ 10 июня 2019
UNION
SELECT DATEDIFF(HOUR,   'startDate'-'endDate') as DATEDIFF;
ORDER BY DATEDIFF, DESC

должно быть

UNION
SELECT DATEDIFF(HOUR,   'startDate'-'endDate') as DATEDIFF
ORDER BY DATEDIFF DESC;

Удалите точку с запятой после DATEDIFF и запятую после ORDER BY DATEDIFF. Точка с запятой должна идти в конце оператора SQL, поскольку все это - один оператор SQL.

0 голосов
/ 10 июня 2019
SELECT DATEDIFF(HOUR, 'startDate'-'endDate') as DATEDIFF; ORDER BY DATEDIFF, DESC

должно быть

SELECT DATEDIFF(HOUR, 'startDate'-'endDate') as DATEDIFF ORDER BY DATEDIFF, DESC ;

и стараться избегать псевдонимов, похожих на имя функции.

...