Моя неделя начинается в субботу и заканчивается в пятницу. например: 6-30-2018 был мой первый день в неделе, а 6 июля - последний день.
select trunc(sysdate,'IW') + Level - (1+ trunc(sysdate) - trunc(sysdate, 'IW'))
from dual connect by level < 8;
результаты продолжают двигаться, когда я запускаю над запросом в течение недели. Мне нужно, чтобы он оставался прежним.
5 июля возвращается ниже. 4 июля он дал разные результаты. Он перемещается вокруг системной даты, поскольку меняется день ото дня.
TRUNC(SYSDATE,'IW')+LEVEL-(1+TRUNC(SYSDATE)-TRUNC(SYSDATE,'IW'))
29-JUN-2018 00:00:00
30-JUN-2018 00:00:00
01-JUL-2018 00:00:00
02-JUL-2018 00:00:00
03-JUL-2018 00:00:00
04-JUL-2018 00:00:00
05-JUL-2018 00:00:00
SELECT TRUNC(to_date('08-Jul-2018', 'dd-Mon-yyyy'), 'IW') + Level - (1+ TRUNC(to_date('08-Jul-2018', 'dd-Mon-yyyy'), 'IW') - TRUNC(to_date('08-Jul-2018', 'dd-Mon-yyyy'), 'IW'))
FROM dual
CONNECT BY level <= 8; --great
Если я жестко закодирую это, результаты останутся прежними. Есть ли способ, которым мне не нужно жестко кодировать дату, хотя она, кажется, работает.
спасибо