Oracle日期函数TRUNC
OracleTRUNC()函数返回一个DATE截断为指定单位的值。
语法
下面显示了OracleTRUNC()函数的语法:
TRUNC(date, format)
参数
该TRUNC()函数接受两个参数:
1)date
的date参数是一个DATE值或计算结果为的表达式DATE将被截断值。
2)format
的format参数确定,其中该单元 date将被截断。
该format参数是可选的。其默认值是DD指示TRUNC()函数将日期截断为午夜。
下表说明了该format参数的有效值:
搜索格式...
Format | Description |
---|---|
CC, SCC | Century, with or without minus sign (BC) |
[S]YYYY, [S]YEAR, YYY, YY, Y | Year (in various appearances) |
IYYY, IYY, IY, I | ISO year |
Q | Quarter |
MONTH, MON, MM, RM | Month (full name, abbreviated name, numeric, Roman numerals) |
IW, WW (ISO) | week number |
W | Day of the week |
DDD, DD, J | Day (of the year/of the month/Julian day) |
DAY, DY, D | Closest Sunday |
HH, HH12, HH24 | Hours |
MI | Minutes |
返回值
该TRUNC()函数返回DATE截断为指定单位的值。
例子
让我们看一些使用OracleTRUNC()函数的示例。
A)使用默认格式截断日期值
请考虑以下日期时间值:
04-Aug-2017 15:35:32
以下语句将日期值截断为午夜:
SELECT
TO_CHAR(
TRUNC(TO_DATE( '04-Aug-2017 15:35:32 ', 'DD-Mon-YYYY HH24:MI:SS' )),
'DD-Mon-YYYY HH24:MI:SS'
) result
FROM
dual;
输出:
RESULT
--------------------
04-Aug-2017 00:00:00
在这个例子中
首先,该TO_DATE()函数将日期字符串转换为DATE值。
其次,该TRUNC()函数将日期截断。因为我们没有传递format参数,所以该TRUNC()函数使用将日期截断为午夜的默认值。
第三,TO_CHAR()函数格式化了函数的结果TRUNC()。
B)获取日期中的第一天
以下语句返回当前月份的第一天。
SELECT
TRUNC( SYSDATE, 'MM' ) result
FROM
dual;
输出:
RESULT
---------
01-MAY-20
如果您要返回特定日期的月份的第一天,则只需使用该日期而不是 SYSDATE
C)获取日期四分之一的第一天
同样,您可以获取当前季度的第一天:
SELECT TRUNC( SYSDATE, 'Q' ) result
FROM dual;
输出:
RESULT
---------
01-APR-20
在此示例中,我们用MM四分之一(Q)替换了月份()。
在本教程中,您学习了如何使用OracleTRUNC()函数将日期值截断为指定的单位。