字段类型是datetime还是字符型

解决方案 »

  1.   

    select * from table where birth between '日期' and '日期 11:59:59.997 pm'
      

  2.   

    --最近10天主要是注意跨年的问题
    --将出生日期的年份转换到今年判断就容易了select * from 会员表
    where dateadd(year,1999-year(birth),birth)
    between convert(char(10),getdate(),120)
    and convert(char(10),getdate()+9,120)
      

  3.   

    select * from 数据库会员表 where birth>=date-10 and birth<=date
      

  4.   

    用datediff(datepart,startdate,enddate)函数
    示例:
    select *
    from 表
    where datediff(d,birth,getdate())<10
      

  5.   

    select * from table where birth between dateadd(day,-10,getdate()) and getdate()
      

  6.   

    select * from table where birth between '日期 00:00:00' and '日期 11:59:59'
      

  7.   

    select * from table where birth between '日期 00:00:00' and '日期 23:59:59'
      

  8.   

    SELECT *
    FROM [表名]
    WHERE MONTH([birth])=MONTH(getdate())
    AND DAY([birth])-DAY(getdate()) BETWEEN 0 AND 10
      

  9.   

    正象zjcxc(邹建)所说,把出生日期转换为今年就容易了SELECT *
    FROM 表名
    WHERE DATEADD(yy,YEAR(getdate())-YEAR(birth),birth)
    BETWEEN CONVERT(CHAR(10),getdate(),120) AND CONVERT(CHAR(10),getdate()+9,120)
      

  10.   

    谢谢朋友们的回答,只是分数太少了,不好意思,下次补上(ps:csdn真是好地方)另好像少了个跨年的问题,我改了一点
    SELECT *
    FROM 表名
    WHERE DATEADD(yy,YEAR(getdate()+9)-YEAR(birth),birth)
    BETWEEN CONVERT(CHAR(10),getdate(),120) AND CONVERT(CHAR(10),getdate()+9,120)
      

  11.   

    好像还是有问题嘛,lavarel()的方法,如果现在是2004-12-27,那么2005-1-1过生日的人会被这种算法忽略掉的
      

  12.   

    SELECT *
    FROM 表名
    WHERE DATEADD(yy,YEAR(getdate()+9)-YEAR(birth),birth)
    BETWEEN CONVERT(CHAR(10),getdate(),120) AND CONVERT(CHAR(10),getdate()+9,120)
    ===========================================
    我改了,上面的可以解决跨年的问题
      

  13.   

    dtb(陈少)的做法不对,应改为
    SELECT *
    FROM 表名
    WHERE DATEADD(yy,YEAR(getdate())-YEAR(birth-9),birth)
    BETWEEN CONVERT(CHAR(10),getdate(),120) AND CONVERT(CHAR(10),getdate()+9,120)
      

  14.   

    guangtoutou(光头) 我仔细看了看,你的做法跟我的做法,结果是一样的
      

  15.   

    guangtoutou(光头)的是对的.
    SELECT *
    FROM 表名
    WHERE DATEADD(yy,YEAR(getdate())-YEAR(birth-9),birth)
    BETWEEN CONVERT(CHAR(10),getdate(),120) AND CONVERT(CHAR(10),getdate()+9,120)
      

  16.   

    已经试过了,guangtoutou(光头)的是正确的