现在要实现  查询24小时以内的20条数据  应该怎么写Hql语句呐????
其中id为该条数据保存时的时间,并精确到毫秒;
想用转化id后的数据与转化sysdate后的数据做对比;
急!  在线等着!!!

解决方案 »

  1.   

    select * from (
    select t.*, rownum rn from t where id > (sysdate - 1) order by id desc
    )
    where rn <= 20
      

  2.   

    可能是没有跟你说清楚,id是varachar2类型,只是用此数据保存时的时间为主键!
    看看有没有什么好的方法呀?谢谢咯
      

  3.   

    如果是字符串格式 与系统时间比较
    select * from (
    select t.*, rownum rn from t where to_date(id,'yyyy-mm-dd hh24:mi:ss') > (sysdate - 1) order by id desc
    )
    where rn <= 20如果是直接用字符串比大小select * from (
    select t.*, rownum rn from t where id > to_char((sysdate - 1),'yyyy-mm-dd hh24:mi:ss') order by id desc
    )
    where rn <= 20
      

  4.   

    select * from (
    select t.*, rownum rn from t where to_date(id, 'yyyymmddhh24miss') > (sysdate - 1) order by id desc
    )
    where rn <= 20
      

  5.   

    select to_char(sysdate,'yyyymmddhh24miss')  from dual
    where to_char(sysdate,'yyyymmddhh24miss')<>'20100402163906'TO_CHAR(SYSDATE,'YYYYMMDDHH24M
    20100402163940
      

  6.   


    囧,除了函数中格式参数需要修改,语句都不需要动,这个也要说明啊:
    ‘yyyy-mm-dd hh24:mi:ss’是日期格式 你精确到的也不是毫秒,是秒。
    yyyy年  mm月 dd日 hh24:小时 mi分 ss:秒  这些你自己想怎么组合怎么组合的。带不带-  带不带空格  你自己ID是什么格式就写什么格式好了