我用convert(nvarchar(10),getdate(),20)取到今天日期为'2012-03-18',但将它存入datatime类型的字段后,变成了'2012-3-18',占位的0被去掉了,请问如何能将这个占位的0也存储到该字段中呢?

解决方案 »

  1.   


    select ltrim(YEAR(GETDATE()))+'-'+
    case when MONTH(GETDATE())<=9 then '0'+LTRIM(MONTH(GETDATE())) else ltrim(MONTH(GETDATE())) end
    +'-'+LTRIM(DAY(getdate()))
    (无列名)
    2012-03-18
      

  2.   

    datatime类型时间就是时间类型
    在表里是什么样子不重要,你用的时候,想要什么格式的用convert处理一下就可以了。
      

  3.   

    convert 是在select 后面得到数据的时候处理。不是用在insert后面,因为是表字段是时间字段,你存储后还是会变成时间类型。如果不是datetime类型,而是varchar类型的字段,插入的时候,可以convert 后插入,这样格式就不乱变了。 
      

  4.   

    控制面板
    区域语言
    更改日期时间格式
    段日期:yyyy-MM-dd
    重启
      

  5.   

    保存在数据库中的格式不需要管,查询显示时,使用convert(varchar(10),时间字段,120)即可.
      

  6.   

    select replace(convert(nvarchar(10),getdate(),20),'-0','-')
    /*
    2012-3-18
    */
      

  7.   


    字段是日期类型不会出现楼主的情况,缺少0
    SQL2008直接用date类型
    declare @dt date= getdate()
    select @dt
    /*
    2012-03-18
    */
      

  8.   

    把系统日期设置成:yyyy-MM-dd
    然后再用convert(nvarchar(10),getdate(),20)