假设有这么一个数据库:
table:
姓名          毕业时间
jeah1        2003-7-1
jeah2        2003-7-1
jeah3        2001-8-1
运行SOL语句:select (select 毕业时间 from table where 姓名=‘jeah1’)-(select 毕业时间 from table where 姓名=‘jeah2’)from table;得到的结果是:1900-1-1
             1900-1-1
为什么是这样结果,而不是0,怎么才能得到0这样的结果。又如:
 
select 毕业时间-getdate()from table where 姓名=‘jeah1’;得到的结果是:1900-2-10 14:26
我想要得的是天数,该怎么办?
我用的是SQL Server 2000 ,请问该怎么解决以上的问题,得到两个时间相减的天数,这是我毕业论文的一个障碍,很急,谢谢大家了!
 
   

解决方案 »

  1.   

    Use datetime to store dates in the range from January 1, 1753 through December 31, 9999 (requires 8 bytes of storage per value). Use smalldatetime to store dates in the range from January 1, 1900 through June 6, 2079 (requires 4 bytes of storage per value).datetime 都有他的范围,当datetime 为0时,就是他的最小值。1900-1-1;
      

  2.   

    datetime  实际存储的是也是一定长度的数值。怎么能直接与GetDate()减?减后的结果肯定不是你需要的。
    得到两个时间相减的天数。
    选出记录,对日期分别格式化,在减。
      

  3.   

    取出来格式化再减,单个记录的处理试没问题的,不过如果希望直接显示整个表获得天数差值可以直接利用sql server的函数啊:
    DATEDIFF(DAY,毕业时间,GETDATE()),搂主,请看Sql Server的联机帮助!!!