依格式模型截斷日期,保留較大單位,較小單位歸零 (時→00, 分→00, 秒→00)。
語法: TRUNC(date [, fmt])
date:日期值fmt:格式模型 (可選),省略則截至「日」(午夜 00:00:00)TRUNC(TO_DATE('24-Nov-1999 08:00 pm'), 'dd-mon-yyyy hh:mi am')
-- = '24-Nov-1999 12:00:00 am' (截至日)
TRUNC(TO_DATE('24-Nov-1999 08:37 pm','dd-mon-yyyy hh:mi am'), 'hh')
-- = '24-Nov-1999 08:00:00 am' (截至時)
TRUNC(SYSDATE, 'yyyy') -- 當年 1 月 1 日 00:00:00
TRUNC(SYSDATE, 'mm') -- 當月 1 日 00:00:00
TRUNC(SYSDATE, 'd') -- 本週第一天 (週日) 00:00:00
TRUNC(SYSDATE, 'dd') -- 當天 00:00:00 (同無 fmt)
| fmt | 截斷至 | 結果範例 (假設 2024-03-15 14:30:45) |
|---|---|---|
| YYYY / YEAR | 年首 | 2024-01-01 00:00:00 |
| MM / MONTH | 月首 | 2024-03-01 00:00:00 |
| DD / DAY | 日/週首 | 2024-03-15 00:00:00 / 2024-03-10 00:00:00 |
| HH / HH24 | 時 | 2024-03-15 14:00:00 |
| MI | 分 | 2024-03-15 14:30:00 |
DATE,可直接參與日期運算TRUNC(date) 是「去時分秒」最佳寫法,優於 TO_DATE(TO_CHAR(...))MONTHS_BETWEEN 做月份差比對時,必須先 TRUNC 統一精度