在SQL SERVER2000数据库中如何比较生日。
比如说,我想列出所有在5天内过生日的所有会员,该如何列哪?select * from member
where where (DATEDIFF(year,DATEPART (year,issuedatatime)," + DateTime.Now.ToString("MM - dd")+")<=5"我写得不对,请各位帮一下忙

解决方案 »

  1.   

    SELECT issuedatatime from dep where abs(DATEDIFF(day, issuedatatime, getdate())) <= 5
      

  2.   

    问题简单,可写起来真麻烦,还要考虑到12月26日后的几天生日的特殊情况
    string dateAdd3 = DateTime.Today.AddDays(3).ToString("-MM-dd");
    string sql = @"select * from member where " + 
    "abs(datediff(day,convert(datetime,Convert(char,year(issuedatatime))+'" + dateAdd3 + "'),issuedatatime))<3" +
    " or " + 
    "abs(datediff(day,convert(datetime,Convert(char,year(issuedatatime)-1)+'" + dateAdd3 + "'),issuedatatime))<3";
      

  3.   

    select birthday
    from youTable
    where birthday between (
    select dateadd(dd, datediff(dd, 0, getdate()) - 5, 0))
    and
    (select dateadd(dd, datediff(dd, 0, getdate()) + 5, 0))
      

  4.   

    看错了,我写的是前后五天的,应该是
    select birthday
    from youTable
    where birthday between (
    select dateadd(dd, datediff(dd, 0, getdate()) - 2, 0))
    and
    (select dateadd(dd, datediff(dd, 0, getdate()) + 3, 0))
      

  5.   

    select * from member
    where birthday<=(getdate()+5) and birday>=getdate()
      

  6.   

    这样可以实现的!select birthday
    from youTable
    where birthday between (
    select dateadd(dd, datediff(dd, 0, getdate()) - 2, 0))
    and
    (select dateadd(dd, datediff(dd, 0, getdate()) + 3, 0))
      

  7.   

    select * from menber where birth between sysdate-5 and sysdate
      

  8.   

    可是我表格中的birthday的格式是1980-1-23
      

  9.   

    datediff 取得两个时间之间的差值。
      

  10.   

    我表格中的birthday的格式是1980-1-23
    如何不比较年份,直接比较月日
      

  11.   

    用DATEDIFF比较好,它返回是的两日期或时间的差。
      

  12.   

    我比较的是生日,不是生存天数!datediff(dd, '1980-1-23', '2005-10-19')是多少天啊!!!大约25×365,我需要是月日得比较,而不用年,该怎么做?
      

  13.   

    SELECT issuedatatime from dep where abs(DATEDIFF(day, issuedatatime, getdate())) <= 5不好使吗?
      

  14.   

    你真的的,一点变通的灵性都没有。你把出生的月份和日期用Month和day函数取出来,再在前面加一个当前的年份,如:
    datediff(dd, year(NOW())+Month([出生日期])+Day([出生日期]), NOW())上面返回的就是当前日期与生日的天数差.
      

  15.   

    楼上的,
    datediff(dd, year(NOW())+Month([出生日期])+Day([出生日期]), NOW())
    好使吗?你的加号用得太主观了吧
      

  16.   

    楼上的,
    datediff(dd, year(NOW())+Month([出生日期])+Day([出生日期]), NOW())
    好使吗?你的加号用得太主观了吧
    ——————————————————————————————
    SQL查询语句是一串字符串,用不用“+”号看你使用什么语言了,我用惯C++或C#,所以用“+”,如果你用VB的话,就用 “&”好了。
      

  17.   

    正规的写法如下:
    "datediff('dd', '"+year(NOW())+Month([出生日期])+Day([出生日期])+"', '"+NOW()+"')"