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 ...
随机推荐
- restTemplate 使用问题小记
使用restTemplate在后端进行接口转发, 期间包括文件上传, 预览和下载. 还有一些字符串或css/js文件的读取. 1. 文件上传 参考: RestTemplate转发MultipartFi ...
- Springboot+MongoDB添加数据时会自带_class字段
_class字段作用 帮助映射子类,为了方便处理Pojo中存在继承的情况,增加系统的扩展性 去除_class字段 新增mongodb的配置类,配置mappingMongoConverter,配置类网上 ...
- 尝试通过DeepSeek来优化提高WordPress网站的打开速度,还真有效!
头图由AI生成 嗯,用户问的是WordPress网站如何优化打开速度.首先,我需要考虑用户可能的背景.他们可能是一个WordPress网站的管理员或者拥有者,发现网站加载速度不够快,想要进行优化.用户 ...
- System Integrity Protection (SIP) iOS10.15安装软件提示文件损坏问题解决方法
方法如下:1.开机的时候立即按住command+R 组合键不要放手,直到进度条加载完才松手,进入到系统恢复工具界面 2. 然后点击"实用工具"选项卡中的"终端" ...
- 银河麒麟系统 jenkins docker 部署 自动化打包部署git 项目
Jenkins 是一个开源的自动化服务器,主要用于实现 持续集成(CI) 和 持续交付/部署(CD),其核心作用在于通过自动化流程提升软件开发和交付的效率与质量 一.环境准备 1. 安装 Docker ...
- Java编程--单例(Singleton)设计模式
单例设计模式 一个类只有一个实例,根据创建的时机又分为懒汉式和饿汉式,它们的区别主要体现在实例的创建时机和线程安全性上. 饿汉式(Eager Initialization): 特点: 在类加载时就创建 ...
- 【经验】Ubuntu 20.04 ROS2 Foxy安装
参考博客 ROS2安装 有的地方原博主打错了,还没改过来,我按我自己的改好了. 有的地方比如github和raw.githubusercontent.com访问不了,我替换成能用的镜像源了,只求一键复 ...
- 【HUST】攻防实践|中间人攻击netcat通信过程
更新(略微整理了一下行文逻辑的版本):[HUST]网络攻防实践|TCP会话劫持+序列号攻击netcat对话_shandianchengzi的博客-CSDN博客_tcp序列号攻击是如何实现的. 旧版博客 ...
- windows11 安装CUDA Toolkit,Python,Anaconda,PyTorch并使用DeepSeek 多模态模型 Janus-Pro识别和生成图片
一.概述 因为公司网络做了严格限制,必须使用账号登录,才能上网.必须是指定的ip地址和MAC地址设备才可以上网. windows11开启热点,安装第三方虚拟机软件,开启WSL2虚拟机都是被禁止的,否则 ...
- 网络编程:select
原理:参考:https://my.oschina.net/fileoptions/blog/911091 select中内核函数有哪些 源码实现: #undef __NFDBITS #define _ ...