日期及日期格式:

获取系统日期:

sysdate()  

格式化日期

to_char(sysdate(),'yyyy-mm-dd,hh24:mi:ss')
to_date(sysdate(),'yyyy-mm-dd,hh24:mi:ss')

注:

to_char 把日期或数字转换为字符串

to_char(number, '格式')
to_char(salary, '$99,999.99')
to_char(date, '格式')

to_date 把字符串转换为数据库中的日期类型

to_date(char, '格式')

转换格式:

表示 year 的:

y 表示年的最后一位

yy 表示年的最后2位

yyy 表示年的最后3位

yyyy 用4位数表示年

表示 month 的:

mm 用2位数字表示月

mon 用简写形式, 比如11月或者nov

month 用全称, 比如11月或者november

表示 day 的:

dd 表示当月第几天

ddd 表示当年第几天

dy 当周第几天,简写, 比如星期五或者fri

day 当周第几天,全称, 比如星期五或者friday

表示 hour 的:

hh 2位数表示小时 12进制

hh24 2位数表示小时 24小时

表示minute的:

mi 2位数表示分钟

表示second的:

ss 2位数表示秒 60进制

表示季度的:

q 一位数 表示季度 (1-4)

另外还有ww 用来表示当年第几周 w用来表示当月第几周。

24小时制下的时间范围:00:00:00-23:59:59

12小时制下的时间范围:1:00:00-12:59:59

例子:

返回系统日期: 2018/1/19 22:44:54

select sysdate from dual;

格式化: 2018-01-19 22:46:59

select to_char(sysdate,'yy-mm-dd hh24:mi:ss') from dual 

获取昨天:2018/1/18

select trunc(sysdate-1) from dual;

获取上个月第一天:2017/12/1

select add_months(trunc(sysdate,'MON'),-1) from dual

select add_months(trunc(sysdate,'MON'),-13) from dual

获得本季度第一天:2018/1/1

select trunc(add_months(sysdate,0),'Q') from dual

获得上季度第一天:2017/10/1

select trunc(add_months(sysdate,-3),'Q') from dual

补充

当前时间减去7分钟的时间

select sysdate,sysdate - interval '' MINUTE from dual;

当前时间减去7小时的时间

select sysdate - interval '' hour from dual;
当前时间减去7天的时间

select sysdate - interval '' day from dual;
当前时间减去7月的时间
select sysdate,sysdate - interval '' month from dual;
当前时间减去7年的时间
select sysdate,sysdate - interval '' year from dual;
时间间隔乘以一个数字
select sysdate,sysdate - 8*interval '' hour from dual;
Oracle 常用的时间函数
Sysdate : 当前日期和时间
SQL> Select sysdate from dual;
2018/1/19 23:15:20
Last_day : 本月最后一天
SQL> Select last_day(sysdate) from dual;
2018/1/31 23:16:24
Add_months(d,n) : 当前日期d后推n个月,用于从一个日期值增加或减少一些月份
SQL> Select add_months(sysdate,2) from dual;
2018/3/19 23:18:29
Months_between(f,s) : 日期f和s间相差月数
SQL> select months_between(sysdate,to_date('2017-8-1','yyyy-mm-dd'))from dual;
5.6120034348865
NEXTDAY(d, dayofweek) : 返回由"dayofweek"命名的,在变量"d"指定的日期之后的第一个工作日的日期。参数"dayof_week"必须为该星期中的某一天。
SQL> SELECT next_day(to_date('2017-08-20','YYYY-MM-DD'),1) FROM dual;
2017/8/27

常用日期数据格式(该段为摘抄)

Y或YY或YYY 年的最后一位,两位或三位 Select to_char(sysdate,’YYY’) from dual; 002表示2002年

SYEAR或YEAR SYEAR使公元前的年份前加一负号 Select to_char(sysdate,’SYEAR’) from dual; -1112表示公元前1112年

Q 季度,1~3月为第一季度 Select to_char(sysdate,’Q’) from dual; 2表示第二季度

MM 月份数 Select to_char(sysdate,’MM’) from dual; 12表示12月

RM 月份的罗马表示 Select to_char(sysdate,’RM’) from dual; IV表示4月

Month 用9个字符长度表示的月份名 Select to_char(sysdate,’Month’) from dual; May后跟6个空格表示5月

WW 当年第几周 Select to_char(sysdate,’WW’) from dual; 24表示2002年6月13日为第24周

W 本月第几周 Select to_char(sysdate,’W’) from dual; 2002年10月1日为第1周

DDD 当年第几, 1月1日为001,2月1日为032 Select to_char(sysdate,’DDD’) from dual; 363 2002年1 2月2 9日为第363天

DD 当月第几天 Select to_char(sysdate,’DD’) from dual; 04 10月4日为第4天

D 周内第几天 Select to_char(sysdate,’D’) from dual; 5 2002年3月14日为星期一

DY 周内第几天缩写 Select to_char(sysdate,’DY’) from dual; SUN 2002年3月24日为星期天

HH或HH12 12进制小时数 Select to_char(sysdate,’HH’) from dual; 02 午夜2点过8分为02

HH24 24小时制 Select to_char(sysdate,’HH24’) from dual; 14 下午2点08分为14

MI 分钟数(0~59) Select to_char(sysdate,’MI’) from dual; 17下午4点17分

SS 秒数(0~59) Select to_char(sysdate,’SS’) from dual; 22 11点3分22秒

提示注意不要将MM格式用于分钟(分钟应该使用MI)。MM是用于月份的格式,将它用于分钟也能工作,但结果是错误的。

现在给出一些实践后的用法:

1。上月末天:

