关于Oracle日期格式

合集下载

oracle格式化日期

oracle格式化日期

oracle格式化⽇期--环境select *from v$version;SELECT SESSIONTIMEZONE FROM DUAL;show parameter nls;-- - / , . ; : 指定返回字串分隔符select to_char(sysdate,'yyyy/mm/dd') from dual;select to_char(sysdate,'yyyy:mm:dd') from dual;--AD/A.D. 公元标识select to_char(sysdate,'AD YYYY-MM-DD') from dual;--BC/B.C. 公元标识select to_char(sysdate,'BC YYYY-MM-DD') from dual;--CC/SCC 世纪标识,S前缀指定如遇公元前的显⽰,会在显⽰前加(-)select to_char(to_date('2014-8-3','YYYY-MM-DD'),'cc') from dual;--D 指定⽇期在周中的数值(范围:1-7)select to_char(to_date('2014-03-07','YYYY-MM-DD'),'D') from dual; --6--DAY 指定⽇期在周中的名称select to_char(to_date('2014-03-07','YYYY-MM-DD'),'DAY') from dual; --星期五--DD 指定⽇期在当⽉中的天数(范围:1-31)select to_char(to_date('2014-03-07','yyyy-mm-dd'),'DD') from dual; --07--DDD 指定⽇期在当年中的天数(范围:1-366)select to_char(to_date('2014-03-07','yyyy-mm-dd'),'DDD') from dual; --066--MON 返回指定⽇期的⽉份简写select to_char(sysdate,'MON') from dual;--MONTH 返回指定⽇期的⽉份全称select to_char(sysdate,'MONTH') from dual;--YEAR/SYEAR 返回字符型年,此处 S前缀指定如遇公元前的显⽰,会在显⽰前加(-) select to_char(sysdate,'YEAR') from dual; --TWENTY FOURTEENselect to_char(sysdate,'SYEAR') from dual;--YYYY/SYYYY 返回数字型年,此处S前缀指定如遇公元前的显⽰,会在显⽰前加(-) select to_char(sysdate,'YYYY') from dual;select to_char(sysdate,'SYYYY') from dual;--MM 返回指定⽇期的⽉份(范围:1-12)select to_char(sysdate,'MM') from dual;--HH/HH12 ⼩时(范围:1-12)select to_char(sysdate,'HH') from dual;select to_char(sysdate,'AMHH') from dual;select to_char(sysdate,'HH12') from dual;select to_char(sysdate,'AMHH12') from dual; --下午05--HH24 ⼩时(范围:0-23)select to_char(sysdate,'HH24') from dual;select to_char(sysdate,'AMHH24') from dual; --下午17--MI 返回指定时间的分钟(范围0-59)select to_char(sysdate,'MI') from dual;-- SS 返回指定时间的秒数(范围:0-59)select to_char(sysdate,'SS') from dual;--FF[1-9] 返回毫秒数,可指定长度1-9,默认6位select to_char(systimestamp,'ff') from dual;select to_char(systimestamp,'ff4') from dual;--Y,YYY 返回有逗号分隔显⽰的年select to_char(sysdate,'y,yyy') from dual;--W 返回指定⽇期在当⽉中的第X周(范围:1-5)select to_char(to_date('2007-6-18','yyyy-mm-dd'),'w') from dual;select to_char(sysdate,'W') from dual--WW 返回指定⽇期在当年中的第X周(范围:1-53)select to_char(to_date('2007-6-18','yyyy-mm-dd'),'WW') from dual;select to_char(sysdate,'WW') from dual;--RM 以罗马数字形式返回⽉份(范围I-XII)select to_char(sysdate,'RM') from dual;--Q 返回指定⽇期的季度(范围:1-4)select to_char(sysdate,'q') from dual;--数字Select TO_CHAR(1.0123) FROM DUAL ;SELECT TO_CHAR(0.123,'0.0000') FROM DUAL;--FM去除空格Select TO_CHAR(10.12,'FM099.999') FROM DUAL ; --FM 去除空格Select TO_CHAR(10.12,'FM999.999') FROM DUAL ;Select TO_CHAR(123.0233,'FM9999999.0099') FROM DUAL;select to_char(389999.00,'9,999,999') from dual;--$ 字符前附加$符select to_char(18,'$999') from dual;select to_char(18,'999$') from dual;--0 字符头部或尾部附加0select to_char(18.0,'0999') from dual;select to_char(18.0,'9990.0000') from dual;--9 与上类似以指定长度返回数值格式,不过如果被格式化的数值长度短于指定格式,则以空格补⾜。

Oracle日期格式化以及extract函数的使用

Oracle日期格式化以及extract函数的使用

Oracle⽇期格式化以及extract函数的使⽤ 由于业务需要,这两天在学习Oracle,发现Oracle⾥⾯的⽇期它会给你转成⼀种很不习惯的格式,于是想着怎么样把它弄成年、⽉、⽇的格式来显⽰,查资料、看⽂档,最终找到解决办法了,其实是⽤到了to_char⽅法。

例如,在Oracle⾥⾯,⼀个表格⾥⽇期如2017-05-06,列名为time,查询后发现返回的是06-5⽉ -17这种格式的,看着贼不爽,要想把它转成年⽉⽇这种格式的,可以这样做,to_char(time, 'YYYY-MM-DD') as time // 括号⾥的time表⽰表中的列名,第⼆个time则表⽰转换后的⽇期列名仍然为time 现在转换后的⽇期就是这样的,2017-05-06 那么extract函数是⼲什么的呢?extract英语意思是提取、选取,顾名思义,它表⽰从⼀个date类型中截取某⼀特定的部分,例如,选取年或⽉或⽇。

例如有这样⼀个表格: 现在我要从表格myTable中选取time中年份为2018年的所有数据,可以这样做, select title,play,time from myTable where extract(year from time) = 2018;或者:select title,play,to_char(time, 'YYYY-MM-DD') as time from myTable where extract(year from time) = 2018 结果显然是都返回了(这⾥只是做个演⽰) 现在我要从表格myTable中选取time中⽉份为5的所有数据,操作为:select title,play,time from myTable extract(month from time) = 5;或者:select title,play,to_char(time, 'YYYY-MM-DD') as time from myTable where extract(month from time) = 5 从表格myTable中选取time中⽇期为6的所有数据,操作为:select title,play,time from myTable extract(day from time) = 6;或者:slect title,play,to_char(time, 'YYYY-MM-DD') as time from myTable where extract(day from time) = 6; 语法如下:extract(year|month|day|hour|minute|second from column_name) = value。

