- 浏览: 1364681 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (551)
- 计划 (4)
- java (115)
- oracle (60)
- ajax (3)
- javascript (64)
- 计算机操作技巧集 (11)
- 近期关注话题 (10)
- 随想 (13)
- html (6)
- struts (15)
- hibernate (16)
- spring (2)
- game (0)
- Eglish (10)
- DisplayTag (6)
- jsp (18)
- css (3)
- eclipse (3)
- 其他知识 (8)
- 备用1 (12)
- 备用2 (1)
- 笑话-放松心情 (9)
- 设计 (1)
- 设计模式 (1)
- 数据结构 (0)
- office办公软件 (5)
- webwork (0)
- tomcat (2)
- MySql (1)
- 我的链接资源 (5)
- xml (2)
- servlet (0)
- PHP (13)
- DOM (0)
- 网页画图vml,canvas (1)
- 协议 (2)
- 健康 (3)
- 书籍下载 (1)
- jbpm (1)
- EXT (1)
- 自考 (2)
- 报表 (4)
- 生活 (64)
- 操作系统基础知识 (2)
- 测试 (2)
- guice (1)
- google学习 (2)
- Erlang (1)
- LOG4J (2)
- wicket (1)
- 考研 (1)
- 法律 (1)
- 地震 (1)
- 易学-等等相关 (1)
- 音乐 (1)
- 建站 (4)
- 分享说 (3)
- 购物省钱 (0)
- linux (1)
最新评论
-
zenmshuo:
如果使用SpreadJS这一类的表格工具,应该能更好的实现这些 ...
js中excel的用法 -
hjhj2991708:
第一个已经使用不了
jar包查询网站 非常好用! -
jiangmeiwei:
...
中文乱码 我的总结 不断更新 -
gary_bu:
...
response.sendRedirect 中文乱码问题解决 -
hnez:
多谢指点,怎么调试也不通,原来我在<body>&l ...
ExtJs IE ownerDocument.createRange() 错误解决方案
三个日期函数(十分有用)!!!!!!!!
原文:http://www.itpub.net/139913.html
函数一:
CREATE OR REPLACE FUNCTION dayadd(
p_Component varchar2,
p_Number number,
p_Date date)
RETURN DATE
IS
/****************************************************************/
/* 该函数为日期计算函数主要是计算〕 */
/* 从当前日期开始经过多少日、季、月、年等后的日期。 */
/* 入参说明:p_Component 时间元件,如年月日季度等等 */
/* p_Number 加数, 注意:应该为整数(可正可负) */
/* p_Date 基准时间 */
/* 注意:其他日期元件,如世纪等等,暂时未考虑 */
/****************************************************************/
v_Component varchar2(10);
v_MiddleNumber number;
v_ReturnValue_Str varchar2(20); --字符串日期格式
v_ReturnValue date; --返回日期
BEGIN
v_Component := upper(ltrim(rtrim(p_Component)));
if v_Component in ('Y','YY','YEAR','YYYY') then --年情况
v_ReturnValue := add_months(p_Date,p_Number*12);
elsif v_Component in ('M','MM','MONTH','MON') then --月情况
v_ReturnValue := add_months(p_Date,p_Number);
elsif v_Component in ( 'D', 'DD', 'DAY') then --日情况
v_ReturnValue := p_Date + p_Number;
elsif v_Component in ('H', 'HH', 'HOUR') then --时情况
v_ReturnValue := p_Date + p_Number/24;
elsif v_Component in ('MI','MINUTE') then --分情况
v_ReturnValue := p_Date + p_Number/1440;
elsif v_Component in('S', 'SS', 'SECOND') then --秒情况
v_ReturnValue := p_Date + p_Number/86400;
elsif v_Component in ('Q','QQ','QUARTER') then --季度情况
v_ReturnValue := p_Date + p_Number*3;
elsif v_Component in ('W','WW','WK','WEEK') then --周情况
v_ReturnValue := p_Date + p_Number*7;
else
v_ReturnValue := to_date('1-1-1','yyyy-mm-dd');
end if;
RETURN v_ReturnValue;
EXCEPTION
WHEN OTHERS THEN
RETURN to_date('1-1-1','yyyy-mm-dd'); --例外处理
END;
函数二:
create or replace function datediff
(p_Component varchar2 ,
p_Subtranhend date,
p_Minuend date)
RETURN NUMBER
IS
/*************************************************************************/
/* 功 能:返回两个日期之间的天、周、月、年等数量。 */
/* 入参说明: p_Component 时间元件,如年月日季度等等 */
/* p_Subtrahend 减数时间 */
/* p_Minuend 被减数时间 */
/*************************************************************************/
v_ReturnValue number ; -- 结果数值
v_Component varchar2(10); --日期组件中间转换形式,截取空格并且转为大写
v_YearNum1 number; --减数年份数
v_YearNum2 number; --被减数年份数
v_MonthNum1 number; --减数月份数
v_MonthNum2 number; --被减数月份数
v_HourNum1 number; --减数时数
v_HourNum2 number; --被减数时数
v_MinuteNum1 number; --减数分钟数
v_MinuteNum2 number; --被减数分钟数
v_SecondNum1 number; --减数秒钟数
v_SecondNum2 number; --减数秒钟数
v_QuarterValue1 number; --减数季度数
v_QuarterValue2 number; --被减数季度数
v_WeekNum1 number; --减数与标准时间周差
v_WeekNum2 number; --被减数与标准时间周差
BEGIN
v_Component := upper(ltrim(rtrim(p_Component)));
if v_Component in ('Y','YY','YEAR','YYYY') then --年情况
v_YearNum1 := to_number(to_char(p_Subtranhend,'YYYY'));
v_YearNum2 := to_number(to_char(p_Minuend,'YYYY')) ;
v_ReturnValue := v_YearNum2 - v_YearNum1;
elsif v_Component in ('M', 'MM','MONTH', 'MON') then --月情况
--请注意,这个部分与oracle内置日期函数MONTH_BETWEEN()不同,忽略了日因素
--而后者的两个日期如都是所在月的最后一天,才返回整数,否则,返回分数
--而且这个分数是以31天作为一个月进行计算的结果
v_YearNum1 := to_number(to_char(p_Subtranhend,'YYYY'));
v_YearNum2 := to_number(to_char(p_Minuend,'YYYY')) ;
v_MonthNum1 := to_number(to_char(p_Subtranhend,'MM'));
v_MonthNum2 := to_number(to_char(p_Minuend,'MM'));
v_ReturnValue := (v_YearNum2 - v_YearNum1)*12 + (v_MonthNum2 - v_MonthNum1);
elsif v_Component in ( 'D', 'DD', 'DAY') then --日情况
--这里与两个日期直接相减的oracle日期算术也不同,只返回整数天数;
--而后者可以返回一天的几分之几(以小数形式表达)
v_ReturnValue := to_date(to_char(p_Minuend,'yyyy-mm-dd'),'YYYY-MM-DD')
- to_date(to_char(p_Subtranhend,'yyyy-mm-dd'),'YYYY-MM-DD');
elsif v_Component in ('H', 'HH', 'HOUR') then --时情况
--第一步:求出天数
v_ReturnValue := (to_date(to_char(p_Minuend,'yyyy-mm-dd'),'YYYY-MM-DD')
- to_date(to_char(p_Subtranhend,'yyyy-mm-dd'), 'YYYY-MM-DD'));
--第二步:求出时数
v_HourNum1 := to_number(to_char(p_Subtranhend,'HH24'));
v_HourNum2 := to_number(to_char(p_Minuend,'HH24'));
v_ReturnValue := v_ReturnValue*24 + (v_HourNum2 - v_HourNum1);
elsif v_Component in ('MI','MINUTE') then --分情况
--第一步:求出天数
v_ReturnValue := (to_date(to_char(p_Minuend,'yyyy-mm-dd'),'YYYY-MM-DD')
- to_date(to_char(p_Subtranhend,'yyyy-mm-dd'), 'YYYY-MM-DD'));
--第二步:求出时数
v_HourNum1 := to_number(to_char(p_Subtranhend,'HH24'));
v_HourNum2 := to_number(to_char(p_Minuend,'HH24'));
v_ReturnValue := v_ReturnValue*24 + (v_HourNum2 - v_HourNum1);
--第三步:求出分钟数
v_MinuteNum1 := to_number(to_char(p_Subtranhend,'MI'));
v_MinuteNum2 := to_number(to_char(p_Minuend,'MI'));
v_ReturnValue := v_ReturnValue*60 + (v_MinuteNum2 - v_MinuteNum1);
elsif v_Component in('S', 'SS', 'SECOND') then --秒情况
--第一步:求出天数
v_ReturnValue := (to_date(to_char(p_Minuend,'yyyy-mm-dd'),'YYYY-MM-DD')
- to_date(to_char(p_Subtranhend,'yyyy-mm-dd'),
'YYYY-MM-DD'));
--第二步:求出时数
v_HourNum1 := to_number(to_char(p_Subtranhend,'HH24'));
v_HourNum2 := to_number(to_char(p_Minuend,'HH24'));
v_ReturnValue := v_ReturnValue*24 + (v_HourNum2 - v_HourNum1);
--第三步:求出分钟数
v_MinuteNum1 := to_number(to_char(p_Subtranhend,'MI'));
v_MinuteNum2 := to_number(to_char(p_Minuend,'MI'));
v_ReturnValue := v_ReturnValue*60 + (v_MinuteNum2 - v_MinuteNum1);
--第四步:求出秒钟数
v_SecondNum1 := to_number(to_char(p_Subtranhend,'SS'));
v_SecondNum2 := to_number(to_char(p_Minuend,'SS'));
v_ReturnValue := v_ReturnValue*60 + (v_SecondNum2 - v_SecondNum1);
elsif v_Component in ('Q','QQ','QUARTER') then --季度情况
v_YearNum1 := to_number(to_char(p_Subtranhend,'YYYY'));
v_YearNum2 := to_number(to_char(p_Minuend,'YYYY')) ;
v_QuarterValue1 := to_number(to_char(p_Subtranhend,'Q'));
v_QuarterValue2 := to_number(to_char(p_Minuend,'Q'));
v_ReturnValue := (v_YearNum2 - v_YearNum1)*4 + (v_QuarterValue2 - v_QuarterValue1);
elsif v_Component in ('W','WW','WK','WEEK') then --周情况
--一周的起始日期应当为星期日
--关于周差的计算,尝试采用中间日期的方法
--经查,‘1-1-2’即公元一年1月2日为周日,我们就可以用两个时间分别与其相减求周差
--两个结果再相减,即可得到正确的数值
v_WeekNum1 := floor( (to_date(to_char(p_Subtranhend,'YYYY-MM-DD'),'YYYY-MM-DD') -
to_date('1-1-2','YYYY-MM-DD'))/7);
v_WeekNum2 := floor( (to_date(to_char(p_Minuend,'YYYY-MM-DD'),'YYYY-MM-DD') -
to_date('1-1-2','YYYY-MM-DD'))/7);
v_ReturnValue := v_WeekNum2 - v_WeekNum1;
else
v_ReturnValue := -88888;
end if;
RETURN v_ReturnValue;
EXCEPTION
WHEN OTHERS THEN
RETURN -99999;--例外处理
END datediff;
函数三:
create or replace function datepart(
p_Component varchar2,
p_Date date)
RETURN NUMBER
IS
/*************************************************************************/
/* 功 能:获取某个日期中的部分时间元件(日、月、年、分、秒、等) */
/* 入参说明: p_Component 时间元件,如年月日季度等等 */
/* p_Date 需要解析的时间 */
/*************************************************************************/
v_Component varchar2(10);
v_ReturnValue NUMBER;
BEGIN
v_Component := upper(ltrim(rtrim(p_Component)));
if v_Component in ('Y','YY','YEAR','YYYY') then --年情况
v_ReturnValue := to_number(to_char(p_Date,'YYYY')) ;
elsif v_Component in ('M', 'MM','MONTH', 'MON') then --月情况
v_ReturnValue := to_number(to_char(p_Date,'MM')) ;
elsif v_Component in ( 'D', 'DD', 'DAY') then --日情况
v_ReturnValue := to_number(to_char(p_Date,'DD')) ;
elsif v_Component in ('H', 'HH', 'HOUR', 'HH24') then --时情况
v_ReturnValue := to_number(to_char(p_Date,'HH24')) ;
elsif v_Component in ('MI','MINUTE') then --分情况
v_ReturnValue := to_number(to_char(p_Date,'MI')) ;
elsif v_Component in('S', 'SS', 'SECOND') then --秒情况
v_ReturnValue := to_number(to_char(p_Date,'SS')) ;
elsif v_Component in ('Q','QQ','QUARTER') then --季度情况
v_ReturnValue := to_number(to_char(p_Date,'Q')) ;
elsif v_Component in ('W','WW','WK','WEEK') then --周几情况(周日为第一天)
v_ReturnValue := to_number(to_char(p_Date,'D')) ;
elsif v_Component in ('WEEK_NO') then -- 第几周情况
v_ReturnValue := to_number(to_char(p_Date,'IW')) ;
else
v_ReturnValue := -88888;
end if;
RETURN v_ReturnValue;
EXCEPTION
WHEN OTHERS THEN
RETURN -99999;--例外处理
END datepart;
原文:http://www.itpub.net/139913.html
函数一:
CREATE OR REPLACE FUNCTION dayadd(
p_Component varchar2,
p_Number number,
p_Date date)
RETURN DATE
IS
/****************************************************************/
/* 该函数为日期计算函数主要是计算〕 */
/* 从当前日期开始经过多少日、季、月、年等后的日期。 */
/* 入参说明:p_Component 时间元件,如年月日季度等等 */
/* p_Number 加数, 注意:应该为整数(可正可负) */
/* p_Date 基准时间 */
/* 注意:其他日期元件,如世纪等等,暂时未考虑 */
/****************************************************************/
v_Component varchar2(10);
v_MiddleNumber number;
v_ReturnValue_Str varchar2(20); --字符串日期格式
v_ReturnValue date; --返回日期
BEGIN
v_Component := upper(ltrim(rtrim(p_Component)));
if v_Component in ('Y','YY','YEAR','YYYY') then --年情况
v_ReturnValue := add_months(p_Date,p_Number*12);
elsif v_Component in ('M','MM','MONTH','MON') then --月情况
v_ReturnValue := add_months(p_Date,p_Number);
elsif v_Component in ( 'D', 'DD', 'DAY') then --日情况
v_ReturnValue := p_Date + p_Number;
elsif v_Component in ('H', 'HH', 'HOUR') then --时情况
v_ReturnValue := p_Date + p_Number/24;
elsif v_Component in ('MI','MINUTE') then --分情况
v_ReturnValue := p_Date + p_Number/1440;
elsif v_Component in('S', 'SS', 'SECOND') then --秒情况
v_ReturnValue := p_Date + p_Number/86400;
elsif v_Component in ('Q','QQ','QUARTER') then --季度情况
v_ReturnValue := p_Date + p_Number*3;
elsif v_Component in ('W','WW','WK','WEEK') then --周情况
v_ReturnValue := p_Date + p_Number*7;
else
v_ReturnValue := to_date('1-1-1','yyyy-mm-dd');
end if;
RETURN v_ReturnValue;
EXCEPTION
WHEN OTHERS THEN
RETURN to_date('1-1-1','yyyy-mm-dd'); --例外处理
END;
函数二:
create or replace function datediff
(p_Component varchar2 ,
p_Subtranhend date,
p_Minuend date)
RETURN NUMBER
IS
/*************************************************************************/
/* 功 能:返回两个日期之间的天、周、月、年等数量。 */
/* 入参说明: p_Component 时间元件,如年月日季度等等 */
/* p_Subtrahend 减数时间 */
/* p_Minuend 被减数时间 */
/*************************************************************************/
v_ReturnValue number ; -- 结果数值
v_Component varchar2(10); --日期组件中间转换形式,截取空格并且转为大写
v_YearNum1 number; --减数年份数
v_YearNum2 number; --被减数年份数
v_MonthNum1 number; --减数月份数
v_MonthNum2 number; --被减数月份数
v_HourNum1 number; --减数时数
v_HourNum2 number; --被减数时数
v_MinuteNum1 number; --减数分钟数
v_MinuteNum2 number; --被减数分钟数
v_SecondNum1 number; --减数秒钟数
v_SecondNum2 number; --减数秒钟数
v_QuarterValue1 number; --减数季度数
v_QuarterValue2 number; --被减数季度数
v_WeekNum1 number; --减数与标准时间周差
v_WeekNum2 number; --被减数与标准时间周差
BEGIN
v_Component := upper(ltrim(rtrim(p_Component)));
if v_Component in ('Y','YY','YEAR','YYYY') then --年情况
v_YearNum1 := to_number(to_char(p_Subtranhend,'YYYY'));
v_YearNum2 := to_number(to_char(p_Minuend,'YYYY')) ;
v_ReturnValue := v_YearNum2 - v_YearNum1;
elsif v_Component in ('M', 'MM','MONTH', 'MON') then --月情况
--请注意,这个部分与oracle内置日期函数MONTH_BETWEEN()不同,忽略了日因素
--而后者的两个日期如都是所在月的最后一天,才返回整数,否则,返回分数
--而且这个分数是以31天作为一个月进行计算的结果
v_YearNum1 := to_number(to_char(p_Subtranhend,'YYYY'));
v_YearNum2 := to_number(to_char(p_Minuend,'YYYY')) ;
v_MonthNum1 := to_number(to_char(p_Subtranhend,'MM'));
v_MonthNum2 := to_number(to_char(p_Minuend,'MM'));
v_ReturnValue := (v_YearNum2 - v_YearNum1)*12 + (v_MonthNum2 - v_MonthNum1);
elsif v_Component in ( 'D', 'DD', 'DAY') then --日情况
--这里与两个日期直接相减的oracle日期算术也不同,只返回整数天数;
--而后者可以返回一天的几分之几(以小数形式表达)
v_ReturnValue := to_date(to_char(p_Minuend,'yyyy-mm-dd'),'YYYY-MM-DD')
- to_date(to_char(p_Subtranhend,'yyyy-mm-dd'),'YYYY-MM-DD');
elsif v_Component in ('H', 'HH', 'HOUR') then --时情况
--第一步:求出天数
v_ReturnValue := (to_date(to_char(p_Minuend,'yyyy-mm-dd'),'YYYY-MM-DD')
- to_date(to_char(p_Subtranhend,'yyyy-mm-dd'), 'YYYY-MM-DD'));
--第二步:求出时数
v_HourNum1 := to_number(to_char(p_Subtranhend,'HH24'));
v_HourNum2 := to_number(to_char(p_Minuend,'HH24'));
v_ReturnValue := v_ReturnValue*24 + (v_HourNum2 - v_HourNum1);
elsif v_Component in ('MI','MINUTE') then --分情况
--第一步:求出天数
v_ReturnValue := (to_date(to_char(p_Minuend,'yyyy-mm-dd'),'YYYY-MM-DD')
- to_date(to_char(p_Subtranhend,'yyyy-mm-dd'), 'YYYY-MM-DD'));
--第二步:求出时数
v_HourNum1 := to_number(to_char(p_Subtranhend,'HH24'));
v_HourNum2 := to_number(to_char(p_Minuend,'HH24'));
v_ReturnValue := v_ReturnValue*24 + (v_HourNum2 - v_HourNum1);
--第三步:求出分钟数
v_MinuteNum1 := to_number(to_char(p_Subtranhend,'MI'));
v_MinuteNum2 := to_number(to_char(p_Minuend,'MI'));
v_ReturnValue := v_ReturnValue*60 + (v_MinuteNum2 - v_MinuteNum1);
elsif v_Component in('S', 'SS', 'SECOND') then --秒情况
--第一步:求出天数
v_ReturnValue := (to_date(to_char(p_Minuend,'yyyy-mm-dd'),'YYYY-MM-DD')
- to_date(to_char(p_Subtranhend,'yyyy-mm-dd'),
'YYYY-MM-DD'));
--第二步:求出时数
v_HourNum1 := to_number(to_char(p_Subtranhend,'HH24'));
v_HourNum2 := to_number(to_char(p_Minuend,'HH24'));
v_ReturnValue := v_ReturnValue*24 + (v_HourNum2 - v_HourNum1);
--第三步:求出分钟数
v_MinuteNum1 := to_number(to_char(p_Subtranhend,'MI'));
v_MinuteNum2 := to_number(to_char(p_Minuend,'MI'));
v_ReturnValue := v_ReturnValue*60 + (v_MinuteNum2 - v_MinuteNum1);
--第四步:求出秒钟数
v_SecondNum1 := to_number(to_char(p_Subtranhend,'SS'));
v_SecondNum2 := to_number(to_char(p_Minuend,'SS'));
v_ReturnValue := v_ReturnValue*60 + (v_SecondNum2 - v_SecondNum1);
elsif v_Component in ('Q','QQ','QUARTER') then --季度情况
v_YearNum1 := to_number(to_char(p_Subtranhend,'YYYY'));
v_YearNum2 := to_number(to_char(p_Minuend,'YYYY')) ;
v_QuarterValue1 := to_number(to_char(p_Subtranhend,'Q'));
v_QuarterValue2 := to_number(to_char(p_Minuend,'Q'));
v_ReturnValue := (v_YearNum2 - v_YearNum1)*4 + (v_QuarterValue2 - v_QuarterValue1);
elsif v_Component in ('W','WW','WK','WEEK') then --周情况
--一周的起始日期应当为星期日
--关于周差的计算,尝试采用中间日期的方法
--经查,‘1-1-2’即公元一年1月2日为周日,我们就可以用两个时间分别与其相减求周差
--两个结果再相减,即可得到正确的数值
v_WeekNum1 := floor( (to_date(to_char(p_Subtranhend,'YYYY-MM-DD'),'YYYY-MM-DD') -
to_date('1-1-2','YYYY-MM-DD'))/7);
v_WeekNum2 := floor( (to_date(to_char(p_Minuend,'YYYY-MM-DD'),'YYYY-MM-DD') -
to_date('1-1-2','YYYY-MM-DD'))/7);
v_ReturnValue := v_WeekNum2 - v_WeekNum1;
else
v_ReturnValue := -88888;
end if;
RETURN v_ReturnValue;
EXCEPTION
WHEN OTHERS THEN
RETURN -99999;--例外处理
END datediff;
函数三:
create or replace function datepart(
p_Component varchar2,
p_Date date)
RETURN NUMBER
IS
/*************************************************************************/
/* 功 能:获取某个日期中的部分时间元件(日、月、年、分、秒、等) */
/* 入参说明: p_Component 时间元件,如年月日季度等等 */
/* p_Date 需要解析的时间 */
/*************************************************************************/
v_Component varchar2(10);
v_ReturnValue NUMBER;
BEGIN
v_Component := upper(ltrim(rtrim(p_Component)));
if v_Component in ('Y','YY','YEAR','YYYY') then --年情况
v_ReturnValue := to_number(to_char(p_Date,'YYYY')) ;
elsif v_Component in ('M', 'MM','MONTH', 'MON') then --月情况
v_ReturnValue := to_number(to_char(p_Date,'MM')) ;
elsif v_Component in ( 'D', 'DD', 'DAY') then --日情况
v_ReturnValue := to_number(to_char(p_Date,'DD')) ;
elsif v_Component in ('H', 'HH', 'HOUR', 'HH24') then --时情况
v_ReturnValue := to_number(to_char(p_Date,'HH24')) ;
elsif v_Component in ('MI','MINUTE') then --分情况
v_ReturnValue := to_number(to_char(p_Date,'MI')) ;
elsif v_Component in('S', 'SS', 'SECOND') then --秒情况
v_ReturnValue := to_number(to_char(p_Date,'SS')) ;
elsif v_Component in ('Q','QQ','QUARTER') then --季度情况
v_ReturnValue := to_number(to_char(p_Date,'Q')) ;
elsif v_Component in ('W','WW','WK','WEEK') then --周几情况(周日为第一天)
v_ReturnValue := to_number(to_char(p_Date,'D')) ;
elsif v_Component in ('WEEK_NO') then -- 第几周情况
v_ReturnValue := to_number(to_char(p_Date,'IW')) ;
else
v_ReturnValue := -88888;
end if;
RETURN v_ReturnValue;
EXCEPTION
WHEN OTHERS THEN
RETURN -99999;--例外处理
END datepart;
发表评论
-
oracle删除重复记录
2009-07-16 11:16 1215有困难,找猪八戒 Q:要删除一张表中的重复记录,但是要保留一条 ... -
db2 express-c 安装后检查及安装例子数据库
2009-02-27 17:07 3394摘自http://publib.boulder.ibm.com ... -
问:如何得到与WEB-INF同级目录下的配置文件
2008-09-23 08:35 2134Q: 有如下需求:需要从WEB-INF同级的目录下读取配 ... -
讨论如何优化这条sql
2008-09-11 16:33 1597SELECT * FROM ( ... -
N Vs Exist in SQL
2008-07-02 16:39 1393N Vs Exist in SQL 原文如下: http:// ... -
SQL 指南
2008-05-27 11:45 1047http://www.sql-tutorial.com/ -
orace 分析函数
2008-05-26 09:08 1212select x.num, sum(x.num) over ( ... -
oralce tutoial 指南
2008-03-22 14:21 1031http://www.exforsys.com/tutoria ... -
查找部分字段重复的记录 ORACLE Identifying duplicate rows
2008-03-13 08:49 1968http://www.jlcomp.demon.co.uk/f ... -
oracle 资源网站
2008-01-12 11:42 1877oracle alter table table_ ... -
Top 5 Oracle Reference Books 前5本 oracle 参考书
2008-01-12 11:24 1718http://databases.about.com/od/o ... -
Oracle与DB2、MySQL取前10条记录的对比<转>
2008-01-11 16:46 2221原文:http://tech.ccidnet.com/art/ ... -
expert on e on one oracle - Thomas Kyte 读书笔记
2008-01-11 10:17 2111=============================== ... -
oracle 资源 整体理解oralce 比较好 英文网
2008-01-09 16:59 1194http://www.adp-gmbh.ch/ora/admi ... -
oracle java 插入 clob insert clob hibernate
2007-12-21 15:48 7230用jdbc 或者 hibernate http://www.w ... -
pl/sql 应用之一
2007-12-12 17:21 1138declare begin insert into x ... -
init.ora文件所在目录
2007-12-12 15:58 2167Oracle安装盘:\oracle\admin\DB名称\pf ... -
[Oracle] 如何解决ORA-04031 错误
2007-12-12 15:53 3254[Oracle] 如何解决ORA-04031 ... -
oracle faq 常见问题解答 http://www.orafaq.com/
2007-12-12 13:34 1499The Oracle FAQ http://www.oraf ... -
oracle 快速参考
2007-12-12 09:58 1095http://www.psoug.org/library.ht ...
相关推荐
SYSDATE、CURRENT和TODAY函数是Gbase 8s内置函数中的三个日期函数,它们的作用都是返回当前的日期和时间。不同的是,SYSDATE函数返回当前的日期和时间,包括时、分、秒和毫秒;CURRENT函数返回当前的日期和时间,但...
`DATEDIFF`函数则用于计算两个日期之间的差异,同样接收三个参数:时间单位、起始日期和结束日期。该函数返回的是整数值,表示两个日期间的时间单位数量。例如,`DATEDIFF(dd, '2023-01-01', '2023-01-31')`返回30,...
ClickHouse是一个开源的列式数据库管理系统,它提供了丰富的时间日期函数来处理和操作时间和日期数据。以下是ClickHouse中常用的时间日期函数的简介: 1. toDate(date_expression):将日期表达式转换为日期类型。...
以下是对C#中常用日期时间函数的详细解释: 1. **获取当前日期时间** ```csharp System.DateTime currentTime = System.DateTime.Now; ``` 这行代码创建了一个DateTime类型的变量`currentTime`,并将其设置为...
返回值分别为7、7和8,其中第三个参数为0时,一周从星期日开始;为1时,从星期一开始。 ### 10. `YEAR(date)` `YEAR()`函数返回指定日期是哪一年,范围从1000到9999。 示例: ```sql SELECT YEAR('98-02-03'); ``...
在本题中,我们需要设计一个友元函数来计算两个日期之间的天数差异。下面将详细阐述如何实现这个功能。 首先,我们定义一个名为`Date`的类,它包含表示日期的年、月、日的数据成员。这些数据成员通常设置为私有,以...
为了简化这一过程,许多开发者选择利用自定义的日期函数库或者现有的第三方库来完成复杂的日期时间操作。本文将详细介绍一个实用的JavaScript日期函数库,包括其核心功能及使用方法。 #### 二、核心功能 根据提供...
### ORACLE常用日期函数集合详解 #### 一、概述 在Oracle数据库中,日期处理是一项非常重要的功能。本文将详细介绍一些常用的Oracle日期函数及其应用场景,帮助数据库管理员或开发者更好地理解和运用这些函数,以...
特别是在业务处理过程中,往往需要对日期进行各种各样的计算和转换,如获取当前时间、计算两个日期之间的差值等。本文将详细介绍一些常用的日期函数,并对其进行分类归纳,帮助读者更好地理解和运用这些函数。 ####...
**用法示例:** 使用 Month() 函数可以从一个日期值中提取出具体的月份。例如,从日期 "2023-07-01" 中提取月份,结果将是 7。 #### 六、Day(date) **功能:** 获取日期中的具体日子。 **参数:** date 类型的值。 ...
在SQL中,日期函数是处理和操作日期及时间的关键工具,它们帮助我们执行各种复杂的日期时间计算,如计算两个日期之间的差异、提取日期中的特定部分等。本文将深入解析SQL中常用的日期函数之一:`DatePart`函数及其...
例如,将当前日期往后推三个月: ```sql SELECT ADD_MONTHS(SYSDATE, 3) FROM DUAL; ``` 3. **MONTHS_BETWEEN(date1, date2)**: 计算两个日期之间的月份数,考虑到了日历中的天数差异。返回值可能为浮点数,表示...
除了以上介绍的功能外,Oracle还提供了许多其他的日期函数,比如用于计算两个日期之间间隔的 `MONTHS_BETWEEN` 函数,以及用于增加或减少指定日期单位的 `ADD_MONTHS` 和 `LAST_DAY` 等函数。这些函数在处理复杂的...
**DateDiff**函数用于计算两个日期之间的时间差,可以按天(dd)、周(wk)或月(mm)等单位进行计算。例如: 1. **查询某一天的数据**: - `SELECT * FROM TableName WHERE DateDiff(dd, DateTimCol, GetDate()) = 1;` ...
在Sybase数据库系统中,日期和时间的处理是数据库操作中的常见任务,这涉及到一系列的日期函数。本文将深入解析Sybase的四个主要日期函数及其应用。 1. **getdate()** 函数: - `getdate()` 用于获取当前系统时间...
可以使用`current date`、`current time`以及`current timestamp`这三个DB2寄存器来获取系统的当前日期、时间以及精确到微秒的时间戳。这些寄存器可以通过`SELECT`语句从`sysibm.sysdummy1`表中查询,或者使用`...
利用这个函数,可以输入当天日期,然后输出先一天的日期。
这是SQL Server中最常用的一个日期函数,用于获取当前系统的日期和时间。函数不带任何参数,返回的是一个datetime类型的数据。例如,使用SELECT GETDATE()可以返回当前日期和时间。 2. YEAR、MONTH、DAY函数 这些...
-- 使用FLOOR函数计算两个日期之间的天数 SELECT FLOOR(TO_DATE('2008-05-02 00:00:00', 'yyyy-mm-dd hh24-mi-ss') - TO_DATE('2008-04-30 23:59:59', 'yyyy-mm-dd hh24-mi-ss')) AS 相差天数 FROM DUAL; -- 使用...
本案例即来源于一个决策表,其目的是编写一个`NextDate()`函数,该函数接收一个日期(年、月、日)作为输入,并返回输入日期的下一天。该函数使用C语言编写,旨在通过具体实现加深对日期处理和逻辑控制的理解。 ###...