如何将星期几开始日期更改为Oracle中数据库的星期天以进行报告

时间:2018-08-21 11:19:35

标签: sql oracle

尝试更改NLS_TERRITORYNLS_LANGUAGE仍然将数据库显示为星期一作为开始一周。

Alter session set nls_territory = 'America'

select TRUNC(sysdate, 'iw') AS iso_week_start_date,
       TRUNC(sysdate, 'iw') + 7 - 1/86400 AS iso_week_end_date
from dual;
  2    3
ISO_WEEK ISO_WEEK
--------- ---------
20-AUG-18 26-AUG-18

此处ISO_WEEK_START_DATE应该从2018年8月19日开始,即星期天

1 个答案:

答案 0 :(得分:5)

TRUNC(sysdate, 'iw')根据始终为星期一的ISO-8601返回星期的第一天。对于本地周,请使用TRUNC(sysdate, 'WW'),具体取决于当前用户会话NLS_TERRITORY