oracle日期格式

oracle日期格式

oracle⽇期格式to_date("要转换的字符串","转换的格式") 两个参数的格式必须匹配,否则会报错。

即按照第⼆个参数的格式解释第⼀个参数。

to_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:5912⼩时制下的时间范围:1:00:00-12:59:59⽐如:select to_char(sysdate,'yy-mm-dd hh24:mi:ss') from dual //显⽰:08-11-07 13:22:42select to_date('2005-12-25,13:25:59','yyyy-mm-dd,hh24:mi:ss') from dual //显⽰:2005-12-25 13:25:59⽽如果把上式写作:select to_date('2005-12-25,13:25:59','yyyy-mm-dd,hh:mi:ss') from dual,则会报错,因为⼩时hh是12进制,13为⾮法输⼊,不能匹配。

OracleSQL日期及日期格式获取命令

OracleSQL日期及日期格式获取命令

OracleSQL⽇期及⽇期格式获取命令⽇期及⽇期格式:获取⽇期: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⽉或者novmonth ⽤全称,⽐如11⽉或者november表⽰ day 的:dd 表⽰当⽉第⼏天ddd 表⽰当年第⼏天dy 当周第⼏天,简写,⽐如星期五或者friday 当周第⼏天,全称,⽐如星期五或者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:5912⼩时制下的时间范围:1:00:00-12:59:59例⼦:返回系统⽇期: 2018/1/19 22:44:54select sysdate from dual;格式化: 2018-01-19 22:46:59select to_char(sysdate,'yy-mm-dd hh24:mi:ss') from dual获取昨天:2018/1/18select trunc(sysdate-1) from dual;获取上个⽉第⼀天:2017/12/1select add_months(trunc(sysdate,'MON'),-1) from dualselect add_months(trunc(sysdate,'MON'),-13) from dual获得本季度第⼀天:2018/1/1select trunc(add_months(sysdate,0),'Q') from dual获得上季度第⼀天:2017/10/1select trunc(add_months(sysdate,-3),'Q') from dual补充当前时间减去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 dual;Oracle 常⽤的时间函数Sysdate :当前⽇期和时间SQL>Select sysdate from dual;2018/1/1923:15:20Last_day :本⽉最后⼀天SQL>Select last_day(sysdate) from dual;2018/1/3123:16:24Add_months(d,n) :当前⽇期d后推n个⽉,⽤于从⼀个⽇期值增加或减少⼀些⽉份SQL>Select add_months(sysdate,2) from dual;2018/3/1923:18:29Months_between(f,s) :⽇期f和s间相差⽉数SQL>select months_between(sysdate,to_date('2017-8-1','yyyy-mm-dd'))from dual;5.6120034348865NEXTDAY(d, dayofweek) :返回由"dayofweek"命名的,在变量"d"指定的⽇期之后的第⼀个⼯作⽇的⽇期。

oracle年月日时分秒的格式

oracle年月日时分秒的格式

Oracle年月日时分秒的格式一、概述在数据库系统中,日期和时间的处理是非常重要的一个方面。

Oracle数据库提供了丰富的日期和时间函数,可以满足不同的需求。

其中,日期和时间的格式化是其中的关键操作之一。

在Oracle中,我们可以使用不同的格式来表示年月日时分秒。

本文将详细介绍Oracle中年月日时分秒的格式化方法。

二、日期和时间的数据类型在Oracle数据库中,日期和时间被定义为特殊的数据类型。

主要的数据类型有DATE、TIMESTAMP和TIMESTAMP WITH TIME ZONE等。

这些数据类型可以存储年月日时分秒的信息。

2.1 DATE数据类型DATE数据类型是Oracle中最常用的日期和时间数据类型。

它可以存储从公元前4712年到公元9999年的日期和时间。

DATE数据类型的格式默认为”YYYY-MM-DD HH24:MI:SS”,其中YYYY表示年份,MM表示月份,DD表示日期,HH24表示小时(24小时制),MI表示分钟,SS表示秒钟。

2.2 TIMESTAMP数据类型TIMESTAMP数据类型是Oracle中用于存储日期和时间信息的另一种数据类型。

它可以存储更精确的时间信息,包括毫秒级别的精度。

TIMESTAMP数据类型的格式也是”YYYY-MM-DD HH24:MI:SS.FF”,其中FF表示毫秒。

2.3 TIMESTAMP WITH TIME ZONE数据类型TIMESTAMP WITH TIME ZONE数据类型是一种带有时区信息的日期和时间数据类型。

它可以存储时区偏移量,以便在不同的时区中正确地显示日期和时间。

TIMESTAMP WITH TIME ZONE数据类型的格式与TIMESTAMP数据类型相同。

三、日期和时间的格式化在Oracle数据库中,可以使用不同的函数来格式化日期和时间。

常用的函数有TO_CHAR、TO_DATE和TO_TIMESTAMP等。

3.1 TO_CHAR函数TO_CHAR函数用于将日期和时间数据类型转换为指定的字符串格式。

oracle的todate用法

oracle的todate用法

Oracle的todate用法1. 什么是Oracle的todate函数?在Oracle数据库中,todate是一个非常重要的函数,它用于将日期字符串转换为日期类型。

todate函数接受两个参数:第一个参数是日期字符串,第二个参数是日期格式模式。

2. todate函数的语法todate(date_string, format)•date_string: 一个表示日期的字符串。

•format: 可选参数,指定了日期字符串的格式模式。

3. todate函数支持的格式模式以下是一些常用的日期格式模式:•YYYY-MM-DD: 年-月-日•YYYY/MM/DD: 年/月/日•DD-MM-YYYY: 日-月-年•DD/MM/YYYY: 日/月/年•MM-DD-YYYY: 月-日-年•MM/DD/YYYY: 月/日/年此外,还有其他一些可以使用的格式模式,如:•YY-MM-DD HH24:MI:SS•YY/MM/DD HH24:MI:SS•YY/MM/DD HH12:MI:SS AM4. todate函数示例下面给出一些示例来演示todate函数的使用。

