数据库 函数_spring123666的博客-程序员宅基地

技术标签: date  sybase  oracle  数据库  360  sql  

一、oracle

 

      1、oracle当月、当年、本周数据

 

           当月数据:

              select * from table t   where t.create_time >=TRUNC(SYSDATE, 'MM')   and t.create_time<=last_day(SYSDATE)  

 

           当年数据:

                select *  from  table t    where t.create_time >=trunc(sysdate, 'YYYY')     and t.create_time<=add_months(trunc(sysdate, 'YYYY'),12)-1  
 
           本周数据:
              国外周日为一个星期第一天: where t.create_time >=trunc(sysdate, 'day')+1  and t.create_time<=trunc(sysdate, 'day')+6
              国内周一为一个星期第一天: where t.create_time >=trunc(next_day(sysdate-8,1)+1) and t.create_time<=trunc(next_day(sysdate-8,1)+7)+1 
 
 

     2、常用日期数据格式

 

           1).Y或YY或YYY 年的最后一位,两位或三位

 

2).Q 季度 1~3月为第一季度,2表示第二季度。

 

            SQL> Select to_char(sysdate,'Q') from dual;

                    TO_CHAR(SYSDATE,'Q')

 

3).MM 月份数

SQL> Select to_char(sysdate,'MM') from dual;

TO_CHAR(SYSDATE,'MM')

 

4).RM 月份的罗马表示 (V在罗马数字中表示 5)

SQL> Select to_char(sysdate,'RM') from dual;

TO_CHAR(SYSDATE,'RM')                      --结果:若当前时间是2011-3-29日  打印结果为:III

 

5).Month 用9个字符长度表示的月份名

SQL> Select to_char(sysdate,'Month') from dual;

TO_CHAR(SYSDATE,'MONTH')                --结果:若当前时间是2011-3-29日  打印结果为:3月

 

6).WW 当年第几周 (2007年5月29日为2007年第22周)

SQL> Select to_char(sysdate,'WW') from dual;

TO_CHAR(SYSDATE,'WW')
---------------------
22

 

7).W 本月第几周 (2007年5月29日为5月第5周)

SQL> Select to_char(sysdate,'W') from dual;

TO_CHAR(SYSDATE,'W')
--------------------
5

 

8).DDD 当年第几天 (2007年5月29日为2007年第149天)

SQL> Select to_char(sysdate,'DDD') from dual;

TO_CHAR(SYSDATE,'DDD')
----------------------
149

 

9). DD 当月第几天

SQL> Select to_char(sysdate,'DD') from dual;

TO_CHAR(SYSDATE,'DD')
---------------------
29

 

10).D 周内第几天

SQL> Select to_char(sysdate,'D') from dual;

TO_CHAR(SYSDATE,'D')
--------------------
3

 

11).DY 中文的星期几 ( (2007年5月29日为星期二))

SQL> Select to_char(sysdate,'DY') from dual;

TO_CHAR(SYSDATE,'DY')
---------------------
星期二

 

12).HH或HH12 12进制小时数 (16:09分为用12小时制计时为4点)

SQL> Select to_char(sysdate,'HH') from dual;

TO_CHAR(SYSDATE,'HH')
---------------------
04

 

13).HH24 24小时制

SQL> Select to_char(sysdate,'HH24') from dual;

TO_CHAR(SYSDATE,'HH24')

3、常用时间函数

 

1).trunc(sysdate,'Q') 本季度第一天

SQL> select trunc(sysdate,'Q') from dual;

TRUNC(SYSDATE,'Q')
------------------
2007-4-1

 

2).trunc(sysdate,'D') 本周的第一天(周日)

SQL> select trunc(sysdate,'D')from dual;

TRUNC(SYSDATE,'D')
------------------
2007-5-27

3).last_day(sysdate) 本月最后一天

SQL> select last_day(sysdate) from dual;

LAST_DAY(SYSDATE)
-----------------
2007-5-31 15:20:3

 

4).add_months(sysdate,2) 日期sysdate后推2个月
SQL> select add_months(sysdate,2) from dual;

ADD_MONTHS(SYSDATE,2)
---------------------
2007-7-29 15:21:14

 

5).next_day(sysdate,2) 日期sysdate之后的第一周中,第2(指定星期的第几天)是什么日期

SQL> select next_day(sysdate,2) from dual;

NEXT_DAY(SYSDATE,2)
-------------------
2007-6-4 15:22:10

 

6).Months_between(f,s) 日期f和s间相差月数

