Oracle中的TRUNC
函数是一个非常有用的函数,它可以用于处理日期、数字和字符串。以下是TRUNC
函数的详细用法:
处理日期
TRUNC(date[, fmt])
date
:是要被截断的日期或时间值。fmt
(可选):日期格式模型,用于指定截断到哪个单位(如年、月、日等)。如果省略,则默认为日期。
示例:
-
截断到年份的第一天:
sql复制代码
SELECT TRUNC(SYSDATE, 'YYYY') FROM DUAL; |
这将返回当前年份的第一天日期。
-
截断到月份的第一天:
sql复制代码
SELECT TRUNC(SYSDATE, 'MM') FROM DUAL; |
这将返回当前月份的第一天日期。
-
截断到当前星期的第一天(通常是周日):
sql复制代码
SELECT TRUNC(SYSDATE, 'D') FROM DUAL; |
请注意,D
在这里表示一周中的天数(周日=1,周一=2,...,周六=7)。因此,TRUNC(SYSDATE, 'D')
将返回当前周的第一天(周日)。
-
截断到小时:
sql复制代码
SELECT TRUNC(TO_DATE('2023-10-23 14:37:00', 'YYYY-MM-DD HH24:MI:SS'), 'HH') FROM DUAL; |
这将返回2023-10-23 14:00:00
。
处理数值
TRUNC(number[, decimal_places])
number
:是要被截断的数值。decimal_places
(可选):要保留的小数位数。如果省略,则默认截断为整数。
示例:
-
截断为整数:
sql复制代码
SELECT TRUNC(123.456) FROM DUAL; |
这将返回123
。
-
截断到小数点后两位:
sql复制代码
SELECT TRUNC(123.4567, 2) FROM DUAL; |
这将返回123.45
。
处理字符串
TRUNC(string, n)
string
:要截断的字符串。n
:要截取的字符数。
示例:
sql复制代码
SELECT TRUNC('Hello, World!', 5) FROM DUAL; |
这将返回'Hello'
。
注意:虽然Oracle的TRUNC
函数通常用于日期和数值,但它也可以用于字符串,但这种情况在实际应用中可能不太常见。