Oracle日期时间用法

合集下载

oracle 中时间用法

oracle 中时间用法

oracle 中时间用法在Oracle数据库中,时间的处理和使用是非常重要的。

Oracle提供了许多用于处理时间的函数和数据类型,以下是一些常见的时间用法:1. 数据类型:DATE,Oracle中用于存储日期和时间的数据类型。

它包含年、月、日、时、分和秒的信息。

TIMESTAMP,比DATE类型精确度更高的日期和时间数据类型,可以精确到纳秒级别。

2. 获取当前时间:使用SYSDATE函数可以获取当前的日期和时间。

使用CURRENT_TIMESTAMP函数可以获取当前的时间戳。

3. 日期和时间函数:TO_DATE,将字符串转换为日期类型。

TO_CHAR,将日期类型格式化为字符串。

EXTRACT,从日期中提取特定的部分,比如年、月、日、小时等。

ADD_MONTHS,在日期上加上指定的月数。

MONTHS_BETWEEN,计算两个日期之间相差的月数。

4. 日期和时间运算:可以使用+和-运算符在日期上进行加减操作。

可以对日期进行比较,判断日期的先后顺序。

5. 时区转换:使用AT TIME ZONE可以将日期和时间从一个时区转换到另一个时区。

使用FROM_TZ和CAST函数可以进行时区转换。

6. 时间戳:可以使用TO_TIMESTAMP将字符串转换为时间戳类型。

可以使用FROM_TZ函数将带有时区信息的日期转换为时间戳类型。

7. 时区信息:Oracle数据库中存储了时区信息,可以通过查询相关的数据字典视图来获取时区信息。

总的来说,Oracle提供了丰富的日期和时间处理功能,可以满足各种复杂的时间需求。

通过合理使用日期和时间函数,可以方便地进行日期和时间的计算、转换和格式化。

同时,时区的处理也是Oracle日期和时间处理中需要特别注意的部分,确保在多时区环境下能够正确处理日期和时间数据。

Oracle中 对日期时间类型的操作 — 详细

Oracle中 对日期时间类型的操作 — 详细

对日期/时间类型的操作—详细1.oracle 对日期的操作2.文章分类:数据库3.4.求模:select mod(7,2) from dual;5.6.1.oracle日期时间格式:7.8.年:9.10. yy 两位年显示值:0711.12. yyyy四位年显示值:200713.14.月:15.16. mm 两位月显示值:1117.18. month/mon 显示值:11月19.20.21.22.日:23.24. dd 当月第几天显示值:0225.26. ddd 当年第几天显示值:0227.28. dy 当周第几天显示值:星期五29.30.31.32.小时:33.34. hh 12小时间显示值:0135.36. hh24 24小时显示值:1337.38.39.40.分钟:41.42. mi 显示值:4543.44.秒:45.46. ss 显示值:2547.48.49.50.季度:51.52. Q 显示值:453.54.55.56. WW 当年第几周显示值:4457.58. W 当月第几周显示值:159.60.61.62.24小时格式下时间范围为:0:00:00-23:59:5963.64.12小时格式下时间范围为:1:00:00-12:59:5965.66.67.68.select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;69. monday70. 设置日期语言71. ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';72. 也可以这样73. TO_DATE ('2002-08-26', 'YYYY-mm-dd', 'NLS_DATE_LANGUAGE = American')74.75.76.77.2.两个日期间的天数78.79. select floor(sysdate-to_date('2010-3-8','yyyymmdd')) from dual;80.81.82.83.注意使用TO_DATE(null) ,不会报错84.85.86.87.3.两个日期间的(除了周六,周日)天数88.89.Java代码1.Oracle时间日期操作2.sysdate+(5/24/60/60) 在系统时间基础上延迟5秒3.sysdate+5/24/60在系统时间基础上延迟5分钟4.sysdate+5/24在系统时间基础上延迟5小时5.sysdate+5在系统时间基础上延迟5天6.add_months(sysdate,-5) 在系统时间基础上延迟5月7.add_months(sysdate,-5*12) 在系统时间基础上延迟5年8.9.10.上月末的日期:select last_day(add_months(sysdate, -1)) from dual;11.本月的最后一秒:select trunc(add_months(sysdate,1),'MM') - 1/24/60/60 from dual12.本周星期一的日期:select trunc(sysdate,'day')+1 from dual13.14.15.年初至今的天数:select ceil(sysdate - trunc(sysdate, 'year')) from dual;16.17.今天是今年的第几周 :select to_char(sysdate,'fmww') from dual18.今天是本月的第几周:SELECT TO_CHAR(SYSDATE,'WW') - TO_CHAR(TRUNC(SYSDATE,'MM'),'WW') + 1 AS "weekOfMon" FROM dual19.20.本月的天数21.SELECT to_char(last_day(SYSDATE),'dd') days FROM dual22.今年的天数23.select add_months(trunc(sysdate,'year'), 12) - trunc(sysdate,'year') from dual24.下个星期一的日期25.SELECT Next_day(SYSDATE,'monday') FROM dual26.27.28.============================================29.30.--计算工作日方法31.32.create table t(s date,e date);33.alter session set nls_date_format = 'yyyy-mm-dd';34.insert into t values('2003-03-01','2003-03-03');35.insert into t values('2003-03-02','2003-03-03');36.insert into t values('2003-03-07','2003-03-08');37.insert into t values('2003-03-07','2003-03-09');38.insert into t values('2003-03-05','2003-03-07');39.insert into t values('2003-02-01','2003-03-31');40.41.-- 这里假定日期都是不带时间的,否则在所有日期前加trunc即可。

