日期处理

获取当前日期-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日期型及处理方法的更多相关文章

  1. Oracle 日期型 将timestamp类型转换为date类型

    Oracle将timestamp类型转换为date类型有三种方法 1.使用to_char先转为字符型,在使用to_date再转为日期型 select to_date(to_char(systimest ...

  2. 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 ...

  3. Oracle数据库中插入日期型数据(to_date的用法)(转载)

    往Oracle数据库中插入日期型数据(to_date的用法) INSERT  INTO  FLOOR  VALUES  ( to_date ( '2007-12-20 18:31:34' , 'YYY ...

  4. SQL语句往Oracle数据库中插入日期型数据(to_date的用法)

    Oracle 在操作数据库上相比于其他的 T-sql 有微小的差别,但是在插入时间类型的数据是必须要注意他的 to_date 方法,具体的情况如下: --SQL语句往Oracle数据库中插入日期型数据 ...

  5. oracle 数据类型详解---日期型(转载)

    oracle 数据类型详解---日期型 oracle数据类型看起来非常简单,但用起来会发现有许多知识点,本文是我对ORACLE日期数据类型的一些整理,都是开发入门资料,与大家分享: 注:由于INTER ...

  6. [转载]oracle 数据类型详解---日期型

    1.常用日期型数据类型1.1.DATE这是ORACLE最常用的日期类型,它可以保存日期和时间,常用日期处理都可以采用这种类型.DATE表示的日期范围可以是公元前4712年1月1日至公元9999年12月 ...

  7. oracle 日期相减

    oracle日期相减2012-02-10 12:18--MONTHS_BETWEEN(date2,date1) 给出date2-date1的月份 SQL> select months_betwe ...

  8. 类型:Oracle;问题:oracle 时间加减;结果:ORACLE 日期加减操作

    ORACLE 日期加减操作 无论是DATE还是timestamp都可以进行加减操作. 可以对当前日期加年.月.日.时.分.秒,操作不同的时间类型,有三种方法: 1 使用内置函数numtodsinter ...

  9. sql 将8位字符串转换成日期型

    将8位字符串转换成日期型,方法如下: ),)

  10. Oracle日期时间函数大全

    ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 显示值:07 yyy three digits ...

随机推荐

  1. restTemplate 使用问题小记

    使用restTemplate在后端进行接口转发, 期间包括文件上传, 预览和下载. 还有一些字符串或css/js文件的读取. 1. 文件上传 参考: RestTemplate转发MultipartFi ...

  2. Springboot+MongoDB添加数据时会自带_class字段

    _class字段作用 帮助映射子类,为了方便处理Pojo中存在继承的情况,增加系统的扩展性 去除_class字段 新增mongodb的配置类,配置mappingMongoConverter,配置类网上 ...

  3. 尝试通过DeepSeek来优化提高WordPress网站的打开速度,还真有效!

    头图由AI生成 嗯,用户问的是WordPress网站如何优化打开速度.首先,我需要考虑用户可能的背景.他们可能是一个WordPress网站的管理员或者拥有者,发现网站加载速度不够快,想要进行优化.用户 ...

  4. System Integrity Protection (SIP) iOS10.15安装软件提示文件损坏问题解决方法

    方法如下:1.开机的时候立即按住command+R 组合键不要放手,直到进度条加载完才松手,进入到系统恢复工具界面 2. 然后点击"实用工具"选项卡中的"终端" ...

  5. 银河麒麟系统 jenkins docker 部署 自动化打包部署git 项目

    Jenkins 是一个开源的自动化服务器,主要用于实现 持续集成(CI) 和 持续交付/部署(CD),其核心作用在于通过自动化流程提升软件开发和交付的效率与质量 一.环境准备 1. 安装 Docker ...

  6. Java编程--单例(Singleton)设计模式

    单例设计模式 一个类只有一个实例,根据创建的时机又分为懒汉式和饿汉式,它们的区别主要体现在实例的创建时机和线程安全性上. 饿汉式(Eager Initialization): 特点: 在类加载时就创建 ...

  7. 【经验】Ubuntu 20.04 ROS2 Foxy安装

    参考博客 ROS2安装 有的地方原博主打错了,还没改过来,我按我自己的改好了. 有的地方比如github和raw.githubusercontent.com访问不了,我替换成能用的镜像源了,只求一键复 ...

  8. 【HUST】攻防实践|中间人攻击netcat通信过程

    更新(略微整理了一下行文逻辑的版本):[HUST]网络攻防实践|TCP会话劫持+序列号攻击netcat对话_shandianchengzi的博客-CSDN博客_tcp序列号攻击是如何实现的. 旧版博客 ...

  9. windows11 安装CUDA Toolkit,Python,Anaconda,PyTorch并使用DeepSeek 多模态模型 Janus-Pro识别和生成图片

    一.概述 因为公司网络做了严格限制,必须使用账号登录,才能上网.必须是指定的ip地址和MAC地址设备才可以上网. windows11开启热点,安装第三方虚拟机软件,开启WSL2虚拟机都是被禁止的,否则 ...

  10. 网络编程:select

    原理:参考:https://my.oschina.net/fileoptions/blog/911091 select中内核函数有哪些 源码实现: #undef __NFDBITS #define _ ...