如何写一个SQL语句,查询日期为今天(系统时间)的记录。。数据库里的时间是字符形式存储的。select * from tablename where date like tochar(sysdate,'yymmdd')||'%'我这么写,可是查不出来。。请教各位前辈

解决方案 »

  1.   

    --1.假设你的数据库中,日期的存储为8位的年月日:
    20110101
    20111112
    ...
    --sql
    select * from tableName where date = to_char(sysdate, 'yyyyMMdd')--2.假设你的数据库中,日期存储为带有时分秒的timestamp型,而你想抽出年月日相同的日期,不计较时分秒20110101142330
    ...--sql
    select * from tableNmae where substr(date,0,8) = to_char(sysdate, 'yyyyMMdd')
      

  2.   

    select * from tablename where date like to_date(to_char(sysdate,'yyyymmdd'),'yyyymmdd');因为你的date是日期型(date型的),格式不匹配,无法比较,如果你的date只是存储年月日,可以用LS的,比较简单。
      

  3.   

    to1L: 对,我用的是to_char,这里打错了to2L:不能用LIKE实现吗?数据库中是带时分秒的,所以才想要用like。
      

  4.   

    to 3L:我数据库里是用字符串存储时间字段的,所以不用转换成日期型。
      

  5.   


    请问用LIKE应该怎么写呢?
      

  6.   


    select * from tablename where instr(to_char(sysdate,'yymmdd'),date)>0
      

  7.   


    select * from tablename where instr(to_char(sysdate,'yymmdd'),date)>0
      

  8.   

    我用like做出来了,谢谢大家select * from tablename where date like substr(to_char(sysdate,'yyyy-mm-dd'),0,10)||'%'