我要做个小查询,查询数据库中生日的信息。输入今天的日期,点击查询,可以将数据库中今天的生日的人员全部列出来。输入的日期肯定包括年,但生日是不需要年的。如何用SQL语句,将生日今天的人员全部查询出来。
日期字段为date_of_birth.谢谢了。

解决方案 »

  1.   

    确定你的date_of_birth是日期格式吗?是的话用下面的SQL:
    SELECT * FROM SYS_EMP
    WHERE TRUNC(DATE_OF_BIRTH) = TRUNC(SYSDATE) 
      

  2.   


    http://www.cnblogs.com/xiaoyudz/archive/2011/03/18/1988467.html  --Oracle trunc()函数的用法
    /**************日期********************/
    1.select trunc(sysdate) from dual  --2011-3-18  今天的日期为2011-3-18
    2.select trunc(sysdate, 'mm')   from   dual  --2011-3-1    返回当月第一天.
    3.select trunc(sysdate,'yy') from dual  --2011-1-1       返回当年第一天
    4.select trunc(sysdate,'dd') from dual  --2011-3-18    返回当前年月日
    5.select trunc(sysdate,'yyyy') from dual  --2011-1-1   返回当年第一天
    6.select trunc(sysdate,'d') from dual  --2011-3-13 (星期天)返回当前星期的第一天
    7.select trunc(sysdate, 'hh') from dual   --2011-3-18 14:00:00   当前时间为14:41   
    8.select trunc(sysdate, 'mi') from dual  --2011-3-18 14:41:00   TRUNC()函数没有秒的精确
      

  3.   

    假如现在是2013/05/29 11:22:14Trunc后就变成2013/05/29 00:00:00
      

  4.   

    Sorry,用下面的SQL
    SELECT * FROM SYS_EMP
    WHERE TO_CHAR(DATE_OF_BIRTH, 'MMDD') = TO_CHAR(SYSDATE, 'MMDD')
      

  5.   

    adoquery.sql.add('select * from sys_emp where  TO_CHAR(DATE_OF_BIRTH, 'MMDD') = TO_CHAR(SYSDATE, 'MMDD') ').
    说缺表达式。为什么?
      

  6.   


    复制我下面的:
    adoquery.sql.add('select * from sys_emp where  TO_CHAR(DATE_OF_BIRTH, ''MMDD'') = TO_CHAR(SYSDATE, ''MMDD'') ').
      

  7.   

    adoquery.sql.add('select * from sys_emp where  TO_CHAR(DATE_OF_BIRTH, ''MMDD'') = TO_CHAR(SYSDATE, ''MMDD'') ');是不是最后那个分号的问题,我这编译没问题啊
      

  8.   


    是的,SQL中一个单引号在delphi中要改为两个
      

  9.   


    Delphi里面:Date: 当天日期
    Now: 当时时间Oracle: SYSDATE