【SQL】日期型函数
1、 SYSTATE
用来返回系统当前时间
SQL> select sysdate from dual;
SYSDATE
-------------------
2017-03-03 09:49:25
2、 ADD_MONTHS
语法: ADD_MONTHS(date,integer)
用于从一个日期值增加或减少一些月份
1) 返回系统时间一个月后的日期
SQL> select sysdate,add_months(sysdate,1) as "months+1" from dual;
SYSDATE months+1
------------------- -------------------
2017-03-03 09:52:43 2017-04-03 09:52:43
2) 返回系统时间一年后的日期
SQL> select sysdate,add_months(sysdate,12) as "months+12" from dual;
SYSDATE months+12
------------------- -------------------
2017-03-03 09:53:57 2018-03-03 09:53:57
3) 返回指定时间1月后的日期
SQL> select add_months('20170102',1) from dual;
ADD_MONTHS('2017010
-------------------
2017-02-02 00:00:00
3、 LAST_DAY
语法: LAST_DAY(date)
返回包含了日期参数的月份的最后一天的日期
SQL> select sysdate,last_day(sysdate) "last" from dual;
SYSDATE last
------------------- -------------------
2017-03-03 14:52:27 2017-03-31 14:52:27
4、 CURRENT_DATE
返回当前会话时区中的当前日期
SQL> select dbtimezone,sessiontimezone,current_date from dual;
DBTIME SESSIONTIM CURRENT_DATE
------ ---------- -------------------
+00:00 +08:00 2017-03-03 14:55:06
5、 MONTHS_BETWEEN
语法:MONTHS_BETWEEN(date1,date2)
返回两个日期之间的月份数
SQL> select months_between('20110301','20110201') as mb from dual;
MB
----------
1
6、 NEXT_DAY
语法:NEXT_DAY(date,char)
返回由第二个参数指出的日子第一次出现的日期值
SQL> select next_day('2017-3-3','Friday') "next day" from dual;
next day
-------------------
2017-03-10 00:00:00
SQL> select next_day('2017-3-3',6) "next day" from dual;
next day
-------------------
2017-03-10 00:00:00
注: 1-7:代表周日-周六。
7、 TRUNC
语法:TRUNC(date,fmt)
按照给出的要求将日期截断
1) trunc函数处理日期,没有fmt参数,默认截取到日
SQL> select trunc(sysdate) from dual;
TRUNC(SYSDATE)
-------------------
2017-03-03 00:00:00
2) 时间截取到小时,分钟
SQL> select trunc(sysdate,'hh') "hh",trunc(sysdate,'mi') "mi" from dual;
hh mi
------------------- -------------------
2017-03-03 15:00:00 2017-03-03 15:34:00
3) 返回本周周一
SQL> select trunc(sysdate,'iw') from dual;
TRUNC(SYSDATE,'IW')
-------------------
2017-02-27 00:00:00
4) 返回本周周日
SQL> select trunc(to_date('2008.08.08','yyyy.mi,ss'),'d') from dual;
TRUNC(TO_DATE('2008
-------------------
2008-02-24 00:00:00
8、 ROUND
SQL> select round(dd,'month'),round(dd,'year'),trunc(dd,'month'),trunc(dd,'year') from
2 (select to_date('2008-08-15','yyyy-mm-dd')as dd from dual);
ROUND(DD,'MONTH') ROUND(DD,'YEAR') TRUNC(DD,'MONTH') TRUNC(DD,'YEAR')
------------------- ------------------- ------------------- -------------------
2008-08-01 00:00:00 2009-01-01 00:00:00 2008-08-01 00:00:00 2008-01-01 00:00:00
最新文章
- JavaWeb路径问题打包总结--小心出门右转404
- POJ 3278 题解
- python协程
- 团队开发---NABC分析
- Linux江湖01:玩转Linux系统的方法论 (转载)
- 并查集及其简单应用:优化kruskal算法
- MVC 的 视图中 @section 是什么作用?
- HUST 1353 Dartboard
- Get host name and port(Object-c)
- 【轉】使用jQuery播放/暂停 HTML5视频
- CLR via C#读书日记一' 引用类型和值类型'
- 微信小程序picker的坑
- 艺术模板 art-template-web
- 分布式:Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- SmartGit/HG
- py4测试题
- mysql原理~undo
- Vue笔记:使用 VS Code 断点调试
- ES6 箭头函数易出错细节
- ra寄存器定位core
热门文章
- Flask - 请求处理流程和上下文源码分析
- MySql 内存表使用
- Clojure:通过ZeroMQ推送消息
- 输入法InputConnection
- MySQL数据库数据迁移到SQLserver
- Codeforces Round #Pi (Div. 2) —— C-Geometric Progression
- jenkins+jmeter+ant+jmeter在Jenkins上报告
- Oracle学习(12):存储过程,函数和触发器
- hdu1035 Robot Motion (DFS)
- jquery选中表格的某行变色