社区
基础和管理
帖子详情
oracle 时间的计算。。。。。。
mandarin
2009-12-14 08:26:51
我数据库表中有一个字段l_time是number类型的,如:131224,想通过它与sysdate比较,判断两者时间差是否大于10s,
to_date(to_char(l_time,'999999'),'HH24:MI:SS') 用这种方法转换得到的时间里有日期,我是想纯粹的用时间不带日期比较。。
哪位高手有好的方法,小弟跪谢了。。。
...全文
205
14
打赏
收藏
oracle 时间的计算。。。。。。
我数据库表中有一个字段l_time是number类型的,如:131224,想通过它与sysdate比较,判断两者时间差是否大于10s, to_date(to_char(l_time,'999999'),'HH24:MI:SS') 用这种方法转换得到的时间里有日期,我是想纯粹的用时间不带日期比较。。 哪位高手有好的方法,小弟跪谢了。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tKF12183
2009-12-15
打赏
举报
回复
select 131224 - to_number(to_char(sysdate,'hh24miss')) from dual;
只要上面返回的结果的绝对值(abs)大于10,那么时差就大于10s
mandarin
2009-12-15
打赏
举报
回复
感谢ls的几位。
我的l_time是作为当天的时间,所以与sysdate的时间部分比较,看了大家的回帖,我觉得可以这个样子:(to_date(to_char(b.l_end_time,'999999'),'HH24:MI:SS')-to_date(to_char(sysdate,'hh24miss'),'HH24:MI:SS'))* 24 * 3600
中智软件科技
2009-12-14
打赏
举报
回复
加群交流学习:69705156
liusong_china
2009-12-14
打赏
举报
回复
[Quote=引用 10 楼 vc555 的回复:]
会的。今天太晚了。我明天再说精度这个问题吧。
[/Quote]
哦
vc555
2009-12-14
打赏
举报
回复
会的。今天太晚了。我明天再说精度这个问题吧。
liusong_china
2009-12-14
打赏
举报
回复
[Quote=引用 8 楼 vc555 的回复:]
引用 4 楼 liusong_china 的回复:
不考虑日期(假设同一天),6位数字分为hh mi ss,将hh和mi转换成ss不就行了,(hh*60+mi)*60+ss不就是秒了。。。然后做差可以吧。。
你如何转换能做到不丢精度?
[/Quote]
to_char(sysdate,'hh24')*3600+to_char(sysdate,'mi')*60+to_char(sysdate,'ss')
减去
substr(131224,1,2)*3600+substr(131224,3,2)*60+substr(131224,5,2)
可以吗?
会有精度丢失吗?
vc555
2009-12-14
打赏
举报
回复
[Quote=引用 4 楼 liusong_china 的回复:]
不考虑日期(假设同一天),6位数字分为hh mi ss,将hh和mi转换成ss不就行了,(hh*60+mi)*60+ss不就是秒了。。。然后做差可以吧。。
[/Quote]
你如何转换能做到不丢精度?
vc555
2009-12-14
打赏
举报
回复
lz想判断相差多少秒,所以要在date类型下相减,221027-131224=?秒
inthirties
2009-12-14
打赏
举报
回复
[Quote=引用楼主 mandarin 的回复:]
我数据库表中有一个字段l_time是number类型的,如:131224,想通过它与sysdate比较,判断两者时间差是否大于10s,
to_date(to_char(l_time,'999999'),'HH24:MI:SS') 用这种方法转换得到的时间里有日期,我是想纯粹的用时间不带日期比较。。
哪位高手有好的方法,小弟跪谢了。。。
[/Quote]
或者直接用to_char的hh24miss提出来。
SQL> select to_char(sysdate,'hh24miss') from dual;
TO_CHAR(SYSDATE,'H
------------------
221027
inthirties
2009-12-14
打赏
举报
回复
[Quote=引用楼主 mandarin 的回复:]
我数据库表中有一个字段l_time是number类型的,如:131224,想通过它与sysdate比较,判断两者时间差是否大于10s,
to_date(to_char(l_time,'999999'),'HH24:MI:SS') 用这种方法转换得到的时间里有日期,我是想纯粹的用时间不带日期比较。。
哪位高手有好的方法,小弟跪谢了。。。
[/Quote]
datefile-trunc(datefile, 'D') 这样一减就是小时的零头叻。
liusong_china
2009-12-14
打赏
举报
回复
[Quote=引用 2 楼 mandarin 的回复:]
引用 1 楼 liusong_china 的回复:
我数据库表中有一个字段l_time是number类型的,如:131224,想通过它与sysdate比较,判断两者时间差是否大于10s,
把sysdate的时间转成6位数字不就可以比较了吗。。。。
用131224和to_char(sysdate,'hh24miss')比较就行了吧
字符串不好计算的,要取差值后怎么转换为秒呢
[/Quote]
不考虑日期(假设同一天),6位数字分为hh mi ss,将hh和mi转换成ss不就行了,(hh*60+mi)*60+ss不就是秒了。。。然后做差可以吧。。
vc555
2009-12-14
打赏
举报
回复
你的131224,不指定是今天的131224,还是昨天的131224,或者是别的某天?
如何与sysdate比较相差多少秒呢?逻辑上就通过不。
就算你默认131224就是指与sysdate同一天的131224,那你也应该在代码中指定,
不然oracle怎么知道你脑袋中的想法。这是写sql最基本的常识。
你的这个需求明确后也不难,用ls的方法或者用extract函数都能实现。
mandarin
2009-12-14
打赏
举报
回复
[Quote=引用 1 楼 liusong_china 的回复:]
我数据库表中有一个字段l_time是number类型的,如:131224,想通过它与sysdate比较,判断两者时间差是否大于10s,
把sysdate的时间转成6位数字不就可以比较了吗。。。。
用131224和to_char(sysdate,'hh24miss')比较就行了吧
[/Quote]
字符串不好计算的,要取差值后怎么转换为秒呢
liusong_china
2009-12-14
打赏
举报
回复
我数据库表中有一个字段l_time是number类型的,如:131224,想通过它与sysdate比较,判断两者时间差是否大于10s,
把sysdate的时间转成6位数字不就可以比较了吗。。。。
用
131224
和
to_char(sysdate,'hh24miss')
比较就行了吧
Oracle
入门课程
12、
Oracle
集合运算 13、
Oracle
视图 14、
Oracle
序列 15、
Oracle
索引 16、
Oracle
基本语法 17、
Oracle
数据类型 18、
Oracle
变量 19、
Oracle
运算符 20、
Oracle
条件控制 21、
Oracle
循环 22、
Oracle
循环控制 23、
Oracle
...
oracle
怎么算
时间
,
Oracle
时间
计算
日期格式参数 含义说明D 一周中的星期几DAY 天的名字,使用空格填充到9个字符DD 月中的第几天DDD 年中的第几天DY 天的简写名IW ISO标准的年中的第几周IYYY ISO标准的四位年份YYYY 四位年份YYY,YY,Y 年份的最后三位,两位,一位HH 小时,按12小时计HH24 小时,按24小时计MI 分SS 秒MM 月Mon 月份的简写Month 月份的全名W...
常用的
oracle
时间
计算
--参数月往前推11个月 SELECT TO_CHAR(ADD_MONTHS(TO_DATE('2021-12','yyyy-mm'),-11),'yyyy-mm') 月 FROM dual; --当前月往前推11个月 SELECT TO_CHAR(ADD_MONTHS(SYSDATE,-11),'yyyy-mm') 月 FROM dual; --参数月往后推11个月 SELECT TO_CHAR(ADD_MONTHS(TO_DATE('2021-12','yyyy-mm'),11),'yyyy-mm')
Oracle
计算
时间
差
【代码】
Oracle
计算
时间
差。
Oracle
计算
时间
差
Oracle
中
计算
时间
差是经常用到的。可以使用“日期1-日期2”并加以运算,来获得你要想的
时间
差:天、小时、分钟或者秒。 例如: select TO_DATE('2012-02-20 17:45:04','yyyy-mm-dd hh24:mi:ss')-TO_DATE('2012-02-19 08:34:04','yyyy-mm-dd hh24:mi:ss')asDay from...
基础和管理
17,377
社区成员
95,127
社区内容
发帖
与我相关
我的任务
基础和管理
Oracle 基础和管理
复制链接
扫一扫
分享
社区描述
Oracle 基础和管理
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章