当前位置: 代码迷 >> Sql Server >> datetime类型字段怎么用0占位
  详细解决方案

datetime类型字段怎么用0占位

热度:86   发布时间:2016-04-27 13:50:32.0
datetime类型字段如何用0占位?
我用convert(nvarchar(10),getdate(),20)取到今天日期为'2012-03-18',但将它存入datatime类型的字段后,变成了'2012-3-18',占位的0被去掉了,请问如何能将这个占位的0也存储到该字段中呢?

------解决方案--------------------
SQL code
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
------解决方案--------------------
convert 是在select 后面得到数据的时候处理。

不是用在insert后面,因为是表字段是时间字段,你存储后还是会变成时间类型。

如果不是datetime类型,而是varchar类型的字段,插入的时候,可以convert 后插入,这样格式就不乱变了。
------解决方案--------------------
探讨
我用convert(nvarchar(10),getdate(),20)取到今天日期为'2012-03-18',但将它存入datatime类型的字段后,变成了'2012-3-18',占位的0被去掉了,请问如何能将这个占位的0也存储到该字段中呢?

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

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