我的表里面有两 个日期型字段startdate,enddate,我现在想把所有enddate减去startdate,日期天数大于3天的记录挑出来,怎么写啊。

解决方案 »

  1.   

    试试下面这条语句,数据库为SQLSERVER
    select * from tablename where (CONVERT (varchar(10), enddate, 120)-CONVERT (varchar(10), startdate, 120))>3
      

  2.   

    120是 convert所要用到日期格式,也可以用20.这里最好真么用。
    declare @enddate char(8),
    declare @startdate char(8)set @enddate = substring(convert(char(10),enddate,20),1,4)+substring(convert(char(10),enddate,20),6,2)+substring(convert(char(10),enddate,20),9,2)
    set @startdate = substring(convert(char(10),startdate,20),1,4)+substring(convert(char(10),startdate,20),6,2)+substring(convert(char(10),startdate,20),9,2)select * from tablename where (@enddate-@startdate)>3
      

  3.   

    declare @enddate char(8)
    declare @startdate char(8)
    declare @date1 datetime
    declare @date2 datetimeset @date1= '2002-5-29'
    set @date2= '2002-6-2'
    set @enddate = substring(convert(varchar(10),@date1,20),1,4)+substring(convert(varchar(10),@date1,20),6,2)+substring(convert(varchar(10),@date1,20),9,2)
    set @startdate = substring(convert(varchar(10),@date2,20),1,4)+substring(convert(varchar(10),@date2,20),6,2)+substring(convert(varchar(10),@date2,20),9,2)我已经测试过了,绝对没有语法错误,你把这段语句写到存储过程中,就可以用拉!
      

  4.   

    select * from table where datediff(day,startdate,enddate)>3