datefield我是按长日期格式保存到数据库的,现在我要按短日期格式查询。
select datefield from tb where datefield=某个日期的短日期格式
sql语句怎么写??

解决方案 »

  1.   


    select datefield from tb where datefield=to_date('2010-04-07','yyyy-mm-dd');
      

  2.   

    1.select datefield from tb where datefield=to_date('2010-04-07','yyyy-mm-dd');
    2.select datefield from tb where to_char(datefield,'yyyy-mm-dd') = '2010-04-07'
      

  3.   

    不对啊。datefield是数据库中是按长日期格式保存的,如果这样查询的话结果是0 rows
      

  4.   

    select datefield from tb where to_char(datefield,'yyyy-mm-dd') = '2010-04-07'
      

  5.   

    select datefield from tb where to_char(datefield,'yyyy-mm-dd') = '2010-04-07';
      

  6.   


    select datefield from tb where to_char(datefield,'yyyy-mm-dd')='2010-04-07';
      

  7.   


    select datefield from tb where trunc(datefield)=date '2010-04-07';
      

  8.   

    --如果datefield上建有普通索引,可以这样查询能利用索引,效率高
    SELECT datefield
      FROM tb
     WHERE datefield BETWEEN
           to_date('2010-04-07 00:00:00', 'yyyy-mm-dd hh24:mi:ss') AND
           to_date('2010-04-07 23:59:59', 'yyyy-mm-dd hh24:mi:ss');--如果其它方式,可能要建立函数索引,如:
    create index idx_datefield on tb(trunc(datefield));
    SELECT datefield FROM tb WHERE trunc(datefield) = DATE'2010-04-07';