我数据库有俩个字段,简称字段A和字段B吧,这俩个字段都是date格式的,我现在想求出这俩个日期的分钟差,怎么写呢,网上搜的round(to_number(max(dtto.send_date)-min(dtti.send_date))*1440)类型的,算出来的时间不对啊!
解决方案 »
- Oracle 调用 JAVA 本地创建目录
- pl/sql中如何全部依次执行if elsif分支?求高人指教
- 如何在代码中动态创建ORACLE数据库
- 如何将二个关联显示如下数据???
- 怎样将备份出来的dmp文件导入一个新的数据库,做成测试环境?主要要做哪几个步骤?
- 请问怎样用sqlplus或dos对oracle 9i数据库备份和还原备份文件啊? 谢谢。
- 高手进来!求一条SQL文
- 如何在sqlplus中插入多字段的纪录,详细请看内容
- 关于一个SQL查询!
- 没办法,我很低级,求救
- 请教TRIGGER中这个0.00694到底是什么意思 ?
- 求助:weblogic应用调用存储过程出现ora-01013异常
用:select round((djsrq-dksrq)*24*60) from table
你再转成小时不就好了?
首先DATE默认格式为YY-MM-DD(ORACLE版本10.2.0.3.0)
SQL> CREATE TABLE TEST_1(DATE1 DATE,DATE2 DATE);表が作成されました。
SQL> INSERT INTO TEST_1 VALUES(TO_DATE(SYSDATE, 'yyyy-mm-dd hh24:mi:ss'),TO_DATE('2011-12-30 22:11:33', 'yyyy-mm-dd hh24:mi:ss'));1行が作成されました。SQL> SELECT * FROM TEST_1;DATE1 DATE2
-------- --------
11-11-30 11-12-30
--你看到了没有,存进来的数值只到日--这样的话,只需要计算日期差,再乘以1440就可以了。并不需要ROUNG()函数
SQL> SELECT (TO_DATE(DATE1,'YY-MM-DD') - TO_DATE(DATE2,'YY-MM-DD')) * 1440 AS NEW_DATE FROM TEST_1; NEW_DATE
----------
-43200
--直接对两列进行加减的话好像会有问题
SQL> SELECT DATE1 - DATE2 FROM TEST_1;DATE1-DATE2
-----------
-730517.92
--所以还是用TO_DATE()进行了转换。--可以通过
SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS'
--设置默认日期格式,但是一样要通过TO_DATE()函数转换。就这样吧,还是建议楼主多自己试试~~