- 浏览: 74760 次
- 性别:
- 来自: 武汉
最新评论
-
nanjiwubing123:
HSunday 写道美女,在不在啊?我也遇到这个问题了,但是看 ...
查询大字段时clob,报java.lang.NumberFormatException: For input string: "4294967295" -
nanjiwubing123:
是的 ,下载最新的ojdbc14的jar包。可以解决。
查询大字段时clob,报java.lang.NumberFormatException: For input string: "4294967295" -
HSunday:
美女,在不在啊?我也遇到这个问题了,但是看了你这篇文章还是不知 ...
查询大字段时clob,报java.lang.NumberFormatException: For input string: "4294967295" -
ada_li_li:
既然知道自己哪些地方做得不对,就为做得不对的地方道歉好了。有时 ...
xxxxxxxxxxxxxxxxxxxxxxxxxxxx -
dennis_zane:
楼主是个MM?比较冲动和任性哦
xxxxxxxxxxxxxxxxxxxxxxxxxxxx
.日期时间间隔操作
当前时间减去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 ’2’ hour from dual
2.日期到字符操作
select sysdate,to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) from dual
select sysdate,to_char(sysdate,’yyyy-mm-dd hh:mi:ss’) from dual
select 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
参考oracle的相关关文档(ORACLE901DOC/SERVER.901/A90125/SQL_ELEMENTS4.HTM#48515)
3. 字符到日期操作
select to_date(’2003-10-17 21:15:37’,’yyyy-mm-dd hh24:mi:ss’) from dual
具体用法和上面的to_char差不多。
4. trunk/ ROUND函数的使用
select trunc(sysdate ,’YEAR’) from dual
select trunc(sysdate ) from dual
select to_char(trunc(sysdate ,’YYYY’),’YYYY’) from dual
5.oracle有毫秒级的数据类型
--返回当前时间 年月日小时分秒毫秒
select to_char(current_timestamp(5),’DD-MON-YYYY HH24:MI:SSxFF’) from dual;
--返回当前 时间的秒毫秒,可以指定秒后面的精度(最大=9)
select to_char(current_timestamp(9),’MI:SSxFF’) from dual;
6.计算程序运行的时间(ms)
declare
type rc is ref cursor;
l_rc rc;
l_dummy all_objects.object_name%type;
l_start number default dbms_utility.get_time;
begin
for I in 1 .. 1000
loop
open 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;
Oracle中几个关于日期方面的SQL实例
№1:取得当前日期是本月的第几周
SQL> select to_char(sysdate,'YYYYMMDD W HH24:MI:SS') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
20030327 4 18:16:09
SQL> select to_char(sysdate,'W') from dual;
T
-
4
№2:取得当前日期是一个星期中的第几天,注意星期日是第一天
SQL> select sysdate,to_char(sysdate,'D') from dual;
SYSDATE T
--------- -
27-MAR-03 5
类似:
select to_char(sysdate,'yyyy') from dual; --年
select to_char(sysdate,'Q' from dual; --季
select to_char(sysdate,'mm') from dual; --月
select to_char(sysdate,'dd') from dual; --日
ddd 年中的第几天
WW 年中的第几个星期
W 该月中第几个星期
D 周中的星期几
hh 小时(12)
hh24 小时(24)
Mi 分
ss 秒
№3:取当前日期是星期几中文显示:
SQL> select to_char(sysdate,'day') from dual;
TO_CHAR(SYSDATE,'DAY')
----------------------
星期四
№4:如果一个表在一个date类型的字段上面建立了索引,如何使用
alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'
№5: 得到当前的日期
select sysdate from dual;
№6: 得到当天凌晨0点0分0秒的日期
select trunc(sysdate) from dual;
-- 得到这天的最后一秒
select trunc(sysdate) + 0.99999 from dual;
-- 得到小时的具体数值
select trunc(sysdate) + 1/24 from dual;
select trunc(sysdate) + 7/24 from dual;
№7:得到明天凌晨0点0分0秒的日期
select trunc(sysdate+1) from dual;
select trunc(sysdate)+1 from dual;
№8: 本月一日的日期
select trunc(sysdate,'mm') from dual;
№9:得到下月一日的日期
select trunc(add_months(sysdate,1),'mm') from dual;
№10:返回当前月的最后一天?
select last_day(sysdate) from dual;
select last_day(trunc(sysdate)) from dual;
select trunc(last_day(sysdate)) from dual;
select trunc(add_months(sysdate,1),'mm') - 1 from dual;
№11: 得到一年的每一天
select trunc(sysdate,'yyyy')+ rn -1 date0
from
(select rownum rn from all_objects
where rownum<366);
№12:今天是今年的第N天
SELECT TO_CHAR(SYSDATE,'DDD') FROM DUAL;
№13:如何在给现有的日期加上2年
select add_months(sysdate,24) from dual;
№14:判断某一日子所在年分是否为润年
select decode(to_char(last_day(trunc(sysdate,'y')+31),'dd'),'29','闰年','平年') from dual;
№15:判断两年后是否为润年
select decode(to_char(last_day(trunc(add_months(sysdate,24),'y')+31),'dd'),'29','闰年','平年') from dual;
№16:得到日期的季度
select ceil(to_number(to_char(sysdate,'mm'))/3) from dual;
select to_char(sysdate, 'Q') from dual;
oracle 日期函数
Oracle 在日期使用上允许极大的灵活性。由于可以在日期字段存储时间和日期,从而有函数可以既引用日期又引用时间。
Oracle 所提供的一些日期函数如下所示。
1. SYSDATE
返回当前的日期和时间。
示例
SELECT sysdate FROM dual;
SYSDATE
----------
05-3 月 -03
2. ADD_MONTHS(d, no_of_month)
当前日期 "m" 后推 "no_of_month" 个月。参数 "no_of_month" 可为任何整数。
示例
SELECT add_months(sysdate,2) FROM dual;
ADD_MONTHS
----------
05-5 月 -03
SELECT add_months(sysdate,-2) FROM dual;
ADD_MONTHS
----------
05-1 月 -03
3. LAST_DAY(month_day)
返回变量 "month_day" 中所指定月份的最后一天的日期。
示例
SELECT last_day(sysdate) FROM dual;
LAST_DAY(S
----------
31-3 月 -03
4. MONTHS_BETWEEN(d1, d2)
返回日期 d1 和 d2 之间的月份数。如果 d1 晚于 d2 ,结果为正,否则返回负数。
示例
SELECT months_between(sysdate,to_date('20030101','YYYYMMDD')) FROM dual;
MONTHS_BETWEEN(SYSDATE,TO_DATE('20030101','YYYYMMDD'))
------------------------------------------------------
2.15773932
5. NEXT_DAY(d, day_of_week)
返回由 "day_of_week" 命名的,在变量 "d" 指定的日期之后的第一个工作日的日期。参数 "day_of_week" 必须为该星期中的某一天。
示例
-- 2003.3.2 是星期日
SELECT next_day(to_date('20030226','YYYYMMDD'),1) FROM dual;
NEXT_DAY(T
----------
02-3 月 -03
日期格式
格式元素 说明
AD 或 A.D. 带有或不带有句号的 AD 标记
BC 或 B.C. 带有或不带有句号的 BC 标记
D 一周中的天 (1-7)
DAY 天的名称 (Sunday - Saturday)
DD 一月中的天 (1 - 31)
DDD 一年中的天 (1 - 366)
DY 天的缩写 (Sun - Sat)
HH 一天中的小时 (1 - 12)
HH24 一天中的小时 (0 - 23)
MI 分钟 (0-59)
MM 月 (01-12)
MON 月名称的缩写
MONTH 月的名称
SS 秒 (0-59)
YYYY 4 个数字表示的年
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> Select add_months(sysdate,2) from dual;
ADD_MONTHS
----------
21-8月 -05
4。Months_between(f,s) 日期f和s间相差月数
SQL> select months_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> SELECT next_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使公元前的年份前加一负号 Select to_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 月份的罗马表示 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
发表评论
-
webservice的工作原理
2011-02-24 11:02 2642webservice的工作原理 实际上,WebServ ... -
存储过程语法及实例
2011-02-17 10:31 882存储过程如同一门程序设计语言,同样包含了数据类型、流程控制 ... -
查询大字段时clob,报java.lang.NumberFormatException: For input string: "4294967295"
2010-12-08 10:14 7366在执行查询带有CLOB列的方法时,报如下异常: ERROR] ... -
myeclipse代码或JSP页面改动之后,并没有生效问题
2010-12-06 16:00 4309今天突然在项目调试的时候,发现写的编码都不能够产生作用,还 ... -
hibernate 内连接 外连接区别
2010-11-08 11:47 964关键字: hibernate 这是我转载的一篇文章:htt ... -
Hibernate的HQL的几种连接查询方式
2010-11-08 11:36 1094在我们写sql语句中能够用连接方式来进行查询,当然在hib ... -
oracle中的左右连接
2010-11-08 11:21 918数据表的连接有: 1、内连接(自然连接): 只有两个表相匹配的 ... -
MyEclipse中SVN安装配置新手指南
2010-10-25 11:45 1257MyEclipse中SVN安装配置新 ... -
如何学习 junit java测试
2010-10-17 10:29 781为什么要进行单测试. 1. 单元测 ... -
三五个人十来条枪 如何走出软件作坊成为开发正规军(一)
2008-02-28 11:27 117自从发了上一篇博文,这几天收到很多朋友的来信。 大家从各个开发 ... -
走出软件作坊:三五个人十来条枪 如何成为开发正规军(二)
2008-05-20 10:53 698上一次,写了一篇文章《三五个人十来条枪 如何走出软件作坊成为开 ... -
项目经理的工具箱---走出软件作坊:三五个人十来条枪 如何成为开发正规军(三)
2008-05-26 12:22 697自从写了关于《三五个 ... -
实施经理的工具箱--走出软件作坊:三五个人十来条枪 如何成为开发正规军(五)
2008-05-29 12:58 754前段时间, 项目经理的 ... -
你这该死的销售--走出软件作坊:三五个人十来条枪 如何成为开发正规军(七)
2008-06-02 12:49 795上个星期,我的一个朋 ... -
水清则无鱼--走出软件作坊:三五个人十来条枪 如何成为开发正规军(八)
2008-06-04 01:00 819我的朋友开了家屁小公司,纯粹的三五个人十来条枪。每年还不死,但 ... -
实施费用也能DIY--走出软件作坊:三五个人十来条枪 如何成为开发正规军(九)
2008-06-05 17:58 641咱们书接上回。水清则无鱼--走出软件作坊:三五个人十来条枪 如 ... -
为什么DIY报价----走出软件作坊:三五个人十来条枪 如何成为开发正规军(十二)
2008-06-09 03:22 42前段时间,写了一个开 ... -
懈寄生---走出软件作坊:三五个人十来条枪 如何成为开发正规军(十四)
2008-06-11 13:36 801他渐渐合上流露挂念的 ... -
那根胡萝卜---走出软件作坊:三五个人十来条枪 如何成为开发正规军(十五)
2008-06-12 11:47 627昨天,有个网友给我写了一个MAIL,里面诉说了他现在的矛盾和困 ... -
走钢索的人---走出软件作坊:三五个人十来条枪 如何成为开发正规军(十七)
2008-06-15 01:26 717架构师是个很神圣的词。盖茨,世界首富。微软,世界最大最富有的软 ...
相关推荐
Oracle 自定义日期函数 Oracle 日期处理函数是数据库管理系统中非常重要的一部分,最近看到有人在做 T-SQL 与 PL/SQL 的转化,问了些有关时间函数的处理。在 PL/SQL 中,Oracle 提供了其他的方法来处理日期函数,...
Oracle常用日期型函数,大家经常想用的,又不想记得。现在,给你一个方便的资源
针对标题"oracle日期时间判断函数"和描述中提到的内容,我们可以深入探讨两个关键的函数,它们主要用于判断字符串是否可以转换为合法的日期时间格式。 1. TO_DATE函数: TO_DATE是Oracle中用于将字符串转换为日期...
Oracle 日期函数是 Oracle 数据库中的一组功能强大且广泛使用的函数,它们可以对日期进行各种操作和计算,本次练习涵盖了 Oracle 中常用的日期函数,包括获取当前系统时间、对日期的月进行加减、获取给定日期所在月...
通过学习和掌握以上Oracle日期函数,你可以轻松地进行日期和时间的计算、比较和格式化,提升数据库操作的效率。同时,了解如何处理时区问题也是非常重要的,特别是在分布式系统中。希望这些知识对你在处理Oracle...
Oracle日期函数大全是Oracle数据库中处理日期和时间的函数大全,包括TO_DATE、TO_CHAR等函数。这些函数可以对日期和时间进行各种操作,例如将日期转换为字符串、获取当前日期和时间、计算两个日期之间的天数等。 TO...
ORACLE 中日期和时间函数汇总 Oracle 中的日期和时间函数是数据库管理系统中非常重要的一部分,掌握这些函数可以帮助开发者和 DBA 更好地处理日期和时间相关的操作。 日期和字符转换函数 Oracle 中提供了两个...
### ORACLE常用日期函数...以上介绍的Oracle日期函数是数据库开发和管理中非常实用的一部分,通过灵活地运用这些函数,可以有效地解决各种与日期相关的数据处理问题。希望本文能够帮助读者更好地掌握和应用这些函数。
日期函数主要用于处理和操作日期数据,以下是一些主要的Oracle日期函数: 1. **MONTHS_BETWEEN(date1, date2)**: 计算date1和date2之间的月份数,结果是一个浮点数,精确到日。例如,MONTHS_BETWEEN('01-EP-95','11...
ORACLE日期时间函数大全
这是因为Oracle中的日期函数通常接受日期类型作为输入参数,而实际应用中可能需要处理的是字符串格式的日期数据。 ##### CDate 函数 ``` CREATE OR REPLACE FUNCTION CDate (dateChar IN VARCHAR2) RETURN DATE IS...
简单的oracle 时间比较函数,自己在网上找到并加以整理出来。
如果遇到格式问题,可以通过`ALTER SESSION SET NLS_DATE_LANGUAGE = 'AMERICAN'`来改变会话的日期语言,或者在`TO_DATE`函数中指定`NLS_DATE_LANGUAGE`。 8. **计算工作日**:如果需要排除特定天数,如周末,可以...
在Oracle数据库中,日期函数是处理日期和时间数据的关键工具之一。这些函数广泛应用于查询、报表生成以及其他需要处理日期和时间的应用场景。根据题目提供的信息,“oracle各种日期函数”主要涉及如何获取当前的年份...
Oracle函数是数据库操作中的核心组成部分,它们允许开发人员和DBA执行各种计算、转换、查询和数据处理任务。手册中可能涵盖了以下几类函数: 1. 数学函数:如ABS(取绝对值)、MOD(取模)、ROUND(四舍五入)等,...
以下是关于Oracle函数的一些详细说明: 1. ASCII函数:ASCII函数返回与输入字符相对应的ASCII码,即十进制数字。例如,ASCII('A')返回65,ASCII('a')返回97。 2. CHR函数:CHR函数根据提供的整数返回对应的字符。...
"Oracle 日期函数详解" Oracle 日期函数是数据库管理系统中经常使用到的函数,用于处理日期和时间相关的操作。下面是 Oracle 日期函数的详细介绍: 1. 日期和字符转换函数 Oracle 提供了两个重要的日期和字符转换...
在Oracle数据库中,日期函数是处理时间数据的关键工具,它们帮助我们进行日期的计算、转换以及格式化。以下是对标题和描述中提到的一些常用日期函数的详细解释: 1. **months_between** 函数:这个函数返回两个日期...
Oracle 中关于时间和日期的函数,好记性不如烂笔头