select to_char(add_months(last_day(sysdate),-1),'yyyy-MM-dd') LastDay from dual;
2017-12-31
2。上月今天 select to_char(add_months(sysdate,-1),'yyyy-MM-dd') PreToday from dual;
2017-12-19
3.上月首天 select to_char(add_months(last_day(sysdate)+1,-2),'yyyy-MM-dd') firstDay from dual;
2017-12-01
4.按照每周进行统计 SQL> select to_char(sysdate,'ww') from dual group by to_char(sysdate,'ww');
03
5。按照每月进行统计 select to_char(sysdate,'mm') from dual group by to_char(sysdate,'mm');
01
6。按照每季度进行统计 select to_char(sysdate,'q') from dual group by to_char(sysdate,'q');
1
7。按照每年进行统计 select to_char(sysdate,'yyyy') from dual group by to_char(sysdate,'yyyy');
2018
8.要找到某月中所有周五的具体日期 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')) = '星期五' ;
18-01-05
18-01-12
18-01-19
18-01-26
如果把where to_char(t.d, 'MM') = to_char(sysdate, 'MM')改成sysdate-90,即为查找当前月份的前三个月中的每周五的日期。

Oracle SQL日期及日期格式获取命令的更多相关文章

  1. Oracle SQL函数之日期函数

    sysdate [功能]:返回当前日期. [参数]:没有参数,没有括号 [返回]:日期 SQL> SELECT SYSDATE FROM DUAL; SYSDATE ----------- // ...

  2. Oracle Sql优化之日期的处理

    1.时,分,秒,年,月,日等日期的常用取值方法 select hiredate, to_number(to_char(hiredate,'hh24')) 时, to_number(to_char(hi ...

  3. Oracle SQL Developer 查询时间格式

    工具->首选项->数据库->NLS->日期格式: DD-MON-RR 修改为: YYYY-MM-DD HH24:MI:SS

  4. DateTime日期格式获取 分类: C# 2014-04-15 10:36 233人阅读 评论(0) 收藏

    c#.net 获取时间年月日时分秒格式 //获取日期+时间 DateTime.Now.ToString();            // 2008-9-4 20:02:10 DateTime.Now. ...

  5. C# 把字符串类型日期转换为日期类型

    方法一:Convert.ToDateTime(string) string格式有要求,必须是yyyy-MM-dd hh:mm:ss ================================== ...

  6. C# 把字符串类型日期转换为日期类型(转载)

    C# 把字符串类型日期转换为日期类型   来源:https://www.cnblogs.com/raincedar/p/7009243.html 方法一:Convert.ToDateTime(stri ...

  7. SQL Server 取日期时间格式 日期与字符串之间的转换

    SQL Server 取日期时间部分   在本文中,GetDate()获得的日期由两部分组成,分别是今天的日期和当时的时间: Select GetDate()  用DateName()就可以获得相应的 ...

  8. 常用SQL时间格式SQLServer中文版的默认的日期字段datetime格式是yyyy-mm-d

    常用SQL时间格式 SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm 例如: select getdate() -- ::08.177 ...

  9. SQL中CONVERT日期不同格式的转换用法

    SQL中CONVERT日期不同格式的转换用法 格式: CONVERT(data_type,expression[,style]) 说明:此样式一般在时间类型(datetime,smalldatetim ...

随机推荐

  1. PyCharm设置完自动上传,却不会自动上传任何内容

    Upload changed files automatically to the default server 选择了 Always 下面有一个提示 Default server or group ...

  2. JAVA学习路线,实战开发

     Java基础课程内容包含:Java开发介绍.Java数组.Java面向对象.常用基础类.集合.IO流.多线程.异常.反射.  第一部分:Java开发介绍  1. DOS常用命令  2. JVM.JR ...

  3. linux的路由功能实现

    参考URL: https://blog.csdn.net/chengqiuming/article/details/80140768 一,启用Linux的路由转发功能. 二,新建veth pair 三 ...

  4. LeetCode 1243 数组变换

    地址 https://leetcode-cn.com/contest/biweekly-contest-12/problems/array-transformation/ 首先,给你一个初始数组 ar ...

  5. flask中的endpoint、自定义转化器、与djnago中session区别、利用装饰器实现登录认证

    flask路由中的endpoint 与自定义转化器 ''' endpoint主要用于 反向解析, 例如:login函数中配的路由是/login,其中endpoint='lg' 则在其他函数,可以用 u ...

  6. vue框架学习笔记(vue入门篇)

    vue框架 - 构建用户界面的渐进式框架 - 采用自底层向上增量开发的设计 - 核心库只关注视图层 - 当与单文件组件和vue生态系统支持的库结合使用时,也完全能够为复杂的单页应用程序提供驱动 - v ...

  7. win10系统使用Telnet命令时提示“telnet不是内部或外部命令”

    in10系统使用Telnet命令时提示“telnet不是内部或外部命令”问题的处理方案 win10系统使用的过程中很多用户会遇到使用Telnet命令时提示“telnet不是内部或外部命令”的问题,这样 ...

  8. Codeforces Round #602 (Div. 2, based on Technocup 2020 Elimination Round 3) D2. Optimal Subsequences (Hard Version) 数据结构 贪心

    D2. Optimal Subsequences (Hard Version) This is the harder version of the problem. In this version, ...

  9. 利用Runtime对Ivar实例变量进行共用的归档和解档方式

    一.介绍 在OC中每一个对象持有的变量都是实例变量,实例变量包括成员变量和属性变量,在runtime中用Ivar表示对象的实例变量.其实,runtime源码中可以看到,Ivar也是一个结构体(基本上在 ...

  10. Laravel配置全局公共函数

    在Laravel项目中我们常常需要定义一些全局的公共函数,通常我们会将这些公共函数定义在一个单独的文件里,如helpers.php中.我们在app目录下创建一个名为helpers.php的文件(app ...