示例1:将字符串转换为日期类型假设我们有一个表格名为employees,其中有一个列名为hire_date。

该列存储了员工入职日期的信息。

现在我们想要将一个日期字符串'2022-01-01'插入到该列中。

INSERT INTO employees (hire_date) VALUES (todate('2022-01-01', 'YYYY-MM-DD'));示例2:将日期字符串转换为特定格式假设我们有一个表格名为orders,其中有一个列名为order_date。

该列存储了订单的下单日期信息。

现在我们想要查询出所有订单的下单日期,并以特定的格式显示。

SELECT to_char(order_date, 'YYYY年MM月DD日') AS formatted_order_dateFROM orders;示例3:将字符串转换为时间戳类型假设我们有一个表格名为logs,其中有一个列名为log_time。

oracle数据库日期,时间使用,删除恢复等

oracle数据库日期,时间使用,删除恢复等

Oracle批量删除表、索引等对象、批量恢复Drop操作删除的表、索引等对象虽然能够恢复表结构和数据,但是索引,主键,约束等,并不能完全恢复。

/**********************************************************************查询Drop操作删除的对象select * from recyclebin ;单个对象(表、索引或是通过drop操作删除的其它对象)恢复flashback table(被删除的对象类型)被删除的对象名称to before drop***********************************************************************/--Demo单张表恢复flashback table Table_XXX to before drop;-- 创建批量恢复表的存储过程create or replace procedure RecoveryOfTable isbegindeclare/*********************************************************************** select 'flashback table '||a.original_name||' to before drop' fromrecyclebin a where a.operation = 'DROP' and a.type='TABLE'恢复其它类型对象请将flashback table 这里换为其它类型,type='相应的类型'可加更多条件限制,具体查询recyclebin***********************************************************************/ cursor cur_flashback is select 'flashback table '||a.original_name||' to before drop' from recyclebin a where a.operation = 'DROP' and a.type='TABLE';v_name varchar2(4000);beginopen cur_flashback;fetch cur_flashback into v_name;while cur_flashback%foundloopexecute immediate v_name;fetch cur_flashback into v_name;end loop;dbms_output.put_line('恢复成功!');close cur_flashback;end;end;--执行存储过程(使用plsql操作时)beginRecoveryOfTable;end;--执行存储过程(使用SQL调用)execute RecoveryOfTable;/**************************************批量删除数据库表select * from user_tables where table_name like 'Table_XXX%';存储过程体**************************************/declarecursor cur_delete is select 'drop table '|| table_name from user_tables where table_name like 'Table_XXX%';/*************************************可模板条件删除其它类型对象如:索引等**************************************/v_name varchar2(4000);beginopen cur_delete;fetch cur_delete into v_name;while cur_delete%found loopexecute immediate v_name;fetch cur_delete into v_name;end loop;dbms_output.put_line('将所有Table_XXX开头的表删除!');close cur_delete;end;执行PURGE TABLE ZYM_USER."BIN$UagqFGZsZcvgQAoKpSB9uQ==$0"--oracle todate函数,to_char 函数--oracle 24小时select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual; --12小时select to_date('2005-01-01 2:14:20','yyyy-MM-dd HH12:mi:ss') from dual;select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;--mi是分钟select to_char(sysdate,'yyyy-MM-dd HH12:mi:ss') from dual;--12小时制--选取一个月前的日期select sysdate,sysdate-interval'1'month from dual;--选取一个年前的日期select sysdate,sysdate-interval'1'year from dual;--选取一天前的日期select sysdate,sysdate-interval'1'day from dual;--选取一小时前的日期select sysdate,sysdate-interval'1'hour from dual;--选取7分钟前的日期select sysdate,sysdate-interval'7'minute from dual;--选取时间间隔乘以一个数字的日期select sysdate,sysdate- 5* interval'1'month from dual;select sysdate,sysdate- 5* interval'1'day from dual;select sysdate,sysdate- 5* interval'1'hour from dual;select sysdate,sysdate- 5* interval'1'minute from dual; select sysdate,sysdate - interval'0'month from dual;--当前日期--oracle 获取guidselect sys_guid() from dual ;以24小时的形式显示出来要用HH24select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;//mi是分钟select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;//mm会显示月份oracle中的to_date参数含义1.日期格式参数含义说明D 一周中的星期几DAY 天的名字,使用空格填充到9个字符DD 月中的第几天DDD 年中的第几天DY 天的简写名IW ISO标准的年中的第几周IYYY ISO标准的四位年份YYYY 四位年份YYY,YY,Y 年份的最后三位,两位,一位HH 小时,按12小时计HH24 小时,按24小时计MI 分SS 秒MM 月Mon 月份的简写Month 月份的全名W 该月的第几个星期WW 年中的第几个星期--日期到字符操作select sysdate,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual ;--24小时制select sysdate,to_char(sysdate,'yyyy-mm-dd hh:mi:ss') fromdual ;--18:47会变成 06:47select sysdate,to_char(sysdate,'yyyy-ddd hh:mi:ss') from dual ;select sysdate,to_char(sysdate,'yyyy-mm iw-d hh:mi:ss') from dual;--trunk/ ROUND函数的使用select trunc(sysdate ,'YEAR') from dual ;--2014/1/1select trunc(sysdate ) from dual ;--2014/9/28select to_char(trunc(sysdate ,'YYYY'),'YYYY') from dual ;--2014--oracle有毫秒级的数据类型--返回当前时间年月日小时分秒毫秒select to_char(current_timestamp(5),'DD-MON-YYYY HH24:MI:SSxFF') from dual; --28-9月 -2014 18:50:35.64801--返回当前时间的秒毫秒,可以指定秒后面的精度(最大=9)select to_char(current_timestamp(9),'MI:SSxFF') fromdual;--50:35.751743000--oracle 计算程序运行的时间(ms)declaretype rc is ref cursor;l_rc rc;l_dummy all_objects.object_name%type;l_start number default dbms_utility.get_time;beginfor I in1 .. 1000loopopen l_rc for'select object_name from all_objects '||'where object_id = ' || i;fetch l_rc into l_dummy;close l_rc;end loop;dbms_output.put_line( round( (dbms_utility.get_time-l_start)/100, 2 ) || ' seconds...' );end;--对表进行重命名,不能指定所有者名,即不能指定表所属的数据库名称,如ytmat.t_biao_rookie_waybill_userename t_mat_rookie_waybill_use to t_biao_rookie_waybill_use6;--查询Drop操作删除的对象select * from recyclebin ;select count(*) from recyclebin ;使用drop 删除表drop table 表名称恢复:--注:必须9i或10g以上版本支持,flashback无法恢复全文索引flashback table表名称to before drop;。

