问下sqlsrver的日期类型datetime一定要放时分秒的?我光想表达日期不行吗?如果用varchar来表示日期会不会对加减操作有影响?
我主要想实现的一张证书维护表里面有证书到期日,然后有一列是现实离证书到期日还有多久就是证书到期日减去当前系统时间,表达式该怎么写啊?如果用c#在asp。net里实现的话证书日期应该用哪种类型比较合适?谢谢~

解决方案 »

  1.   

    SELECT DATEDIFF(DD,GETDATE(),证书到期日)FROM 表
      

  2.   

    证书到期日的类型应该设什么?datatime?
      

  3.   

    还是使用datetime比较好。剩余时间=datediff(dd,getdate(),到期日期)
      

  4.   

    字符型也可以,為了防止出現非法日期,最好使用日期類型(DATETIME)
      

  5.   

    sqlsvever2005有?日期类型只有datatime和smalldatetime吧
      

  6.   


    Select * From tb where datediff(dd,getdate(),证书到期日)<0  顯示今天已經到期的證書
      

  7.   

    用datatime的话是不是一定要把时分秒填进去的?
      

  8.   

    --可以不用
    DECLARE @DT DATETIME
    SET @DT='2009-01-01'
    SELECT @DT
    /*------------------------------------------------------ 
    2009-01-01 00:00:00.000(影響 1 個資料列)
    */
      

  9.   

    如果证书已经过期,DATEDIFF(DD,GETDATE()的结果是0还会是负数啊?
      

  10.   

    这些代码该写在哪啊? 不好意思对sqlserver不是很精通
      

  11.   

    --日期转换参数
    select CONVERT(varchar,getdate(),120)
    --2009-03-15 15:10:02select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
    --20090315151201select CONVERT(varchar(12) , getdate(), 111)
    --2009/03/15select CONVERT(varchar(12) , getdate(), 112)
    --20090315select CONVERT(varchar(12) , getdate(), 102)
    --2009.03.15select CONVERT(varchar(12) , getdate(), 108)
    --15:13:26其它我不常用的日期格式转换方法:select CONVERT(varchar(12) , getdate(), 101 )
    --03/15/2009select CONVERT(varchar(12) , getdate(), 103 )
    --15/03/2009select CONVERT(varchar(12) , getdate(), 104 )
    --15.03.2009select CONVERT(varchar(12) , getdate(), 105 )
    --15-03-2009select CONVERT(varchar(12) , getdate(), 106 )
    --15 03 2009select CONVERT(varchar(12) , getdate(), 107 )
    -- 15, 2009select CONVERT(varchar(12) , getdate(), 109 )
    --03 15 2009  select CONVERT(varchar(12) , getdate(), 110 )
    --03-15-2009select CONVERT(varchar(11) , getdate(), 113 )
    --15 03 2009 select CONVERT(varchar(12) , getdate(), 114)
    --15:15:55:717
      

  12.   

    --如果getdate()>证书到期日,就是正值。
    --如果getdate()=证书到期日,就是0。
    --如果getdate()<证书到期日,就是负值。
    select datediff(dd,证书到期日,getdate())
      

  13.   

    datetime是包含日期以及时间的。光放日期可以。
    如果你放的是:2009-04-28,那么时间字段会默认为:00:00:00。
      

  14.   

    SQL Server 2008 支持更多的数据类型: 日期型(只保存日期) 时间型(只保存时间  而且有很多级 精度选择) 
    还有更多空间数据类型 层次数据类型 FileStream数据类型 ....
      

  15.   

    SELECT * FROM tb_eCard_initialize where createdate between '2009-09-01'   and   '2009-10-24'