表中日期字段,类型是Datetime ,默认值是getdate(),保存数据时,日期字段显示年月日,时分秒,我能不能
设置getdate()的格式,让日期保存时格式就是年月日!我不想设置类型为smalldatetime,该怎么办啊
  
  其实我就是想让日期字段默认为获取当前系统的年月日,不要时分秒,用Datetime能不能做到啊?

解决方案 »

  1.   

    A varchar(10) default convert(varchar(10),getdate(),120) 
      

  2.   

    create table ki(
    a date default getdate(),
    b int
    )
    insert ki(b) select 1 union all select 2
    select * from ki
    /*
    a          b
    ---------- -----------
    2009-07-29 1
    2009-07-29 2
    */
      

  3.   

    没有直接的这样的字段
    需要在输出的时候来转换
    select convert(varchar(10),getdate(),120)
      

  4.   

    create table dateTimetable 
    (id int, dTime varchar(10) not null default( convert(varchar(10),getdate(),120)))insert into dateTimetable (id) values ('1')select * from dateTimetable=====================
    1 2009-07-29---测试成功!
      

  5.   


    create table dateTimetable 
    (id int, dTime varchar(10) not null default( convert(varchar(10),getdate(),120))) insert into dateTimetable (id) values ('1') select * from dateTimetable ===================== 
    1 2009-07-29 ---测试成功!
      

  6.   


    alter table 你的表名
    alter  column  你的时间字段  varchar(10) not null default( convert(varchar(10),getdate(),120))
      

  7.   

    我其实想实现通过日期查询信息,但前台的获取的日期只是年月日,它的时分秒是000,通过between 2009-07-27 and 2009-07-28 查询时28号的数据就出不来了,如果不行的话我看来只能前台做一下让获取的时间时分秒默认为23:59:59啦
      

  8.   

    1.我不会理它
    2.如果使用SQL Server2008,有date类型
    3.可以自己创建一个UDT
      

  9.   

    有日分秒也没关系,你不去管它就行了。
    客户端显示时,也只显示年月日就行了。
    sql server中好象没有只有年月日的date型,高版本有吗?另外,前台程序,在比较日期时用 convert转换一下即可,不转换当然会出错。
      

  10.   

    substring(CONVERT(nvarchar,DATEADD(MONTH,1,GETDATE()),2),1,12) as date1