oracle的日期使用

oracle的日期使用

oracle的日期使用这个属于oracle时间函数的用法在oracle里,日期格式是一种特殊的东西这里有一个日期转换函数select to_char(日期,'yyyy-mm-dd hh24:mi:ss') from tablename;这里的to_char就是将日期型转换成字符型的一个函数,转换成的格式就是2010-08-23 17:51:20当然你可以将这个日期转换成其他,如:select to_char(日期,'yyyy-mm-dd') from tablename;查出来的结果2010-08-23所以你要根据这个日期来查东西就可以这么用select * from tablename where to_char(日期,'yyyymmdd')between '20100801' and '20100823'这个就是查日期8月1日到8月23日的数据select * from tablename where to_char(日期,'yyyymmdd') = '20100801'这个就是查8月1日的数据你后边的" + model.Csrq + "参数传进来的是什么东西?---------补充2-------'yyyy-mm-dd 24hi:mi:ss'这个地方错了,应改成'yyyy-mm-dd hh24:mi:ss'不是24hi对我有帮助1回答时间:2010-8-23 21:09 | 我来评论向TA求助回答者: badkano | 十四级采纳率:46% 名人擅长领域:数据库程序设计电脑/网络动漫参加的活动:暂时没有参加的活动提问者对于答案的评价:谢谢你的帮助相关内容2009-10-17 oracle中DATE类型字段如何新增记录1 2010-8-30 oracle数据库表中的date类型字段反映射成hibernate实体bean 时,是什么类... 2010-9-27 把时间 2010-10-01 09:28:03插入oracle 的date类型字段怎么写(时分秒... 1 2009-9-22 jsp查询Oracle的date数据类型 2009-10-26 查询Oracle数据库表字段类型sql语句 2 更多关于oracle根据日期查询的问题>>查看文章有关java中的Date,String,Timestamp之间的转化问题2010-12-07 15:22一.获取系统当前时间:1.System.out.println(new Timestamp(new java.util.Date().getTime)); //包含时分秒2.System.out.println(new java.sql.Date(new java.util.Date().getTime)); //不包含时分秒3.通过格式化类获取任意格式的时间SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss SSS"); String time = sdf.format(Calendar.getInstance().getTime());System.out.println(time);sql包的Date类没有无参的构造函数,而util的Date类有无参的构造函数java.util.Date date = new java.util.Date();是正确的//Tue Jun 15 09:04:23 CST 2010java.sql.Date date = new java.sql.Date();是错误的但是sql包的Date有一个带long型参数的构造函数,因此可以使用以下方式java.sql.Date date = new java.sql.Date(new java.util.Date().getTime()); //2010-6-17new java.util.Date():构造函数没有接受任何参数. 而这个构造函数在内部使用了System.currentTimeMillis() 方法来从系统获取日期. 下面是util包的Date的构造方法:public Date() { this(System.currentTimeMillis()); }还发现一件怪异的事情:// String转化成date String str = "9-29-2001";System.out.println(java.sql.Date.valueOf(str));输出:0016-10-21真是奇怪.三. Date转化成String//Date转化成String: SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");System.out.println(sdf.format(new Date()));输出:2010-06-17 16:30:21 781四. Timestamp转化成StringSimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//定义格式,不显示毫秒Timestamp now = new Timestamp(System.currentTimeMillis());//获取系统当前时间String str = df.format(now);System.out.println(str);输出:2010-06-17 16:46:34五. String转化成TimestampSimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");java.util.Date date11 = df1.parse("2010-6-2 16:10:38.00");String time = df1.format(date11);Timestamp ts = Timestamp.valueOf(time);System.out.println(ts);输出:2010-06-02 16:10:38.0select * from t_consultjfhjs twhere t.createdate>=to_date('2003-10-10 9:56:15','yyyy-mm-dd hh:mm:ss)select to_char(sysdate,'yyyymmdd hh24:mi:ss')select last_day(sysdate) from dual以24小时形式显示出来XML/HTML 代码复制内容到剪贴板01.select to_char(sysdate,'yyyymmdd hh24:mi:ss')结果:20100513 10:40:45相反的是to_date函数3、某月的最后一天用last_day函数SQL 代码复制内容到剪贴板01.select last_day(sysdate) from dual结果:2010-5-31 10:44:214、加法计算+1即增加一天,如果精确到小时、分钟、秒则用除法如:获得下月第一天时刻:SQL 代码复制内容到剪贴板01.select last_day(sysdate)+1 from dual再如:获得一小时后时刻oracle查询日期语句在我们使用数据库过程中是经常要用到的,下面就为您介绍16种oracle查询日期语句,每一种oracle查询日期语句实现了一个功能,希望对您能有所帮助。

oracleto_date用法

oracleto_date用法

oracleto_date用法ORACLE TO_DATE函数是用来将一个字符串转换为日期类型的函数。

它的一般用法为 TO_DATE(string, format),其中string是代表日期的字符串,format是指定将字符串转换为日期的格式。

1.日期格式化字符串:-YYYY:四位年份-YY:两位年份-MM:两位月份-MON:月份的英文缩写-MONTH:月份的完整英文名-DD:两位天数-HH:两位小时数(24小时制)-MI:两位分钟数-SS:两位秒数-AM/PM:上午/下午标记-HH24:两位小时数(24小时制)2.示例:-TO_DATE('2024-12-31','YYYY-MM-DD'):将字符串'2024-12-31'转换为日期类型-TO_DATE('22-12-31','YY-MM-DD'):将字符串'22-12-31'转换为日期类型-TO_DATE('31-DEC-2024','DD-MON-YYYY'):将字符串'31-DEC-2024'转换为日期类型-TO_DATE('2024-12-3123:59:59','YYYY-MM-DDHH24:MI:SS'):将字符串'2024-12-3123:59:59'转换为日期类型3.源字符串和日期格式不匹配的问题:4.对于单个数字的月份或天数:如果源字符串只有单个数字的月份或天数,可以在格式字符串中使用FM修饰符来取消默认的空格或零填充。

5.使用NLS设置:TO_DATE函数的转换行为可以受到NLS(National Language Support)设置的影响。

可以使用NLS参数来指定使用特定的NLS设置进行日期转换。

例如:TO_DATE('2024-十二-31','YYYY-MON-DD','NLS_DATE_LANGUAGE=CHINESE'):将字符串'2024-十二-31'按照中文日期格式转换为日期类型。

日期类型问题

日期类型问题

mark2 8月 21,2003 00:00:00
已选择3行。
10、to_char()函数,'DD-MM-YYYY'格式及'MM-DD-YYYY'格式和'month dd,yyyy'格式的不同
'DD-MM-YYYY'格式:21-08-2003
'month dd,yyyy'格式:8月 21,2003
select name,to_char(enrolldate,'month dd,yyyy HH24:MI:SS') from student;
得到的记录结果如下:注意date类型字段中显示了日期,时间
NAME TO_CHAR(ENROLLDATE,'MONTHDD,YYYYHH24:MI:SS')
显示结果见下图(既显示了日期,又显示了时间)
JSP页面中的显示结果
6、在SQL*Plus Worksheet中执行下列SQL语句
select name,to_char(enrolldate,'DD-MM-YYYY HH:MI:SS') from student;
select name,to_char(enrolldate,'DD-MM-YYYY HH24:MI:SS') from student;
得到的记录结果如下:注意date类型字段中显示了日期,时间
NAME TO_CHAR(ENROLLDATE,'DD-MM-YYYYHH24:MI:
13:54:05','MM-DD-YYYY HH24:MI:SS'));
ORACLE中的记录结果为:

Oracle的日期和时间详解

Oracle的日期和时间详解

Oracle的日期和时间详解Oracle 提供了三个用于存储日期/时间值的数据类型:表示日期和时间的DATE 类型。

DA TE 字段中存储的值包含有与世纪、年、月、日、小时、分钟和秒相对应的"组成部分"。

日期可以是公元前4712 年1 月1 日到公元9999 年12 月31 日这一范围中的任何一天。

从Oracle9i开始提供的TIMESTAMP 类型是DA TE 类型的有效扩展格式,并且符合ANSI SQL 标准。

它提供了更大的时间精度,支持多达九位的小数,同时还能够存储时区信息。

从Oracle9i 开始提供的INTERV A类型,它支持存储时间差(如"两年零五个月"或"三天零十八个小时零四十五分钟"),并可以与DATE 或TIMESTAMP进行加法运算以生成一个新的DATE / TIMESTAMP 值。

本文主要介绍DA TE 类型,但适用于DATE 的大部分功能也适用于TIMESTAMP。

(有关TIMESTAMP 和INTERV AL 类型的更多背景知识,请阅读Jonathan Gennick 在Oracle 杂志上发表的文章"Datetime Datatypes Add Precision"和"Finding the Time in Between"(这两篇文章均在2002 年11 月- 12 月刊中发表)。

Oracle 如何存储DATE。

对于Oracle 中的DATE类型,首先要了解的是,它的内部表示形式使它可以通过不同的方法进行显示和操作。

它有效地独立于任何特定的字符串格式。

如果使用SELECT选择一个DATE 类型,Oracle 将自动把它转换为可读字符串,但这并不是值的实际存储方法。

使用SYSDATE 选择当前的系统时间,SYSDATE 返回DA TE 类型的值,是数据库所在的操作系统的当前日期和时间:SELECT SYSDATE FROM dual /* e.g. 25-JUL-05 */该格式受Oracle 参数NLS_DATE_FORMAT 的控制,可以根据每个会话进行更改(如下所示)。

ORACLE日期时间格式化参数详解

ORACLE日期时间格式化参数详解

ORACLE⽇期时间格式化参数详解ORACLE⽇期时间格式化参数详解格式化⽇期指的是将⽇期转为字符串,或将字符串转为⽇期,下⾯⼏个函数可以⽤来格式化⽇期TO_CHAR(datetime, 'format')TO_DATE(character, 'format')TO_TIMESTAMP(character, 'format')TO_TIMESTAMP_TZ(character, 'format')SQL 产⽣的结果SELECT TO_CHAR(current_timestamp, 'format') FROM DUAL;1Format List itemYYYY-MM-DD2015-06-15YYYY-MON-DD2015-JUN-15YYYY-MM-DD HH24:MI:SS FF32015-06-15 13:18:10 700YYYY-MM-DD HH24:MI:SS FF3 TZR2015-06-15 13:18:10 700 +08:00DS6/15/2015DL Monday, June 15, 2015TS1:18:10 PMOracle ⽀持哪些格式呢?看看下⾯的表格吧Format DescriptionY年的最后⼀位数字,如:5YY年的最后两位数字,如:15YYY年的最后三位数字,如:015YYYY年,如:2015Y,YYY年⽤逗号分割SYYYY年YEAR年拼写,如:TWENTY FIFTEENSYEAR年拼写,如:TWENTY FIFTEENI ISO年的最后⼀位数字,如:5IY ISO年的最后两位数字,如:15IYY ISO年的最后三位数字,如:015IYYY ISO年,如:2015RR两位数字年,如:15RRRR四位数字年,如:2015MM Month (01-12)MON⽉份简称,如:JUNMONTH⽉份全称,如:JUNERM罗马数字⽉份D Day of week (1-7)DD Day of month (1-31)DDD Day of year (1-366)HH Hour of day (1-12)HH12Hour of day (1-12)HH24Hour of day (0-23)MI Minute (0-59)FF [1…9]毫秒DS⽇期简称,如:6/12/2015DL⽇期全称,如:Friday, June 12, 2015TS时间简称,如:5:18:03 PMCC世纪,如:21SCC世纪,如:21Q Quarter of year (1, 2, 3, 4)W Week of month (1-5)WW Week of year (1-53)IW ISO Week of year (1-52 or 1-53)DY星期简称,如:FriDAY星期全称,如:FridayAM A.M.PM P.M.AD A.D.BC B.C.TZD夏令时TZR时区TZH时区之时差TZM时区之分钟差EE era 全称E era 简称J The number of days since January 1, 4712 BCFM去掉⾸尾空格FX精确匹配X秒和毫秒分隔符TH DDTH --> 4thSP DDSP -->FOURSPTH DDSPTH --> FOURTHTHSP DDTHSP --> FOURTH默认情况下,Oracle 格式化⽇期时,有⼀定的容错性,如下⾯的 SQL 返回正确的结果。

Oracle获取系统时间及格式化

Oracle获取系统时间及格式化

Oracle获取系统时间及格式化Oracle 获取当前⽇期及⽇期格式获取系统⽇期: SYSDATE()格式化⽇期: TO_CHAR(SYSDATE(),'YY/MM/DD HH24:MI:SS)或 TO_DATE(SYSDATE(),'YY/MM/DD HH24:MI:SS)格式化数字: TO_NUMBER注: TO_CHAR 把⽇期或数字转换为字符串TO_CHAR(number, '格式')TO_CHAR(salary, '$99,999.99')TO_CHAR(date, '格式')TO_DATE 把字符串转换为数据库中的⽇期类型TO_DATE(char, '格式')TO_NUMBER 将字符串转换为数字TO_NUMBER(char, '格式')返回系统⽇期,输出 25-12⽉-09select sysdate from dual;mi是分钟,输出 2009-12-25 14:23:31select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;mm会显⽰⽉份,输出 2009-12-25 14:12:31select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;输出 09-12-25 14:23:31select to_char(sysdate,'yy-mm-dd hh24:mi:ss') from dual输出 2009-12-25 14:23:31select to_date('2009-12-25 14:23:31','yyyy-mm-dd,hh24:mi:ss') from dual⽽如果把上式写作:select to_date('2009-12-25 14:23:31','yyyy-mm-dd,hh:mi:ss') from dual则会报错,因为⼩时hh是12进制,14为⾮法输⼊,不能匹配。

Oracle学习笔记系列(二)之数据库日期格式转换

Oracle学习笔记系列(二)之数据库日期格式转换

Oracle学习笔记系列(⼆)之数据库⽇期格式转换Oracle数据库⽇期格式转换select sysdate from dual;select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') as mydate from dual;select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as mydate from dual;select to_number(to_char(sysdate,'yyyymmddhh24miss')) as mydate from dual;转换函数与date操作关系最⼤的就是两个转换函数:to_date(),to_char() to_date():作⽤将字符类型按⼀定格式转化为⽇期类型。

具体⽤法:to_date('2004-11-27','yyyy-mm-dd'),前者为字符串,后者为转换⽇期格式。

【注意,前后两者要以⼀对应】如;to_date('2004-11-27 13:34:43', 'yyyy-mm-dd hh24:mi:ss')多种⽇期格式:YYYY:四位表⽰的年份 YYY,YY,Y:年份的最后三位、两位或⼀位,缺省为当前世纪 MM:01~12的⽉份编号 MONTH:九个字符表⽰的⽉份,右边⽤空格填补 MON:三位字符的⽉份缩写 WW:⼀年中的星期 D 的第⼏个⼩时,取值为00~23 MI:⼀⼩时中的分钟 SS:⼀分钟中的秒 SSSS:从午夜开始过去的秒数to_char():将⽇期转按⼀定格式换成字符类型即把当前时间按yyyy-mm-dd hh24:mi:ss格式转换成字符类型在oracle中处理⽇期⼤全 TO_DATE格式 Day:dd number 12dy abbreviated friday spelled out fridayddspth sp 12⼩时格式下时间范围为: 1:00:00 - 12:59:59 ....⽇期和时间函数汇总1.⽇期和字符转换函数⽤法(to_date,to_char)select to_char(to_date(222,'J'),'Jsp') from dual; --Two Hundred Twenty-Two2.求某天是星期⼏select to_char(to_date('2018-01-09','yyyy-mm-dd'),'day') from dual; --星期⼆select to_char(to_date('2018-01-09','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual; --tuesday设置⽇期语⾔ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';也可以这样 TO_DATE ('2002-08-26', 'YYYY-mm-dd', 'NLS_DATE_LANGUAGE = American')3.两⽇期间的天数select floor(sysdate - to_date('19921123','yyyymmdd')) from dual; --91794. 时间为null的⽤法select p.claimno, p.endcasedate from prplclaim pUNIONselect '1', TO_DATE(null) from dual;注意要⽤TO_DATE(null)5.取⽇期范围a_date between to_date('20011201','yyyymmdd') and to_date('20011231','yyyymmdd')这样12⽉31号中午12点之后和12⽉1号的12点之前是不包含在这个范围之内的。

oracle to_date用法

oracle to_date用法

oracle to_date用法Oracle中的TO_DATE函数用于将字符转换为日期。

它的基本语法如下:TO_DATE(string, format, nlsparam)其中,string是要转换的字符串,format是日期的格式,nlsparam是可选参数,用于指定日期的语言环境。

在TO_DATE函数中,format参数是最重要的部分,它决定了输入字符串的格式,以便将其转换为日期类型。

下面是一些常见的日期格式及其对应的格式代码:YYYY-MM-DD HH24:MI:SS:用于表示年、月、日、小时、分钟和秒。

例如:'2022-01-01 12:00:00'。

MM/DD/YYYY:用于表示月、日和年。

例如:'01/01/2022'。

DD-MON-YYYY HH:MI:SS:用于表示日、月(简写)和年、小时、分钟和秒。

例如:'01-JAN-2022 12:00:00'。

YYYYMMDD:用于表示年、月和日(无分隔符)。

例如:'20220101'。

HH24:MI:SS:用于表示小时、分钟和秒。

例如:'12:00:00'。

在使用TO_DATE函数时,必须确保输入字符串的格式与format参数的格式代码相匹配,否则会引发错误。

以下是一些示例展示了TO_DATE函数的用法:1. 将字符串转换为日期:SELECT TO_DATE('2022-01-01', 'YYYY-MM-DD') FROM dual; 这会将字符串'2022-01-01'转换为日期类型。

2. 指定时间:SELECT TO_DATE('2022-01-01 12:00:00', 'YYYY-MM-DDHH24:MI:SS') FROM dual;这会将字符串'2022-01-01 12:00:00'转换为日期和时间类型。

Oracle学习笔记系列(二)之数据库日期格式转换

Oracle学习笔记系列(二)之数据库日期格式转换

Oracle学习笔记系列(⼆)之数据库⽇期格式转换Oracle数据库⽇期格式转换select sysdate from dual;select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') as mydate from dual;select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as mydate from dual;select to_number(to_char(sysdate,'yyyymmddhh24miss')) as mydate from dual;转换函数与date操作关系最⼤的就是两个转换函数:to_date(),to_char() to_date():作⽤将字符类型按⼀定格式转化为⽇期类型。

具体⽤法:to_date('2004-11-27','yyyy-mm-dd'),前者为字符串,后者为转换⽇期格式。

【注意,前后两者要以⼀对应】如;to_date('2004-11-27 13:34:43', 'yyyy-mm-dd hh24:mi:ss')多种⽇期格式:YYYY:四位表⽰的年份 YYY,YY,Y:年份的最后三位、两位或⼀位,缺省为当前世纪 MM:01~12的⽉份编号 MONTH:九个字符表⽰的⽉份,右边⽤空格填补 MON:三位字符的⽉份缩写 WW:⼀年中的星期 D 的第⼏个⼩时,取值为00~23 MI:⼀⼩时中的分钟 SS:⼀分钟中的秒 SSSS:从午夜开始过去的秒数to_char():将⽇期转按⼀定格式换成字符类型即把当前时间按yyyy-mm-dd hh24:mi:ss格式转换成字符类型在oracle中处理⽇期⼤全 TO_DATE格式 Day:dd number 12dy abbreviated friday spelled out fridayddspth sp 12⼩时格式下时间范围为: 1:00:00 - 12:59:59 ....⽇期和时间函数汇总1.⽇期和字符转换函数⽤法(to_date,to_char)select to_char(to_date(222,'J'),'Jsp') from dual; --Two Hundred Twenty-Two2.求某天是星期⼏select to_char(to_date('2018-01-09','yyyy-mm-dd'),'day') from dual; --星期⼆select to_char(to_date('2018-01-09','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual; --tuesday设置⽇期语⾔ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';也可以这样 TO_DATE ('2002-08-26', 'YYYY-mm-dd', 'NLS_DATE_LANGUAGE = American')3.两⽇期间的天数select floor(sysdate - to_date('19921123','yyyymmdd')) from dual; --91794. 时间为null的⽤法select p.claimno, p.endcasedate from prplclaim pUNIONselect '1', TO_DATE(null) from dual;注意要⽤TO_DATE(null)5.取⽇期范围a_date between to_date('20011201','yyyymmdd') and to_date('20011231','yyyymmdd')这样12⽉31号中午12点之后和12⽉1号的12点之前是不包含在这个范围之内的。

字符串和日期的相互转换,在oracle和mysql的用法

字符串和日期的相互转换,在oracle和mysql的用法

字符串和⽇期的相互转换,在oracle和mysql的⽤法1. 字符串转⽇期格式Oracleto_date(字符串 , ⽇期格式)⽇期格式如下:D ⼀周中的星期⼏DAY 天的名字,使⽤空格填充到9个字符DD ⽉中的第⼏天DDD 年中的第⼏天DY 天的简写名IW ISO标准的年中的第⼏周IYYY ISO标准的四位年份YYYY 四位年份YYY,YY,Y 年份的最后三位,两位,⼀位HH ⼩时,按12⼩时计HH24 ⼩时,按24⼩时计MI 分SS 秒MM ⽉Mon ⽉份的简写Month ⽉份的全名W 该⽉的第⼏个星期WW 年中的第⼏个星期mysqlstr_to_date(字符串 , ⽇期格式)⽇期格式如下:%Y:代表4位的年份%y:代表2为的年份%m:代表⽉, 格式为(01……12)%c:代表⽉, 格式为(1……12)%d:代表⽉份中的天数,格式为(00……31)%e:代表⽉份中的天数, 格式为(0……31)%H:代表⼩时,格式为(00……23)%k:代表⼩时,格式为(0……23)%h:代表⼩时,格式为(01……12)%I:代表⼩时,格式为(01……12)%l :代表⼩时,格式为(1……12)%i:代表分钟, 格式为(00……59)%r:代表时间,格式为12 ⼩时(hh:mm:ss [AP]M)%T:代表时间,格式为24 ⼩时(hh:mm:ss)%S:代表秒,格式为(00……59)%s:代表秒,格式为(00……59)如:select str_to_date('201902','%Y%m'); 结果:2019-02-00select str_to_date('20190226','%Y%m%d'); 结果:2019-02-26select str_to_date('2019/02','%Y/%m'); 结果:2019-02-00select str_to_date('2019-02','%Y-%m'); 结果:2019-02-00select str_to_date('201903','%Y-%m'); 结果:null注意:(1)⽇期格式必须和⽇期字符串格式⼀样,若带'-',⽇期格式必须带'-' ; (2)若是只有年⽉,转换的⽇期最后⾃动补充天‘00’,⽽且⼏种⽅式返回的⽇期格式都是‘年-⽉-⽇’的格式,但是在⽇期格式中,天数没有‘-00’,所以可以在转换⽇期格式前,在字符串⽇期后⾯补齐天数2.⽇期转字符串oracleto_char(⽇期时间 , ⽇期格式) ⽇期格式参考to_date()⽇期格式mysqldate_format(⽇期时间 , ⽇期格式) ⽇期格式参考 str_to_date()⽇期格式。

oracle的todate用法

oracle的todate用法

oracle的todate用法Oracle函数TO_DATE可以将一个字符串转换为日期。

其语法如下:TO_DATE(string, format)其中,string是要转换的字符串,format是与字符串对应的日期格式。

以下是一些常见的日期格式:- 'DD-MON-YYYY':例如,'01-JAN-2022'- 'MM/DD/YYYY':例如,'01/01/2022'- 'YYYY-MM-DD':例如,'2022-01-01'- 'DD-MON-YYYY HH24:MI:SS':例如,'01-JAN-2022 12:34:56'以下是一些示例:1. 将字符串'01-JAN-2022'转换为日期:sqlSELECT TO_DATE('01-JAN-2022', 'DD-MON-YYYY') FROM dual;2. 将字符串'01/01/2022'转换为日期:sqlSELECT TO_DATE('01/01/2022','MM/DD/YYYY') FROM dual;3. 将字符串'2022-01-01'转换为日期:sqlSELECT TO_DATE('2022-01-01', 'YYYY-MM-DD') FROM dual;4. 将字符串'01-JAN-2022 12:34:56'转换为日期和时间:sqlSELECTTO_DATE('01-JAN-2022 12:34:56', 'DD-MON-YYYY HH24:MI:SS') FROM dual;需要注意的是,如果字符串与日期格式不匹配,TO_DATE函数将引发错误。

oracle_date

oracle_date

一、date类型:1.在英文版本的ORACLE中默认日期格式为'DD-MON-YY',例如'01-JAN-98'在汉化的中文版本中ORACLE默认日期格式为'日-月-年',例如'21-8月-2003'或'21-8月-03'2.时间转换函数:to_date() 作用将字符类型按一定格式转化为日期类型:具体用法:to_date(''2004-11-27'',''yyyy-mm-dd''),前者为字符串,后者为转换日期格式,注意,前后两者要以一对应。

如;to_date(''2004-11-27 13:34:43'', ''yyyy-mm-dd hh24:mi:ss'') 将得到具体的时间。

to_char() 将日期转按一定格式换成字符类型:具体用法:to_char(sysdate,''yyyy-mm-dd hh24:mi:ss'')3.在sql plus中执行select操作,date类型字段中只显示了日期,时间并未显示。

4.Oracle的date数据类型的另一个优点是:它支持日期的运算。

可以对已经存在的日期加上或减去若干天,例如:insert into student values('熊',sysdate+7);5.附:oracle日期格式参数含义说明d:一周中的星期几day:天的名字,使用空格填充到9个字符dd:月中的第几天ddd:年中的第几天dy:天的简写名iw: ISO标准的年中的第几周iyyy:ISO标准的四位年份yyyy:四位年份yyy,yy,y:年份的最后三位,两位,一位hh: 小时,按12小时计hh24:小时,按24小时计mi:分ss:秒mm:月mon:月份的简写month:月份的全名w:该月的第几个星期ww:年中的第几个星期二、有关时间日期的操作sysdate + 1/24/60/60 在系统时间基础上延迟1秒sysdate + 1/24/60 在系统时间基础上延迟1分钟sysdate + 1/24 在系统时间基础上延迟1小时sysdate + 1 在系统时间基础上延迟1天add_months(sysdate,-1) 在系统时间基础上延迟1月add_months(sysdate,-1*12) 在系统时间基础上延迟1年上月末的日期:select last_day(add_months(sysdate, -1)) from dual;本月的最后一秒:select trunc(add_months(sysdate,1),'MM') - 1/24/60/60 from dual本周星期一的日期:select trunc(sysdate,'day') + 1 from dual年初至今的天数:select ceil(sysdate - trunc(sysdate, 'year')) from dual;本月的天数SELECT to_char(last_day(SYSDATE),'dd') days FROM dual今年的天数select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual下个星期一的日期SELECT Next_day(SYSDATE,'monday') FROM dual--计算工作日方法create table t(s date,e date);alter session set nls_date_format = 'yyyy-mm-dd';insert into t values('2003-03-01','2003-03-03');insert into t values('2003-03-02','2003-03-03');insert into t values('2003-03-07','2003-03-08');insert into t values('2003-03-07','2003-03-09');insert into t values('2003-03-05','2003-03-07');insert into t values('2003-02-01','2003-03-31');-- 这里假定日期都是不带时间的,否则在所有日期前加trunc即可。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle关于日期时间
一.问题描述
我安装的数据库日期Date格式默认为’DD-M-YYYY(2-2月-1988)’,而数据库默认的格式一般都是’DD-MON-YYYY’,现在需要把日期格式改成数据库原本默认的格式
二.处理方式
修改注册表:
1.在注册表的KEY_LOCAL_MACHINE->SOFTWARE->ORACLE->HOME0
2.找到:NLS_LANG 如果这个不是’American’,要设置成英文(我原来安装的时候选的是简体中文,NLS_LANG的值是:SIMPLIFIED CHINESE_CHINA.ZHS16GBK)
3.新建一个字符串,命名为NLS_DA TE_FORMA T,然后值填上想要的默认格式,例如:YYYY-MM-DD HH24:MI:SS
4.第三方的工具显示的日期格式有时候和数据库默认的不通,工具里面的格式是受工具影响的,如果想要改变PLSQL Developer里面的日期显示格式,可以这样改:
PL/SQL DEVELOPER需要在Tools->Preferences->User Interface->Date/Time下修改格式即
可:
如修改参数文件的话。

可直接在参数文件中添加:
NLS_DATA_FORMAT=YYYY-MM-DD-HH24:MI:SS,但须将注册表中上述位置的NLS_LANG字串值去掉。

三.常用的命名
1.可以用下面的命令来修改一个会话的日期格式,断开与数据库的连接时,会话结束,
所有的修改都会丢失
alter session set nls_date_format='yyyy-mm-dd'
2. 查看日期格式命名:show parameter nls_date_format
3. 查看参数设置:select * from nls_session_parameters
4.求某天是星期几select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from dual;
5.求当前是星期几:select to_char(sysdate, 'day') from dual
6. 一年的第几天:select TO_CHAR(SYSDA TE,'DDD'),sysdate from dual
参考网址:/397879213/archive/2010/12/29/341925.html
/gudufeiyang/article/details/5938885
2011年7月9日星期六
___LiBo整理。

相关文档
最新文档