oracle date写法

oracle date写法

oracle date写法Oracle Date写法在Oracle数据库中,日期和时间类型被称为Date。

Date数据类型用于存储日期和时间的组合值,包括年、月、日、小时、分钟和秒。

在Oracle中,可以使用多种方式来表示和操作日期。

本篇文章将一步一步回答关于Oracle Date写法的问题,帮助您更好地理解和使用这个重要的数据类型。

第一步:Oracle中如何插入日期?在Oracle中,可以使用to_date函数将字符串转换为日期类型,然后将其插入到Date列中。

例如,假设我们有一个名为orders的表,其中有一个名为order_date的Date列。

要插入日期,我们可以使用以下语法:INSERT INTO orders (order_date) VALUES (to_date('2022-01-01', 'YYYY-MM-DD'));上述代码将2022年1月1日插入到order_date列中。

第二步:如何在Oracle中选择日期?在Oracle中,可以使用to_char函数将日期转换为指定格式的字符串,以便更容易地选择和显示日期。

例如,假设我们想选择order_date列中的日期,并以'MM/DD/YYYY'格式显示。

我们可以使用以下语法:SELECT to_char(order_date, 'MM/DD/YYYY') FROM orders;这将返回order_date列中的日期,并以"01/01/2022"的形式显示。

第三步:如何在Oracle中计算日期差异?在Oracle中,可以使用DATE类型的减法操作符来计算日期之间的差异。

例如,假设我们有一个名为orders的表,其中有一个名为order_date和一个名为delivery_date的Date列。

要计算订单的持续时间,我们可以使用以下语法:SELECT delivery_date - order_date FROM orders;上述代码将返回订单的持续时间,以天数表示。

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年月格式

oracle年月格式

oracle年月格式
在Oracle数据库中,有几种常见的日期和时间格式,可以用来表示年月。

以下是其中一些常用的格式:
1. YYYY-MM: 这是ISO标准的年月格式,其中YYYY表示四位数的年份,MM表示两位数的月份。

例如,2022年1月可以表示为"2022-01"。

2. YYYYMM: 这是一种紧凑的年月格式,其中YYYY表示四位数的年份,MM表示两位数的月份。

例如,2022年1月可以表示为"202201"。

3. MM/YYYY: 这是一种常见的月年格式,其中MM表示两位数的月份,YYYY表示四位数的年份。

例如,1月2022年可以表示为"01/2022"。

4. MON-YYYY: 这是一种缩写的月年格式,其中MON表示月份的缩写,YYYY表示四位数的年份。

例如,1月2022年可以表示为"JAN-2022"。

5. MONTH YYYY: 这是一种完整的月年格式,其中MONTH表示月份的全名,YYYY表示四位数的年份。

例如,1月2022年可以表示为"January 2022"。

需要注意的是,Oracle数据库中的日期和时间格式可以通过使用TO_CHAR函数将日期类型的数据转换为字符串来实现。

例如,可以使用以下语句将日期字段转换为指定的年月格式:
sql.
SELECT TO_CHAR(date_column, 'YYYY-MM') FROM table_name;
以上是一些常见的Oracle年月格式,你可以根据具体需求选择适合的格式进行使用。

oracle日期类型字段的操作

oracle日期类型字段的操作

oracle日期类型字段的操作oracle 日期类型字段的操作在java对oracle的操作中,日期字段是很头疼的事情,其实仔细研究一下也并不难掌握。

举个例子来说明:表 book 中有name varchar2(20)//书籍名称,buydate Date //购买日期两个字段。

