CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Oracle >  基础和管理

关于date字段的查询语句的写法?急!!

楼主lveyo(lveyo)2005-08-02 14:34:00 在 Oracle / 基础和管理 提问

有一个date类型的字段,operDate,保存数据记录的更新时间。  
  我想按照operDate的内容查询当前时间30分钟之内的数据,应该如何写sql语句??  
   
  1小时之内的数据查询语句要怎么写??? 问题点数:50、回复次数:7Top

1 楼bzszp(SongZip)回复于 2005-08-02 14:38:34 得分 10

select   *   from   tbname   where   operdate>sysdate-30*/(24*60);  
  select   *   from   tbname   where   operdate>sysdate-1/24;Top

2 楼lveyo(lveyo)回复于 2005-08-02 14:43:41 得分 0

楼上能详细解释一下吗??Top

3 楼njhart2003()回复于 2005-08-02 14:51:12 得分 10

老大,是笔误吧,多了个“*”  
  select   *   from   tbname   where   operdate>sysdate-30/(24*60);  
  select   *   from   tbname   where   operdate>sysdate-1/24;  
   
   
   
  我来解释一下吧:  
   
  oracle的日期型变量是以“天”为单位来计算的。  
   
  Top

4 楼bzszp(SongZip)回复于 2005-08-02 14:51:12 得分 10

需要解释一下??  
   
  sysdate   取系统时间  
  SQL>   select   sysdate   from   dual;  
   
  SYSDATE  
  -------------------  
  2005-08-02   14:46:21  
   
  已用时间:     00:   00:   00.40  
   
  前一天:  
  SQL>   select   sysdate-1   from   dual;  
   
  SYSDATE-1  
  -------------------  
  2005-08-01   14:46:46  
   
  已用时间:     00:   00:   00.30  
  SQL>    
   
  因此,30分钟前也就是sysdte-30/(24*60)  
  --sorry,上面回复中写错了,多谢了一个*.  
  一个小时前也就是sysdate-1/24;即(1/24天)  
   
  Top

5 楼njhart2003()回复于 2005-08-02 15:00:38 得分 10

奇怪,刚才我发的帖子不见了,  
  难道是被“冲”掉了?  
   
  CSDN的数据库是用的oracle还是其他?Top

6 楼whao()回复于 2005-08-02 15:08:45 得分 0

版主真快啊。来迟了一步。Top

7 楼duanzilin(寻)回复于 2005-08-02 15:54:47 得分 10

oracle   从8i开始就引入了时间间隔(interval)相关的函数;  
  下面的2种方法结果是一样的:  
  SQL>   select   sysdate   +   interval   '2'   hour   from   dual;  
   
  SYSDATE+INTERVAL'2'HOUR  
  -----------------------  
  2005-8-2   17:29:13  
   
  SQL>   select   sysdate   +   numtodsinterval(2,'hour')   from   dual;  
   
  SYSDATE+NUMTODSINTERVAL(2,'HOU  
  ------------------------------  
  2005-8-2   17:30:38  
   
  这里NUMTODSINTERVAL   (   n   ,   'char_expr'   )  
  第一个参数是数字,第2个参数是从日期的英文拼写,从'day'到'second'.  
  年月间隔用NUMTOYMINTERVAL()  
   
  9i以后还引入了TO_DSINTERVAL   (   char   ['nlsparam']   )  
  参数是从日到秒的字符串:'1   2:20:30'   表示1天2小时20分30秒的时间间隔  
  TO_YMINTERVAL   (   char   )   表示年月的间隔  
   
  另外还引入了interval   day   to   second   和     year   to   month   的数据类型  
  interval_value_expr   {   DAY   TO   SECOND   |   YEAR   TO   MONTH   }  
   
   
   
  SQL>   select   sysdate   -   to_dsinterval('1   1:05:20')   from   dual;  
   
  SYSDATE-TO_DSINTERVAL('11:05:2  
  ------------------------------  
  2005-8-1   14:33:48  
   
  SQL>   select   sysdate   -   interval   '1   1:05:20'   day   to   second   from   dual;--相隔1天1小时5分20秒  
   
  SYSDATE-INTERVAL'11:05:20'DAYT  
  ------------------------------  
  2005-8-1   14:34:18  
   
  SQL>   select   sysdate   -   to_yminterval('2-2')   from   dual;--相隔2年2个月  
   
  SYSDATE-TO_YMINTERVAL('2-2')  
  ----------------------------  
  2003-6-2   15:41:39  
   
  Top

相关问题

  • 请教查询语句写法
  • 求sql查询语句写法~~!!?~!
  • 请教SQL语句合并字段的写法。
  • [简单送分题]字段替换SQL语句写法。
  • sql语句更新备注字段的写法问题?
  • 如何写日期时间型字段的SQL查询语句?
  • 怎样通过sql语句查询得到表的字段数?
  • 不定字段查询语句怎么写?
  • 用SQL语句如何查询逻辑型的字段?
  • 请问查询longrow的字段 用selectblob语句可以吗

关键词

  • 语句
  • 间隔
  • 数据
  • oracle
  • sql
  • sysdate
  • dsinterval
  • numtodsinterval
  • interval
  • dual

得分解答快速导航

  • 帖主:lveyo
  • bzszp
  • njhart2003
  • bzszp
  • njhart2003
  • duanzilin

相关链接

  • Oracle类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo