日期:2014-05-18  浏览次数:20635 次

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)