已经创建了数据库连接Connection conn;方法一、使用java.sql.Date实现比较简单的yyyy-mm-dd格式日期。

java.sql.Date不支持时间格式。

切记不要使用new java.sql.Date(int year,int month,int date),因为还要处理时间差问题。

PreparedStatement pstmt = conn.prepareStatement("insert into book (name,buydate) values (?,?)");java.sql.Date buydate=java.sql.Date.valueOf("2005-06-08");pstmt.setString(1, "Java编程思想");pstmt.setDate(2,buydate );pstmt.execute();方法二、使用java.sql.Timestamp,同上不使用new Timestamp(....)PreparedStatement pstmt = conn.prepareStatement("insert into book (name,buydate) values (?,?)");java.sql.Timestampbuydate=java.sql.Timestamp.valueOf("2004-06-08 05:33:99");pstmt.setString(1, "Java编程思想");pstmt.setTimestamp(2,buydate );pstmt.execute();方法三、使用oracle 的to_date内置函数PreparedStatement pstmt = conn.prepareStatement("insert into book (name,buydate) values (?,to_date(?, ‘yyyy-mm-dd hh24:mi:ss‘)");String buydate="2004-06-08 05:33:99";pstmt.setString(1, "Java编程思想");pstmt.setString(2,buydate );pstmt.execute();附: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: 年中的第几个星期。

Oracle各种日期计算方法

Oracle各种日期计算方法

Oracle各种日期计算方法目录1. 显示当前时间年月日小时分钟秒上午星期 (1)2. 一个月的第一天 (1)3. 一年的第一天 (2)4. 季度的第一天 (2)5. 本月的最后一天 (2)6. 上个月的最后一天 (2)7. 上个月的第一天 (3)8. 上个月的今天 (3)9. 本年的第一天 (3)10. 本年的最后一天 (3)11. 本月的最后一天 (3)12. 本月的第一个星期一 (3)13. 去掉时分秒 (3)14. 显示星期几 (4)15. 取得某个月的天数 (4)16. 判断是否闰年 (4)17. 判断当前时间是上午下午还是晚上 (4)18. 一个季度多少天 (4)Oracle各种日期计算方法1.显示当前时间年月日小时分钟秒上午星期SELECT to_char(SYSDATE,'yyyy-mm-dd hh24:mi:ss am Day') FROM dual2.一个月的第一天代码(双击代码复制到粘贴板)SELECT to_date(to_char(SYSDATE,'yyyy-mm')||'-01','yyyy-mm-dd')FROM dualsysdate 为数据库服务器的当前系统时间。

to_char 是将日期型转为字符型的函数。

to_date 是将字符型转为日期型的函数,一般使用yyyy-mm-dd hh24:mi:ss格式,当没有指定时间部分时,则默认时间为00:00:00dual 表为sys用户的表,这个表仅有一条记录,可以用于计算一些表达式,如果有好事者用sys 用户登录系统,然后在dual 表增加了记录的话,那么系统99.999%不能使用了。

为什么使用的时候不用sys.dual 格式呢,因为sys 已经为dual 表建立了所有用户均可使用的别名。

3.一年的第一天代码(双击代码复制到粘贴板)SELECT to_date( to_char(SYSDATE,'yyyy')||'-01-01','yyyy-mm-dd')FROM dual4.季度的第一天select trunc(sysdate,'Q') from dual;---2010.07.01SELECT to_date(to_char(SYSDATE,'yyyy-')||lpad(floor(to_number(to_char(SYSDATE,'mm'))/3)*3+1,2,'0 ')||'-01','yyyy-mm-dd')FROM dualfloor 为向下取整lpad 为向左使用指定的字符扩充字符串,这个扩充字符串至2位,不足的补'0'。

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;。

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

转一篇oracle日期时间用法的文章,十分有用! -------------------------------------------------------------- 相信很多人都有过统计某些数据的经历,比如,要统计财务的情况,可能要按每年,每季度,每月,甚至每个星期来分别统计。

那在oracle中应该怎么来写sql语句呢,这个时候Oracle的日期函数会给我们很多帮助。

常用日期型函数 1。

Sysdate 当前日期和时间 SQL> Select sysdate from dual; SYSDATE ---------- 21-6月 -05 2。

