SQL - округлить дату / время до наступающего воскресенья - PullRequest
0 голосов
/ 02 марта 2020

Глядя на округление получасовых интервью до наступающего воскресенья. В моем запросе есть столбец (под названием Торговый интервал) с метками даты и времени, такими как 02/03/2020 08:30 и 29/02/2020 19:00.

. Я хочу создать новый столбец под названием Конец недели, который округляет эти даты / время до наступающее воскресенье.

Таким образом, для даты 29/02/2020 19:00 она округляется и возвращает 01/03/2020 00:00, а для даты 02/03/2020 она округляется до 08/03/2020 00:00

Спасибо

1 Ответ

4 голосов
/ 02 марта 2020

Используйте TRUNC для обрезания даты до полуночи, а затем NEXT_DAY для получения следующего воскресенья:

SELECT trading_interval,
       NEXT_DAY( TRUNC( trading_interval ), 'SUNDAY' ) AS week_ending
FROM   your_table;

Итак, для тестовых данных:

CREATE TABLE your_table ( trading_interval ) AS
SELECT DATE '2020-03-02' + INTERVAL '08:30' HOUR TO MINUTE FROM DUAL UNION ALL
SELECT DATE '2020-02-29' + INTERVAL '19:00' HOUR TO MINUTE FROM DUAL;

Это выводит:

TRADING_INTERVAL    | WEEK_ENDING        
:------------------ | :------------------
2020-03-02 08:30:00 | 2020-03-08 00:00:00
2020-02-29 19:00:00 | 2020-03-01 00:00:00

дБ <> скрипка здесь

...