是否有SQL格式从日期中删除前导零?
例如,如果日期为01/12/2015
,则将其显示为1/12/2015
,01/01/2016
应显示为1/1/2016
等
整个日期通常包含dd/MM/yyyy HH:mm:ss
。我需要在不改变其余信息的情况下删除那些冗余的前导零。
目前我使用包含以下内容的查询:
convert(varchar, dateadd(hh, " + 2 + " , o.start_time), 103)) + ' '
left(convert(varchar, dateadd(hh, " + 2 + " , o.start_time), 108), 110)
我正在使用SQL Server 2008
答案 0 :(得分:2)
不确定为什么要这样做。这是一种方式。
尝试这样的事情
declare @date datetime = '01/01/2016'
select cast(day(@date) as varchar(2))+'/'+cast(month(@date) as varchar(2))+'/'+cast(year(@date) as varchar(4))
结果: 2016年1月1日
注意:始终希望将date
存储在date
数据类型
答案 1 :(得分:2)
一种方法是在日期和年份使用datename()
:
select cast(month(o.start_time) as varchar(255)) + '/' + datename(day, o.start_time) + '/' + datename(year, o.start_time)
另一种方法使用replace()
:
select replace(replace(replace('@month/@day/@year', '@month', month(o.start_time)
), '@day', day(o.start_time)
), '@year', year(o.start_time)
)
就个人而言,我认为没有用。我总是以YYYY-MM-DD格式投放日子。
答案 2 :(得分:2)
试试这个,格式是一个更清洁的解决方案:
declare @date datetime = '01/01/2016'
SELECT FORMAT(@date,'M/d/yyyy')
结果: 2016年1月1日