獲得一週的一天
你可以使用 TO_CHAR( date_value, 'D' )
來獲取星期幾。
但是,這取決於 NLS_TERRITORY
會話引數:
ALTER SESSION SET NLS_TERRITORY = 'AMERICA'; -- First day of week is Sunday
SELECT TO_CHAR( DATE '1970-01-01', 'D' ) FROM DUAL;
輸出 5
ALTER SESSION SET NLS_TERRITORY = 'UNITED KINGDOM'; -- First day of week is Monday
SELECT TO_CHAR( DATE '1970-01-01', 'D' ) FROM DUAL;
輸出 4
要獨立於 NLS
設定執行此操作,你可以將日期截斷到當天的午夜(以刪除任何天數),並將截斷的日期減去當前 iso 周的開始(始終在星期一開始):
SELECT TRUNC( date_value ) - TRUNC( date_value, 'IW' ) + 1 FROM DUAL