Доброго времени суток. Есть запрос к действующей продажной БД. СУБД Firebird 2.1. Запрос выполняется через isql.
SELECT
C.CODE AS "Табельный",
C.NAME AS "Ф.И.О.",
T.TRANZDATE AS "Дата",
max(T.TRANZTIME) AS "Время",
T.INFOSTR AS "Карта",
sum(T.SUMM) AS "Сумма"
FROM
DOCUMENT D
LEFT JOIN TRANZT T ON D.ID = T.DOCUMENTID
JOIN CLIENT C ON T.INFO2 = C.CODE -- òàá íîìåð
WHERE
T.TRANZDATE = cast('now' as date) and
T.TRANZTIME >='20:00:00' AND T.TRANZTIME <='08:00:00' AND
D.STATE = 1 AND
D.ISFISCAL = 1 AND
T.TRANZTYPE = '36' and
T.INFO = '8'
GROUP BY
C.CODE,
C.NAME,
T.TRANZDATE,
T.INFOSTR
Запрос посылается в БД 2 раза в сутки в 8 утра и в 20 вечера. Необходимо посчитать интервалы с 08:00:00 по 20:00:00 в текущей дате, делаем так:
T.TRANZDATE = cast('now' as date) and
T.TRANZTIME >='08:00:00' AND T.TRANZTIME <='20:00:00' AND
а как выполнить запрос в интервале 12.03.2020 20:00:00 по 13.03.2020 08:00:00?
T.TRANZDATE = cast('now' as date) and
T.TRANZTIME >='20:00:00' AND T.TRANZTIME <='08:00:00' AND
т.е. из текущей даты отнять 12 часов.
пробовал что-то типо того
T.TRANZDATE = dateadd (hour, -12, current_timestamp) and
Но не выдает нужного результата. Запрос выполняется ежедневно, автоматически.