Last_day 本月最后一天 SQL> Select last_day(sysdate from dual; LAST_DAY(S ---------- 30-6月 -05 3。

Add_months(d,n 当前日期d后推n个月用于从一个日期值增加或减少一些月份date_value:=add_months(date_value,number_of_months SQL> Selectadd_months(sysdate,2 from dual; ADD_MONTHS ---------- 21-8月 -05 4。

Months_between(f,s 日期f和s间相差月数 SQL> selectmonths_between(sysdate,to_date('2005-11-12','yyyy-mm-dd'from dual;MONTHS_BETWEEN(SYSDATE,TO_DATE('2005-11-12','YYYY-MM-DD' ---------------------------------------------------------- -4.6966741 5。

NEXT_DAY(d, day_of_week 返回由"day_of_week"命名的,在变量"d"指定的日期之后的第一个工作日的日期。

参数"day_of_week"必须为该星期中的某一天。

SQL> SELECTnext_day(to_date('20050620','YYYYMMDD',1 FROM dual; NEXT_DAY(T ---------- 26-6月 -05 6。

current_date(返回当前会话时区中的当前日期date_value:=current_date SQL> column sessiontimezone for a15 SQL> select sessiontimezone,current_date from dual; SESSIONTIMEZONE CURRENT_DA --------------- ---------- +08:00 13-11月-03 SQL> alter session set time_zone='-11:00' 2 / 会话已更改。

SQL> select sessiontimezone,current_timestamp from dual; SESSIONTIMEZONE CURRENT_TIMESTAMP --------------- ------------------------------------ -11:00 12-11月-03 04.59.13.668000 下午 -11:00 7。

current_timestamp(以timestamp with time zone数据类型返回当前会话时区中的当前日期 SQL> select current_timestamp from dual; CURRENT_TIMESTAMP --------------------------------------------------------------------------- 21-6月 -05 10.13.08.220589 上午 +08:00 8。

dbtimezone(返回时区 SQL> select dbtimezone from dual; DBTIME ------ -08:00 9。

extract(找出日期或间隔值的字段值 date_value:=extract(date_field from[datetime_value|interval_value] SQL> select extract(month from sysdate "This Month" from dual; This Month ---------- 6 SQL> select extract(year from add_months(sysdate,36 " Years" from dual; Years ---------- 2008 10。

localtimestamp(返回会话中的日期和时间SQL> select localtimestamp from dual; LOCALTIMESTAMP --------------------------------------------------------------------------- 21-6月 -05 10.18.15.855652 上午常用日期数据格式(该段为摘抄) Y或YY或YYY 年的最后一位,两位或三位Select to_char(sysdate,’YYY’ from dual;002表示2002年 SYEAR或YEAR SYEAR使公元前的年份前加一负号 Selectto_char(sysdate,’SYEAR’ from dual; -1112表示公元前111 2年 Q 季度,1~3月为第一季度Select to_char(sysdate,’Q’ from dual; 2表示第二季度① MM 月份数 Select to_char(sysdate,’MM’ from dual; 12表示12月 RM 月份的罗马表示 Selectto_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 当月第几天 Selectto_char(sysdate,’DD’ from dual; 04 10月4日为第4天 D 周内第几天 Selectto_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(sysda te,’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。

上月末天: SQL> select to_char(add_months(last_day(sysdate,-1,'yyyy-MM-dd' LastDay from dual;LASTDAY ---------- 2005-05-31 2。

上月今天 SQL> selectto_char(add_months(sysdate,-1,'yyyy-MM-dd' PreToday from dual; PRETODAY ---------- 2005-05-21 3.上月首天 SQL> select to_char(add_months(last_day(sysdate+1,-2,'yyyy-MM-dd' firstDay from dual; FIRSTDAY ---------- 2005-05-01 4.按照每周进行统计 SQL> select to_char(sysdate,'ww' from dual group by to_char(sysdate,'ww'; TO -- 25 5。

按照每月进行统计 SQL> select to_char(sysdate,'mm' from dual group byto_char(sysdate,'mm'; TO -- 06 6。

按照每季度进行统计 SQL> selectto_char(sysdate,'q' from dual group by to_char(sysdate,'q'; T - 2 7。

按照每年进行统计SQL> select to_char(sysdate,'yyyy' from dual group by to_char(sysdate,'yyyy'; TO_C ---- 2005 8.要找到某月中所有周五的具体日期 select to_char(t.d,'YY-MM-DD' from( select trunc(sysdate, 'MM'+rownum-1 as d from dba_objectswhere rownum < 32 t where to_char(t.d, 'MM' = to_char(sysdate, 'MM' --找出当前月份的周五的日期 and trim(to_char(t.d, 'Day' = '星期五' -------- 03-05-02 03-05-09 03-05-16 03-05-23 03-05-30 如果把where to_char(t.d, 'MM' = to_char(sysdate, 'MM'改成sysdate-90,即为查找当前月份的前三个月中的每周五的日期。

相关文档
最新文档