SQL> select months_between(sysdate,to_date('2007-04-12','yyyy-mm-dd'))from dual;

MONTHS_BETWEEN(SYSDATE,TO_DATE
------------------------------
1.56909908900836


7).得到SYSDATE+5所在的月份

SQL> SELECT to_char(SYSDATE+5,'mon','nls_date_language=american') FROM dual;

TO_CHAR(SYSDATE+5,'MON','NLS_D
------------------------------
jun

 

8).current_date()返回当前会话时区中的当前日期 。

 

9).select dbtimezone from dual;

 

10).extract()找出日期或间隔值的字段值

SQL> select extract(month from sysdate) "This Month" from dual;

This Month
----------
5
SQL> select extract(year from sysdate) "This year" from dual;

This year
----------
2007
SQL> select extract(month from add_months(sysdate,2)) " Month" from dual;

Month
----------
7


==================================================================

4、一些实践后的用法:

 

1).上月末天:
select to_char(add_months(last_day(sysdate),-1),'yyyy-MM-dd') LastDay from dual;

2).上月今天
SQL> select to_char(add_months(sysdate,-1),'yyyy-MM-dd') PreToday from dual;

3).上月首天
SQL> select to_char(add_months(last_day(sysdate)+1,-2),'yyyy-MM-dd') firstDay from dual;

4).要找到某月中所有周五的具体日期

SELECT to_char(b.a,'YY-MM-DD')
FROM ( SELECT trunc(SYSDATE,'mm')+ROWNUM-1 a
FROM dba_objects where rownum < 32 ) b
WHERE to_char(b.a,'day')='星期五';


如果把where to_char(t.d, 'MM') = to_char(sysdate, 'MM')改成sysdate-90,即为查找当前月份的前三个月中

的每周五的日期。


5).得到系统当前月及以后的日期

select trunc(sysdate, 'MM')+ROWNUM-1 FROM dba_objects ;

 

-----------------------------------

to_date 字符串类型转为换日期类型
字符串中的相应位置上的字符,必须符合时间范围的限制  

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

15.SS 秒数(0~59)

 

 

5、时间日期操作补充

 

sysdate+(5/24/60/60) 在系统时间基础上延迟5秒
sysdate+5/24/60 在系统时间基础上延迟5分钟
sysdate+5/24 在系统时间基础上延迟5小时
sysdate+5 在系统时间基础上延迟5天
add_months(sysdate,-5) 在系统时间基础上延迟5月
add_months(sysdate,-5*12) 在系统时间基础上延迟5年

本月的最后一秒:select trunc(add_months(sysdate,1),'MM') - 1/24/60/60 from dual

年初至今的天数:select ceil(sysdate - trunc(sysdate, 'year')) from dual;

判断当前时间是上午下午还是晚上
SELECT CASE
WHEN to_number(to_char(SYSDATE,'hh24')) BETWEEN 6 AND 11 THEN '上午'
WHEN to_number(to_char(SYSDATE,'hh24')) BETWEEN 11 AND 17 THEN '下午'
WHEN to_number(to_char(SYSDATE,'hh24')) BETWEEN 17 AND 21 THEN '晚上'
END
FROM dual;

将数字转换为任意时间格式.如秒:需要转换为天/小时
SELECT to_char(floor(TRUNC(936000/(60*60))/24))||'天'||to_char(mod(TRUNC(936000/(60*60)),24))||'小时' FROM DUAL

 

SQL> Select to_char(sysdate,'Y') from dual;

TO_CHAR(SYSDATE,'Y')
--------------------
7

SQL> Select to_char(sysdate,'YY') from dual;

TO_CHAR(SYSDATE,'YY')
---------------------
07

SQL> Select to_char(sysdate,'YYY') from dual;

TO_CHAR(SYSDATE,'YYY')

 

二、sybase

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/spring123666/article/details/6285633

智能推荐

中国情侣必去的国内十大浪漫圣地_ximenchuixuezijin的博客-程序员宅基地

1、丽江——追寻一米阳光的传说         清冷的玉龙雪山顶上,终年云雾缭绕,即使是在最晴朗的天气,阳光也很难穿透云层,传说每年秋分是日月交合同辉同映的日子,只有在特别偶然的时刻,才能看到有一米长的阳光照在山顶,而被这道阳光照耀到的人就能拥有一世不变的爱情。也许,这一瞬间

DuiLib消息处理剖析_a539284554的博客-程序员宅基地

