如何在 SQL 中显示不带前导零的日期
How to present Date in SQL without leading zeros
是否有 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
不确定为什么要这样做。这是一种方法。
尝试这样的事情
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))
结果: 1/1/2016
注意: 总是喜欢将 date
存储在 date
datatype
一种方法是使用 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 格式输入日期。
试试这个,格式是一个更简洁的解决方案:
declare @date datetime = '01/01/2016'
SELECT FORMAT(@date,'M/d/yyyy')
结果: 2016 年 1 月 1 日
是否有 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
不确定为什么要这样做。这是一种方法。
尝试这样的事情
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))
结果: 1/1/2016
注意: 总是喜欢将 date
存储在 date
datatype
一种方法是使用 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 格式输入日期。
试试这个,格式是一个更简洁的解决方案:
declare @date datetime = '01/01/2016'
SELECT FORMAT(@date,'M/d/yyyy')
结果: 2016 年 1 月 1 日