Oracle时间函数
YYYY年 Q季度
MM月 month月
WW当年第几周 W本月第几周
DDD 当年第几天 DD当月第几天 D当周内第几天 DY当周内星期几 day当周内星期几
HH或HH12:12进制小时数 HH24:24小时制
MI:分钟数(0~59) SS:秒数(0~59)
1、Sysdate:当前日期和时间
Select sysdate from dual
2、Last_day():本月最后一天
Select last_day(sysdate) from dual;
3、Add_months(d,n):当前日期d后推n个月
Select add_months(sysdate,2) from dual;
4、Months_between(f,s):日期f和s间相差月数
select months_between(sysdate,to_date('2005-11-12','yyyy-mm-dd'))from dual;
5、NEXT_DAY(d,day_of_week):返回由"day_of_week"命名的,在变量"d"指定的日期之后的第一个
工作日的日期。参数"day_of_week"必须为该星期中的某一天。
返回下个星期的日期,day为1-7或星期日-星期六,1表示星期日
SELECT next_day(to_date('20050620','YYYYMMDD'),1) FROM dual;
--------------------------------
每周的星期五晚上23:00
select trunc(next_day(sysdate,'星期五'))+23/24 from dual;
---------------------------------
6、current_date():返回当前会话时区中的当前日期
select current_date from dual;
7、current_timestamp():以timestamp with time zone数据类型返回当前会话时区中的当前日期
select current_timestamp from dual;
8、dbtimezone():返回时区
select dbtimezone from dual;
9、extract():找出日期或间隔值的字段值
select extract(year from add_months(sysdate,36)) " Years" from dual;
10、localtimestamp()返回会话中的日期和时间
select localtimestamp from dual;
天数增减:
select (sysdate - 3) from dual;
select (sysdate + 3) from dual;
今天晚上23:00:trunc(sysdate)+23/24
TRUNC(SYSDATE)+(1440*60-1)/(1440*60):2015-06-01 23:59:59
TRUNC(SYSDATE)+1-1/86400:2015-06-01 23:59:59
增加一小时:SYSDATE + 1/24
增加10分钟: 'SYSDATE + 10/(60*24)'
增加30秒: 'SYSDATE + 30/(60*24*60)'
当前时间减去7分钟的时间
select sysdate,sysdate - interval '7' MINUTE from dual;
当前时间减去7小时的时间
select sysdate - interval '7' hour from dual;
当前时间减去7天的时间
select sysdate - interval '7' day from dual;
当前时间减去7月的时间
select sysdate,sysdate - interval '7' month from dual;
当前时间减去7年的时间
select sysdate,sysdate - interval '7' year from dual;
时间间隔乘以一个数字
select sysdate,sysdate - 8*interval '7' hour from dua
上月末天:
select to_char(add_months(last_day(sysdate),-1),'yyyy-MM-dd') LastDay from dual;
上月今天:
select to_char(add_months(sysdate,-1),'yyyy-MM-dd') PreToday from dual;
上月首天:
select to_char(add_months(last_day(sysdate)+1,-2),'yyyy-MM-dd') firstDay from dual;
判断上下午
if to_date(to_char(sysdate, 'hh24:mi:ss'), 'hh24:mi:ss') <
to_date('12:00:00', 'hh24:mi:ss') then
v_zblb := '上午';
else
v_zblb := '下午';
end if;
按照每周进行统计:
select to_char(sysdate,'ww') from dual group by to_char(sysdate,'ww');
要找到某月中所有周五的具体日期:
select to_char(t.d,'YY-MM-DD') from ( select trunc(sysdate, 'MM')+rownum-1
as d from dba_objects where rownum < 32) t where to_char(t.d, 'MM') =
to_char(sysdate, 'MM') and trim(to_char(t.d, 'Day'))
处理月份天数不定的办法
select to_char(add_months(last_day(sysdate) +1, -2), 'yyyymmdd'),last_day(sysdate) from dual;
找出今年的天数
select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual ;
闰年的处理方法
to_char( last_day( to_date('02' | | :year,'mmyyyy') ), 'dd' )
TO_CHAR把日期或数字转换为字符串
TO_CHAR(number, '格式')
TO_CHAR(salary, '$99,999.99')
TO_CHAR(date, '格式') to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')
TO_CHAR(sysdate,'YYYY"年"fmMM"月"fmDD"日" HH24:MI:SS')
TO_DATE把字符串转换为数据库中的日期类型
TO_DATE(char, '格式')
TO_NUMBER将字符串转换为数字
TO_NUMBER(char, '格式')
日期时间转为日期:
to_date(to_char(b.billing_date_time , 'yyyy/mm/dd'), 'yyyy-mm-dd')
to_date('2014-03-12 14:00:00','YYYY-MM-DD HH24:MI:SS')
年龄:
trunc(months_between(sysdate,t.birthday)/12) floor(MONTHS_BETWEEN(sysdate,b.date_of_birth)/12)
Oracle时间函数的更多相关文章
- ORACLE时间函数(SYSDATE)深入理解
ORACLE时间函数(SYSDATE)深入理解 加法 select sysdate,add_months(sysdate,12) from dual; --加1年 select sysdate,add ...
- oracle 时间函数
加法 select sysdate,add_months(sysdate,12) from dual; --加1年 select sysdate,add_months(sysdate,1) from ...
- ORACLE时间函数(SYSDATE)简析
ORACLE时间函数(SYSDATE)简析 分类: 原文地址:ORACLE时间函数(SYSDATE)简析 作者:skylway 加法 select sysdate,add_months(sysdate ...
- Oracle时间函数numtoyminterval()
格式:NumToYMInterval(n, interval_unit); n: 数值类型 interval_unit: 'YEAR', 'MONTH' ,或其他可以转换成这两个值之一的表达式 N ...
- [转载]ORACLE日期时间函数大全
ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 ...
- mysql与oracle的日期/时间函数小结
前言 本文的日期/时间全部格式化为”2016-01-01 01:01:01“形式: MONITOR_TIME为数据库表字段: 字符串与日期/时间相互转换函数 Oracle 日期/时间转字符串函数:to ...
- Oracle日期时间函数大全
ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 显示值:07 yyy three digits ...
- [转]ORACLE日期时间函数大全
本文转自:http://www.cnblogs.com/chuncn/archive/2009/04/29/1381282.html ORACLE日期时间函数大全 TO_DATE格式(以时间: ::2 ...
- oracle日期时间函数总结
常常写 sql 的同学应该会接触到一些 oracle 的日期时间函数, 比如: 財务软件或者人力资源软件须要依照每年, 每季度, 每月, 甚至每一个星期来进行统计. 今天闲来没事, 特意从网上整理了一 ...
随机推荐
- Docker 使用 Dockerfile 构建自己的镜像
可以使用Dockerfile的配置文件方式进行构建自己的镜像 下面利用docker构建一个Caddy web服务器 构建脚本 Dockerfile有自己的命令,下面使用了一些比较常用的命令,更多的Do ...
- Spring Boot使用Maven打包替换资源文件占位符
在Spring Boot开发中,通过Maven构建项目依赖是一件比较舒心的事,可以为我们省去处理冲突等大部分问题,将更多的精力用于业务功能上.近期在项目中,由于项目集成了其他外部系统资源文件,需要根据 ...
- GlusterFS群集存储项目
最小化安装的centos7.5 内存大于1GB 关闭selinux,防火墙端口放行(port:24007,111)(测试建议关闭firewalld) 一.环境部署 所有软件包离线安装,原因是yum安装 ...
- Vue.js04:vue样式-通过属性绑定方式为元素设置class类样式
<!-- 传统写法 --> <h1 class="red thin">这是一个h1标签</h1> <!-- 第一种使用方式,直接传递一个数 ...
- python学习笔记2_条件循环和其他语句
一.条件循环和其他语句 1.print和import的更多信息. 1.1.使用逗号输出 //print() 打印多个表达式是可行的,用逗号隔开. 在脚本中,两个print语句想在一行输出 ...
- java的环境变量配置失败(java.exe、javaw.exe、javaws.exe优先级问题冲突)
前言:首先安装了intelliJ Idea 其次安装了JDK 1.8 配置完三个系统变量后,java和javac执行不通过 配置过程 1.我的电脑(右键)--->属性---->高级---& ...
- Django-CRM项目学习(八)-客户关系系统整体实现(待完成!)
注意点:利用stark组件与rbac组件实现客户关系系统 1.需求整理与确认 1.1 客户关系系统整体需求 a
- Redis5.0.4复制
redis的复制很简单,由于资源限制,本例中采用两台虚拟机,每台虚拟机安装两个redis实例,共四个来测试 一.安装redis https://www.cnblogs.com/qq931399960/ ...
- Elasticsearch 通关教程(四): 分布式工作原理
前言 通过前面章节的了解,我们已经知道 Elasticsearch 是一个实时的分布式搜索分析引擎,它能让你以一个之前从未有过的速度和规模,去探索你的数据.它被用作全文检索.结构化搜索.分析以及这三个 ...
- 08 Django REST Framework 解决前后端分离项目中的跨域问题
01-安装模块 pip install django-cors-headers 02-添加到INSTALL_APPS中 INSTALLED_APPS = ( ... 'corsheaders', .. ...