本来想自己写写duilib的消息机制来帮助duilib的新手朋友,不过今天发现已经有人写过了,而且写得很不错,把duilib的主干消息机制都说明了,我就直接转载过来了,原地址:http://blog.163.com/hao_dsliu/blog/static/1315789082014101913351223/duilib官方github地址:...

【原创】Xadmin配置详情_Python_anning的博客-程序员宅基地

 此文为Python_anning原创,未经允许,不得随意转载! 首先安装Xadmin 由于Xadmin安装无法安装到最新,要最新版的可以去GitHub上Clone下来。 Xadmin GitHub地址https://github.com/sshwsfc/xadminpip install Django-Xadmin接下来需要在settings里的INSTALLED_APPS中注册...

分享java压力测试模版类 版本2_IamLsz的博客-程序员宅基地

在上一次,我们分享了一个压力测试的模板类,在模板类里面通过继承然后实现重写几个方法即可以实现压力测试,其本质就是由实现者去实现具体的测试逻辑,将功能代码独立抽离出来实现复用。然而,继承存在着一些缺点是无法避免的。比如具体的失去了灵活性,而且如果java不支持多继承,意味着测试类会被限制少了继承其他类的能力,再者之前的代码对外部暴露的接口过多,无法对用户实现彻底的透明。因此对原先的代码采用了Func

HDU2049不容易系列之(4)——考新郎 错排_DouglasConnor的博客-程序员宅基地

不容易系列之(4)——考新郎Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 50923 Accepted Submission(s): 18570Problem Description国庆期间,省城HZ刚刚举行了一场盛大的集体...

HDU2049不容易系列之(4)——考新郎 错排_DouglasConnor的博客-程序员宅基地

不容易系列之(4)——考新郎Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 50923 Accepted Submission(s): 18570Problem Description国庆期间,省城HZ刚刚举行了一场盛大的集体...

随便推点

在Gulp中的使用插件进行文件操作_火鸡面多放火鸡的博客-程序员宅基地

在Gulp中的使用插件进行文件操作一、使用gulp-sass转换scss文件二、使用gulp-babel转换js文件三、使用模板引擎插件gulp-swig用于处理html文件四、使用gulp-imagemin插件转换图片和字体五、使用gulp-load-plugins避免重复引入插件动作六、使用del插件清除文件七、梳理代码一、使用gulp-sass转换scss文件先单独为node-sass配置镜像源yarn config set sass_binary_site http://cdn.npm.tao

python编程一球从100米_Python基础练习实例20(弹球问题)_weixin_39567046的博客-程序员宅基地

题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?分析:第一次:落地经过100第二次:100+100/2*2第三次:100+100/2*2+100/2/2*2第四次:100+100/2*2+100/2/2*2+100/2/2/2*2总结规律,进行计算。程序源代码:Python 实例#!/usr/bin/python# -*...

jdbc连接池java_JDBC连接池-自定义连接池_梧桐应恨夜来霜的博客-程序员宅基地

JDBC连接池java JDBC连接中用到Connection 在每次对数据进行增删查改 都要 开启 、关闭 ,在实例开发项目中 ,浪费了很大的资源 ,以下是之前连接JDBC的案例packagecom.jdbc.connection;importjava.io.IOException;importjava.io.InputStream;importjava.sql.Connection;i...

orcale的DDL与DML_☆枭★的博客-程序员宅基地

sql语句类型:DDL:数据库定义语言DML:数据库操作语言 增删改DCL:数据控制语言DML:增加:insert into 表名(字段名) values (字段值);删除:delect from 表名 where 字段改:update 表名 set 字段=‘值’ where 字段插入:&amp; 动态插入insert into emp(ename) values (&amp;e...

vue 目录名称详解_vue目录详解_weixin_39673471的博客-程序员宅基地

1. build文件夹:打包配置的文件夹2. config文件夹:打包的配置,webpack对应的配置3. src文件夹:开发项目的源码4. App.vue : 入口组件 :项目入口文件,页面级vue组件5. static文件夹:静态资源,图片6. .babelrc:ES6解析的配置7. .gitignore:忽略某个或一组文件git提交的一个配置8. index.html:单页面的入口,通过we...

stellar.js_Felicity_Gao的博客-程序员宅基地

stellar.js文档配置选项$.stellar({ // Set scrolling to be in either one or both directions horizontalScrolling: true, verticalScrolling: true, // Set the global alignment offsets horizontalOffset: 0,

推荐文章

热门文章

相关标签