求日期间隔天数

[复制链接]
查看11 | 回复5 | 2005-2-28 12:57:00 | 显示全部楼层 |阅读模式
SQL> r
1* select to_date(sysdate,'yyyy-mm-dd')-to_date('2002-11-01','yyyy-mm-dd') from dual
TO_DATE(SYSDATE,'YYYY-MM-DD')-TO_DATE('2002-11-01','YYYY-MM-DD')
----------------------------------------------------------------

-723516

???

另搜索贴子,看不懂:
SQL> select (to_date('2002-10-10 14:40','yyyy-mm-dd hh24:mi')-to_date('2002-10-10 10:20','yyyy-mm-dd
hh24:mi')) * 24 from dual;
(TO_DATE('2002-10-1014:40','YYYY-MM-DDHH24:MI')-TO_DATE('2002-10-1010:20','YYYY-
--------------------------------------------------------------------------------

4.33333333

自己试验:不懂
SQL> r
1select (to_date(sysdate,'yyyy-mm-dd hh24:mi')-to_date('2002-10-10 10:20','yyyy-mm-dd
2*hh24:mi')) * 24 from dual
(TO_DATE(SYSDATE,'YYYY-MM-DDHH24:MI')-TO_DATE('2002-10-1010:20','YYYY-MM-DDHH24:
--------------------------------------------------------------------------------

-17363866
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
SQL> select months_between(sysdate,sysdate-30) from dual;
MONTHS_BETWEEN(SYSDATE,SYSDATE-30)

----------------------------------


1
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
to_date(sysdate,'yyyy-mm-dd')会报错的,记住两个日期相减是天.
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
select to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd')-to_date('2002-11-01','yyyy-mm-dd') from dual
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
最初由 ccbzzp 发布
[B]select to_date(to_char(sysdate,'yyyy-mm-dd'),'yyyy-mm-dd')-to_date('2002-11-01','yyyy-mm-dd') from dual [/B]

select sysdate-to_date('2002-11-01','yyyy-mm-dd') from dual
这样不就可以了,为什么还要to_date(sysdate,'yyyy-mm-dd') 呢。
回复

使用道具 举报

千问 | 2005-2-28 12:57:00 | 显示全部楼层
1.return days between day2 and day1
SQL> select (to_date('2002-10-10 11:00','yyyy-mm-dd hh24:mi')-to_date('2002-10-10
210:00','yyyy-mm-dd
3hh24:mi')) from dual;
(TO_DATE('2002-10-1011:00','YYYY-MM-DDHH24:MI')-TO_DATE('2002-10-1010:00','YYYY-
--------------------------------------------------------------------------------

.041666667

2.return hours between day2 and day1
SQL> select (to_date('2002-10-10 11:00','yyyy-mm-dd hh24:mi')-to_date('2002-10-10
210:00','yyyy-mm-dd
3hh24:mi')) * 24 from dual;
(TO_DATE('2002-10-1011:00','YYYY-MM-DDHH24:MI')-TO_DATE('2002-10-1010:00','YYYY-
--------------------------------------------------------------------------------

1

3.return miniutes between day2 and day1
SQL> select (to_date('2002-10-10 11:00','yyyy-mm-dd hh24:mi')-to_date('2002-10-10
210:00','yyyy-mm-dd
3hh24:mi')) * 24*60 from dual;
(TO_DATE('2002-10-1011:00','YYYY-MM-DDHH24:MI')-TO_DATE('2002-10-1010:00','YYYY-
--------------------------------------------------------------------------------

60
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行