Oracle日期格式化以及extract函数的使用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle⽇期格式化以及extract函数的使⽤
由于业务需要,这两天在学习Oracle,发现Oracle⾥⾯的⽇期它会给你转成⼀种很不习惯的格式,于是想着怎么样把它弄成年、⽉、⽇的格式来显⽰,查资料、看⽂档,最终找到解决办法了,其实是⽤到了to_char⽅法。
例如,在Oracle⾥⾯,⼀个表格⾥⽇期如2017-05-06,列名为time,查询后发现返回的是06-5⽉ -17这种格式的,看着贼不爽,要想把它转成年⽉⽇这种格式的,可以这样做,
to_char(time, 'YYYY-MM-DD') as time // 括号⾥的time表⽰表中的列名,第⼆个time则表⽰转换后的⽇期列名仍然为time
现在转换后的⽇期就是这样的,2017-05-06
那么extract函数是⼲什么的呢?extract英语意思是提取、选取,顾名思义,它表⽰从⼀个date类型中截取某⼀特定的部分,例如,选取年或⽉或⽇。
例如有这样⼀个表格:
现在我要从表格myTable中选取time中年份为2018年的所有数据,可以这样做,
select title,play,time from myTable where extract(year from time) = 2018;
或者:
select title,play,to_char(time, 'YYYY-MM-DD') as time from myTable where extract(year from time) = 2018
结果显然是都返回了(这⾥只是做个演⽰)
现在我要从表格myTable中选取time中⽉份为5的所有数据,操作为:
select title,play,time from myTable extract(month from time) = 5;
或者:
select title,play,to_char(time, 'YYYY-MM-DD') as time from myTable where extract(month from time) = 5
从表格myTable中选取time中⽇期为6的所有数据,操作为:
select title,play,time from myTable extract(day from time) = 6;
或者:
slect title,play,to_char(time, 'YYYY-MM-DD') as time from myTable where extract(day from time) = 6;
语法如下:extract(year|month|day|hour|minute|second from column_name) = value。