在开发程序时,我们经常会遇到要计算从startTime到endTime的时间差,但这个记录时间差的字段是Varchar型的,这就需要先进行数据类型的转换才能达到目的:
先来看看ORACLE系统时间的时间差计算方法:
SELECT
SYSDATE,SYSDATE-500,
TO_CHAR(SYSDATE,'yyyy')-
TO_CHAR(SYSDATE-500,'yyyy') AS YEAR2
FROM dual;
运行结果: YEAR2 : 2
在ORACLE里日期直接相减就是相差天数,默认的单位是天,
要想计算别的计量单位,可以把DATE进行日期格式化,这样就能
得到你想的计量结果了:
SELECT (
TRUNC ( TO_DATE('2009-02-24 19:30','YYYY-MM-DD HH24:MI'),'MI') -
TRUNC ( TO_DATE('2009-02-23 19:30','YYYY-MM-DD HH24:MI'),'MI')
) * 24*60
FROM dual;
运行结果: 1440
从计算DATE型日期之间的时间差得到启发, 只需要先进行数据类型的转换,再进行日期格式化就OK了:
- 消逝的时间(以天为单位)
TRUNC (TO_DATE(end-date-start_date))
- 消逝的时间(以小时为单位)
TRUNC (TO_DATE(end-date-start_date)*24)
- 消逝的时间(以分钟为单)
TRUNC (TO_DATE(end-date-start_date)*24*60)
计算Varchar型的startTime到endTime时的时间差:
SELECT (
TRUNC (TO_DATE('19:30','HH24:MI'),'MI') -
TRUNC (TO_DATE('18:30','HH24:MI'),'MI')
) * 24 * 60
FROM dual;
运行结果: 60
分享到:
相关推荐
oracle中varchar2(byte)和varchar2(char) 细节决定成败,大家在设计数据库建表的时候一定要注意。
oracle中varchar与date的转换,number与varchar的转换.pdf
浅析Oracle中char和varchar2的区别 电脑资料.docx
ORACLE中的数据类型.doc 当你在数据库中创建数据表的时候,你需要定义表中所有字段的类型。ORACLE有许多种数据类型以满足你的需要。数据类型大约分为:character, number, date, LOB, 和RAW等类型。虽然ORACLE8i也...
oracle char,varchar,varchar2的区别和使用方法 非本人总结,但是说的挺好的! 欢迎下载
5、DATE数据类型,使用7个字节固定长度,每个字节分别存储世纪,年,月,日 ,时,分,秒,ORACLE中SYSDATE函数的功能是返回当前的日期和时间 6、TIMESTAMP数据类型,和DATE相似,但是这个类型的秒精确到小数点后6...
char是定长的 char(10) varchar2(10) 同样存 a ,char占用了10个字符,varchar2 ... 您可能感兴趣的文章:oracle to_char函数将number转成stringOracle to_char函数的使用方法SQL中Charindex和Oracle中对应的函数Instr
讲述主流大型数据库oracle和DB2的数据类型
oracle数据库表结构转gp数据库表结构、转mysql、数据库时表字段长度问题
用过Oracle的人都知道,Oracle有一种数据类型叫VARCHAR2,用来表示不定长的字符串。VARCHAR2也是Oracle公司推荐使用的类型。但使用VARCHAR2有个问题:最大只能表示4000个字符,也就相当于2000个汉字。如果你的程序中...
是处理wm_concat中以varchar处理合并列字段过小。 clob 可以加大处理。 oracle 9I oracle 10G 必备
下面接着看下oracle中varchar类型的日期格式转换date类型 oracle中varchar类型的日期格式转换date类型 SELECT to_char(to_date(m.ma_datetime,'yyyy-MM-dd hh24:mi:ss'), 'yyyyMMdd') FROM my_task m; m.ma_datet
ROWID 数据表中记录的唯一行号 10 bytes ********.****.****格式,*为0或1 NROWID 二进制数据表中记录的唯一行号 最大长度4000 bytes NUMBER(P,S) 数字类型 P为整数位,S为小数位 DECIMAL(P,S) 数字类型 P为整数位,...
13.ESQL/C中使用VARCHAR数据类型
总计74W+数据量,本人已测试过,保证数据无措!!(expdp数据泵导出) 说明如下: area(五级联动地区表) CODE NOT NULL VARCHAR2(100) NAME VARCHAR2(300) PATH VARCHAR2(300) LAYER NUMBER(2) PCODE VARCHAR2...
Oracle SQL 函数进行BLOB转换Varchar2
char是固定长度的,而varchar会根据具体的...而varchar就不会用255个,它先计算字符串长度为11,然后再加上一个记录字符串长度的字节,一共用12个字节存储,这样varchar在存储不确定长度的字符串时会大大减少存储空间。
本程序不同步blob和clob字段,玩oracle的人都懂,用sql同步此类数据,速度上不去,此类数据应该要用导出导入的方式提升速度。 具体请参阅程序,可根据自已需要进行修改。 参数说明: CREATE OR REPLACE PROCEDURE ...
从Access倒数据到Oracle。 包括varchar2/number类型,以及大数据类型blob;暂时不包括bool类型。 Ps:大数据类型不能在第一列,带大数据类型的表第一列不能为空。