Oracle截取函数

1.TRUNC(for dates)   和 TO_CHAR() 函数

 

注:

为月(mm)时,精确到------年,月(不管哪年,只要是相同的月和哪天)
为日(dd)时,精确到------年,月,日(不管哪年的哪月,只关心是哪天)

 

 

SELECT DISTINCT   TRUNC (u.start_date, 'DD') - TO_CHAR (u.start_date, 'D') + 6   a2t
from user_product u

 

to_char(sysdate, 'yyyy/mm/dd');          would return '2003/07/09'
to_char(sysdate, 'Month DD, YYYY');     would return 'July 09, 2003'
to_char(sysdate, 'FMMonth DD, YYYY'); would return 'July 9, 2003'
to_char(sysdate, 'MON DDth, YYYY');     would return 'JUL 09TH, 2003'
to_char(sysdate, 'FMMON DDth, YYYY'); would return 'JUL 9TH, 2003'
to_char(sysdate, 'FMMon ddth, YYYY');  would return 'Jul 9th, 2003'  

 

--  截取到年份,然后再加上6年
SELECT DISTINCT   TO_CHAR (u.start_date, 'yyyy') + 6   a2t
from user_product u

--  截取到月份

SELECT DISTINCT   TO_CHAR (u.start_date, 'mm')  a2t

--  截取到日
from user_product u

SELECT DISTINCT   TO_CHAR (u.start_date, 'dd')  a2t

--  截取到日
from user_product u

SELECT DISTINCT   TO_CHAR (u.start_date, 'd')  a2t
from user_product u

SELECT DISTINCT   TO_CHAR (u.start_date, 'yyyy-mm-dd')  a2t
from user_product u

 

 

--  截取到年份
SELECT DISTINCT   TRUNC (u.start_date, 'yyyy') a2t
from user_product u

SELECT DISTINCT   TRUNC (sysdate, 'yyyy') a2t
from user_product u

--  截取到月份
SELECT DISTINCT   TRUNC (u.start_date, 'mm') a2t
from user_product u

SELECT DISTINCT   TRUNC (sysdate, 'mm') a2t
from user_product u

SELECT DISTINCT   TRUNC (to_date('2010-02-28', 'yyyy-mm-dd'), 'mm') a2t
from user_product u

--  截取到日

SELECT DISTINCT   TRUNC (u.start_date, 'dd') a2t
from user_product u

SELECT DISTINCT   TRUNC (sysdate, 'dd') a2t
from user_product u

--  截取到所给日期的最近一个周日的时间(当前日期向前推)
SELECT DISTINCT   TRUNC (sysdate, 'd') a2t
from user_product u
SELECT DISTINCT   TRUNC (to_date('2010-03-06', 'yyyy-mm-dd'), 'd') a2t
from user_product u

 

 

2.TRUNC(for number)

TRUNC函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,

而统统截去。
其具体的语法格式如下
TRUNC(number[,decimals])
其中:
number 待做截取处理的数值
decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分
下面是该函数的使用情况:
TRUNC(89.985,2)=89.98
TRUNC(89.985)=89
TRUNC(89.985,-1)=80
注意:第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle提供了几个函数用于截取字符串。其中一个常用的函数是substr函数,它用于截取字符串的一部分。这个函数的语法是SUBSTR(string,start,[length])。其中,string表示要截取的原始字符串,start表示起始位置,length表示要截取的字符数量。 例如,如果我们有一个名为GradesTable的表,其中有一个名为name的列,我们可以使用substr函数截取name列中李明的第一个字符。具体的代码如下: SELECT SUBSTR(name, 1, 1) FROM GradesTable WHERE name = '李明'; 执行以上代码后,将会返回李。 除了substr函数之外,Oracle还提供了其他一些截取字符串的函数,如SUBSTRING和INSTR函数。这些函数可以根据具体的需求选择使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Oracle截取JSON字符串内容的方法](https://download.csdn.net/download/weixin_38582506/12824257)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Oracle函数截取(substr、instr )](https://blog.csdn.net/weixin_45176509/article/details/112711441)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值