Oracle日期型及处理方法
日期处理
获取当前日期-sysdate()
sysdate()获取的日期精确到秒
为日期加上特定月份-add_months()
select add_months(to_date('2010-2-27','YYYY-MM-DD'),1) new_date from dual
结果:2010-3-27
当某年的2月只有28天, 那么添加一个月后,返回3月的最后一天
select add_months(to_date('2010-2-28','YYYY-MM-DD'),1) new_date from dual
结果:2010-3-31
如果增加月份之后的日期为非法日期,将返回该月的最后一天
select add_months(to_date('2010-1-30','YYYY-MM-DD'),1) new_date from dual
结果:2010-2-28
返回特定日期所在月的最后一天-last_day()
select last_day(to_date('2010-2-28','YYYY-MM-DD')) new_date from dual
结果:2010-2-28
返回2个日期所差月数-months_between()
months_between()返回2个日期相减所得的月数,返回值不一定是整数
select months_between(to_date('2010-4-4','YYYY-MM-DD'),to_date('2010-2-6','YYYY-MM-DD')) as new_date from dual
结果:1.93548…
如果第一个参数小于第二个参数,返回值就是负数
返回特定日期之后的一周内日期-next_day()
select next_day(to_date('2010-4-4','yyyy-mm-dd'),2) new_date from dual
结果:2010-4-5
第二个参数代表星期几,在Oracle中,1代表星期日,2代表星期一…
截取日期-trunc()
trunc(日期,截取格式)
select trunc(sysdate,'DD') new_date from dual
结果:2010-4-5
select trunc(sysdate,'MM') new_date from dual
结果:2010-4-1
trunc(sysdate,‘MM’)将当前日期截取到月,获得结果2010-4-1,即当前月份的第一天
select trunc(sysdate,'MI') new_date from dual
结果:2010-4-5 15:44:00
trunc(sysdate,‘MI’)将当前日期截取到分钟,忽略分钟以后的部分。截取日期实际是将其中某些信息位置为0
返回当前会话时区的当前日期-current_date()
select sessiontimezone,to_char(current_date,'yyyy-mm-dd hh:mi:ss') result from dual
结果:+08:00 2010-4-5 4:25:26
sessiontimezone返回当前时区,current_date返回当前日期
返回当前会话时区的时间戳-current_timestamp()
select sessiontimezone,current_timestamp from dual
结果:+08:00 05-4月 -10 04.51.11.640000 下午 +08:00
返回日期的某个域-extract()
select extract(域名,from 日期)
select extract(month from sysdate) new_month from dual
结果;4
注意:在日期型中无法分解出小时、分钟、秒等信息。想要获得小时等信息,则必须使用日期时间型作为数据源
select extract(hour from systimestamp) new_month from dual
结果:14
注意:此时的小时信息是零时区的标准时间
可以自行创建一个函数获得一个日期的所有信息
create or replace function get_field(p_date date,p_format varchar2)
return varchar2
is
val varchar2(10);
tmp_date varchar2(20);
begin
tmp_date:=to_char(p_date,'yyyy-mm-dd hh24:mi:ss');
if lower(p_format)='year' then
val:=substr(tmp_date,1,4);
end if;
if lower(p_format)='month' then
val:=substr(tmp_date,6,2);
end if;
if lower(p_format)='day' then
val:=substr(tmp_date,9,2);
end if;
if lower(p_format)='hour' then
val:=substr(tmp_date,12,2);
end if;
if lower(p_format)='minute' then
val:=substr(tmp_date,15,2);
end if;
if lower(p_format)='second' then
val:=substr(tmp_date,18,2);
end if;
return val;
end;
将日期转换为字符串-to_char()
select to_char(sysdate,'yyyy-mm-dd') new_date from dual
结果:2010-4-5
Oracle日期型及处理方法的更多相关文章
- Oracle 日期型 将timestamp类型转换为date类型
Oracle将timestamp类型转换为date类型有三种方法 1.使用to_char先转为字符型,在使用to_date再转为日期型 select to_date(to_char(systimest ...
- C# oracle 日期型字段,使用参数传值时,遇到ORA-01810: format code appears twice错误
C#操作oracle数据库时,发现使用to_date('2014-01-03 18:00:00','yyyy-mm-dd hh:MM:ss')时,会出现ORA-01810: format code a ...
- Oracle数据库中插入日期型数据(to_date的用法)(转载)
往Oracle数据库中插入日期型数据(to_date的用法) INSERT INTO FLOOR VALUES ( to_date ( '2007-12-20 18:31:34' , 'YYY ...
- SQL语句往Oracle数据库中插入日期型数据(to_date的用法)
Oracle 在操作数据库上相比于其他的 T-sql 有微小的差别,但是在插入时间类型的数据是必须要注意他的 to_date 方法,具体的情况如下: --SQL语句往Oracle数据库中插入日期型数据 ...
- oracle 数据类型详解---日期型(转载)
oracle 数据类型详解---日期型 oracle数据类型看起来非常简单,但用起来会发现有许多知识点,本文是我对ORACLE日期数据类型的一些整理,都是开发入门资料,与大家分享: 注:由于INTER ...
- [转载]oracle 数据类型详解---日期型
1.常用日期型数据类型1.1.DATE这是ORACLE最常用的日期类型,它可以保存日期和时间,常用日期处理都可以采用这种类型.DATE表示的日期范围可以是公元前4712年1月1日至公元9999年12月 ...
- oracle 日期相减
oracle日期相减2012-02-10 12:18--MONTHS_BETWEEN(date2,date1) 给出date2-date1的月份 SQL> select months_betwe ...
- 类型:Oracle;问题:oracle 时间加减;结果:ORACLE 日期加减操作
ORACLE 日期加减操作 无论是DATE还是timestamp都可以进行加减操作. 可以对当前日期加年.月.日.时.分.秒,操作不同的时间类型,有三种方法: 1 使用内置函数numtodsinter ...
- sql 将8位字符串转换成日期型
将8位字符串转换成日期型,方法如下: ),)
- Oracle日期时间函数大全
ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 显示值:07 yyy three digits ...
随机推荐
- [T.2] 团队项目:选题和需求分析
项目 内容 这个作业属于哪个课程 2025年春季软件工程(罗杰.任健) 这个作业的要求在哪里 T.2团队项目:选题和需求分析 团队在这个课程的目标是 学习软件工程相关知识,培养编程和团队协作能力,做出 ...
- vue 前端选择弹窗取值完整实例[经典]
<!-- 班次信息 --> <el-row> <el-col :span="24"> <el-form-item label=" ...
- EditorGUILayout.BeginVertical("textfield")
- HTTP表单请求
okHttp 发送表单请求 需要添加依赖 compile group: 'com.squareup.okhttp3', name: 'okhttp', version: '4.9.0' import ...
- web自动化:webdriver常用api
一.获取操作 1.get('url'):访问指定的url webdriver.get(String url); 2.Getcurrenturl():获取当前页面url webDriver.getCur ...
- Redis Stream消息队列
工具类部分内容 package com.hwd.campus.common.redis.utils; import com.hwd.campus.common.redis.constant.Redis ...
- ctf.show刷题记录_web(1-10)
ctf平台(ctfshow) `https://ctf.show/ 1.签到 解题:base64解码 ctfshow{0da357d0-359b-47e1-80dc-5c02212725e5} 2.w ...
- 腾讯出品!这款Markdown神器让你码字效率翻倍,双模式编辑太香了!
嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 由腾讯开源的CherryMarkdown编辑器,集思维导图式大纲写作与专业分屏模式于一身,支 ...
- 【记录】Python3|json文件处理相关的操作
文章目录 json分割 json.gz 转换成 jsonl.gz json格式化显示 遍历目录及子目录,对某种类型的文件内容查找是否有指定字符串 json分割 主要使用json.loads.json. ...
- P11071 「QMSOI R1」 Distorted Fate题解
题意: 给定一个序列,给定两种操作: 将一个区间异或上一个给定的值. 给定 \(l,r\) 求 \[{\large (\sum_{i=l}^r\bigcup_{j=l}^i A_j) \bmod 2^ ...