本文主要介绍Oracle最新用法的详细说明。本文通过一个简单的案例来说明对这项技术的理解和使用。以下是详细内容,有需要的朋友可以参考一下。
目录
TO_DATE格式(以时间:2007-11-02 13:45:25为例)1 .日期和字符转换函数(to_date,To_char)2的用法。字符串和时间相互转化。3.找出星期几。4.两天之间的天数。5.空时间的使用。6.月份差异。7.日期格式冲突。8.查询特殊条件天数。9.找出第10个月的用法。次日。11.获取小时数。12.处理月份的日期。13.处理一个月中不确定的天数。14.找出今年的天数。Rr差异16。不同时区的处理。间隔18 . 5秒。一年中的第19天。计算小时、分钟、秒、毫秒20.next_day函数21、round[舍入到最近的日期](day:舍入到最近的星期日)22、trunc[截断到最近的日期(以天为单位)”,返回
TO_DATE格式(以时间:2007-11-02 13:45:25为例)
年份:
Yy两位数两年显示值:07
Yyy三位数三位数年份显示值:007
Yyyfourdigits四位数年份显示值:2007
月份:
Mm数字两个月显示值:11
monrevised字符集表示显示值:11月;如果是英文版,它会显示11月11日
月拼出字符集表示显示值:11月;如果是英文版,则显示11月。
日期:
显示月份中的星期几:02
DDNUMBER显示今年的哪一天:02
dy是星期几的缩写?缩写显示值:星期五;如果是英文版,将显示Fri。
Day拼出星期几的全称是?显示值:星期五;如果是英文版,则显示星期五。
小时:
Hh两位数12小时十进制显示值:01
Hh24两位数24小时十进制显示值:13
分钟:
Mi两位数60十进制显示值:45
第二:
Ss两位数60十进制显示值:25
其他的
Q位数的季度显示值:4
当前年份中WW数字的第几周显示值:44
w位数显示的当月星期值:1
24小时制的时间范围是:0:00:00-23:59:59。
12小时制的时间范围是:1:00:00-12:59:59。
1. 日期和字符转换函数用法(to_date,to_char)
从dual中选择to_char(sysdate,' yyyy-mm-dd hh24:mi:ss ')作为nowTime//日期被转换成字符串
select to_char(sysdate,' yyyy ')as now year from dual;//获取时间的年份
select to_char(sysdate,' mm ')as now month from dual;//获取时间的月份
从dual中选择to_char(sysdate,' dd ')作为nowDay//获取当天的时间
从dual中选择to_char(sysdate,' hh24 ')作为nowHour//获取时间的时间
select to_char(sysdate,' mi ')as now minute from dual;//获取时间的分钟数
select to_char(sysdate,' ss ')as now second from dual;//获取时间的秒数
2. 字符串和时间互转
select to _ date(' 2004-05-07 13:23:44 ',' yyyy-mm-dd hh24:mi:ss') from dual
Select _ char (to _ date (222,' j '),' JSP') from dual//Show二百二十二
3.求某天是星期几
select to _ char(to _ date(' 2002-08-26 ',' yyyy-mm-dd ',' day ')from dual;//星期一
select to _ char(to _ date(' 2002-08-26 ',' yyyy-mm-dd '),' day ',
NLS _日期_语言=美国')从对偶;//星期一
//设置日期语言
ALTER SESSION SET NLS _日期_语言='美国';
//也可以这样。
截止日期(' 2002年8月26日','年月日',' NLS日期语言=美国')
4. 两个日期间的天数
从dual中选择floor(sysdate-to _ date(' 2002 04 05 ',' yyyymmdd ');
5. 时间为null的用法
从表1中选择id,active_date
联盟
select 1,TO _ DATE(null)from dual;//小心使用TO_DATE(null)
6.月份差
介于to_date('20011201 ',' yyyymmdd ')和to_date('20011231 ',' yyyymmdd ')之间的_date
//那么12月31日中午12点以后,12月1日12点以前不在此范围内。
//所以,当时间需要精确的时候,我觉得to_char还是很有必要的。
7. 日期格式冲突问题
输入格式取决于您安装的ORACLE字符集的类型,如US7ASCII,date。日期格式的类型为“01-Jan-01”
更改系统设置NLS日期语言=美国
更改会话集非线性系统(Non-Linear System)日期语言=美国
//或者在截止日期中写
select to _ char(to _ date(' 2002-08-26 ',' yyyy-mm-dd '),
日',' NLS _日期_语言=美国');
//注意我这只是举了非线性系统(Non-Linear System)日期语言,当然还有很多,可查看
select * from nls _会话_参数
从五美元NLS _参数中选择*
8.查询特殊条件天数
选择计数(*)
来自(选择rownum-1 rnum
从所有_对象
其中rownum=to_date('2002-02-28 ',' yyyy-mm-dd') - to_date('2002-
02-01 ',' yyyy-mm-dd') 1
)
where to _ char(to _ date(' 2002-02-01 ',' yyyy-mm-dd') rnum-1,' D ')
不在(' 1 ',' 7 ')
//查找2002-02-28至2002-02-01间除星期一和七的天数
//在前后分别调用数据库管理系统实用程序.GET_TIME,让后将结果相减(得到的是1/100秒,而不是毫秒).
9. 查找月份
select months _ between(to _ date(' 01-31-1999 ',' MM-DD-YYYY '),
to_date('12-31-1998 ',' MM-DD-YYYY ')' MONTHS ' FROM DUAL;
//结果为:1
select months _ between(to _ date(' 02-01-1999 ',' MM-DD-YYYY '),
to_date('12-31-1998 ',' MM-DD-YYYY ')' MONTHS ' FROM DUAL;
//结果为:1.03225806451613
10. Next_day的用法
下一天(日期,日)
周一至周日,为格式代码日
周一至周日,格式代码镝
1-7,用于格式代码D
11.获得小时数
//提取()找出日期或间隔值的字段值
从报价中选择提取(时间戳"2001-02-16 2:38:40"的小时)
select sysdate,to_char(sysdate,' hh ')from dual;
SYSDATE TO_CHAR(SYSDATE,' HH ')
- -
2003-10-13 19:35:21 07
select sysdate,to_char(sysdate,' hh24 ')from dual;
SYSDATE TO_CHAR(SYSDATE,“HH24”)
- -
2003-10-13 19:35:21 19
12.年月日的处理
挑选
旧日期,
更新日期,
年,
几个月,
ABS(
TRUNC(
更新日期-添加月数(旧日期,年* 12个月)
)
)天
从
(
挑选
TRUNC(
月之间(较新日期,较旧日期)/12
)年,
MOD(
TRUNC(
月之间(较新日期,较旧日期)
),
12
)月,
更新日期,
旧日期
从
(
挑选
雇佣日期更早的日期,
ADD_MONTHS (hiredate,ROWNUM) ROWNUM newer_date
从
电磁脉冲
)
)
13.处理月份天数不定的办法
select to _ char(add _ months(last _ day(sysdate)1,-2),' yyyymmdd '),last_day(sysdate) from dual
14.找出今年的天数
select add_months(trunc(sysdate,' year '),12) - trunc(sysdate,' year') from dual
//闰年的处理方法
to _ char(last _ day(to _ date(' 02 ' | |:year,' mmyyyy '),' dd ')
//如果是28就不是闰年
15.yyyy与rrrr的区别
YYYY99 TO_C
- -
yyyy 99 0099
rrrr 99 1999
yyyy 01 0001
rrrr 01 2001
16.不同时区的处理
select to_char( NEW_TIME( sysdate,' GMT ',' EST ',' dd/mm/yyyy hh:mi:ss '),
来自双重的的系统日期
17. 5秒钟一个间隔
select TO _ DATE(FLOOR(TO _ CHAR(sysdate,' SSSSS')/300) * 300,' ssssss '),
来自双重的的TO_CHAR(sysdate,' SSSSS ')
//2002-11-1 9:55:00 35786
//SSSSS表示5位秒数
18.一年的第几天
select TO_CHAR(SYSDATE,' DDD '),sysdate from dual
//310 2002-11-6 10:03:51
19.计算小时,分,秒,毫秒
挑选
天,
一,
TRUNC(一天24小时制),
TRUNC (A * 24 * 60 - 60 * TRUNC(A * 24))分钟,
TRUNC(
一件* 24 * 60 * 60 - 60 * TRUNC(一件* 24 * 60)
)秒,
TRUNC(
一个* 24 * 60 * 60 * 100 - 100 * TRUNC(一个* 24 * 60 * 60)
)毫秒
从
(
挑选
TRUNC(系统日期)天,
系统日期——TRUNC(系统日期)A
从
双重的
)选择
*
从
标签名
以.排序
DECODE (MODE,' FIFO ',1,- 1) * TO_CHAR (rq,' yyyymmddhh24miss ')
//下限((日期2-日期1) /365)作为年
//地板((日期2-日期1,365) /30)作为月
//d(mod(日期2-日期1,365),30)作为日。
20.next_day函数
//返回下个星期的日期,天为1-7或星期日-星期六,1表示星期日
下一天(系统日期,6)是从当前开始下一个星期五。后面的数字是从星期日开始算起。
//1 2 3 4 5 6 7
//日一二三四五六
select(sysdate-to _ date(' 2003-12-03 12:55:45 ',' yyyy-mm-DD hh24:mi:ss ')* 24 * 60 * 60 from dual
//日期返回的是天然后转换为悬浮物
21,round[舍入到最接近的日期](day:舍入到最接近的星期日)
选择系统日期S1,
圆(系统日期)S2,
圆(系统日期,"年")年,
round(系统日期,“月”)月,
双重的的round(系统日期,“日”)日
22,trunc[截断到最接近的日期,单位为天] ,返回的是日期类型
选择系统日期S1,
trunc(sysdate) S2,//返回当前日期,无时分秒
trunc(系统日期,“年份”)年,//返回当前年的一月一日,无时分秒
trunc(系统日期,'月')月,//返回当前月的一日,无时分秒
trunc(sysdate,' day') DAY //返回当前星期的星期天,无时分秒
从双重
23,返回日期列表中最晚日期
选择最大(' 01-1月-04','04-1月-04','10-2月-04 ')来自对偶
24.计算时间差
注:甲骨文时间差是以天数为单位,所以换算成年月,日
select floor(to _ number(sysdate-to _ date(' 2007-11-02 15:55:03 ',
yyyy-mm-DD hh24:mi:ss ')/365)作为双重的的跨度年//时间差-年
select ceil(moths _ between(sysdate-to _ date(' 2007-11-02 15:55:03),
yyyy-mm-dd hh24:mi:ss '))作为span dual的月份//时间差-月
select floor(to _ number(sysdate-to _ date(' 2007-11-02 15:55:03 ',
yyyy-mm-dd hh24:mi:ss '))作为从dual //时间差-天
select floor(to _ number(sysdate-to _ date(' 2007-11-02 15:55:03 ',
yyyy-mm-DD hh24:mi:ss ')* 24)作为span dual的工作时间//时间差-时
select floor(to _ number(sysdate-to _ date(' 2007-11-02 15:55:03 ',
yyyy-mm-DD hh24:mi:ss ')* 24 * 60)作为dual距离dual的分钟数//时间差-分
select floor(to _ number(sysdate-to _ date(' 2007-11-02 15:55:03 ',
yyyy-mm-DD hh24:mi:ss ')* 24 * 60 * 60)作为span dual的秒数//时间差-秒
25.更新时间
//oracle时间加减是以天数为单位,设改变量为n,所以换算成年月,日
select to_char(sysdate,' yyyy-mm-dd hh24:mi:ss '),
to_char(sysdate n*365,' yyyy-mm-dd hh24:mi:ss ')作为dual的新时间//改变时间-年
select to_char(sysdate,' yyyy-mm-dd hh24:mi:ss '),
add_months(系统日期,n)作为dual的新时间//改变时间-月
select to_char(sysdate,' yyyy-mm-dd hh24:mi:ss '),
to_char(系统日期n,' yyyy-mm-dd hh24:mi:ss ')作为dual的新时间//改变时间-日
select to_char(sysdate,' yyyy-mm-dd hh24:mi:ss '),
to_char(系统日期n/24,' yyyy-mm-dd hh24:mi:ss ')作为来自dual //的新时间改变时间-时
select to_char(sysdate,' yyyy-mm-dd hh24:mi:ss '),
to_char(系统日期n/24/60,' yyyy-mm-dd hh24:mi:ss ')作为来自dual //的新时间改变时间-分
select to_char(sysdate,' yyyy-mm-dd hh24:mi:ss '),
to_char(系统日期n/24/60/60,' yyyy-mm-dd hh24:mi:ss ')作为来自dual //的新时间改变时间-秒
26.查找月的第一天,最后一天
SELECT Trunc(Trunc(SYSDATE,' MONTH') - 1,' MONTH') First_Day_Last_Month,
Trunc(SYSDATE,' MONTH') - 1/86400最后一天最后一个月,
Trunc(SYSDATE,' MONTH') First_Day_Cur_Month,
最后一天(Trunc(SYSDATE,' MONTH')) 1 - 1/86400最后一天当前月份
来自双重的
到此这篇关于神谕之截止日期用法详解的文章就介绍到这了,更多相关神谕之截止日期内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。