thu*_*eek 11 sql-server date-conversion sql-server-2008 date-formatting
现在,我的代码对日期字段进行了以下转换:
convert(varchar, Citation.PublishedOn, 101)
Run Code Online (Sandbox Code Playgroud)
但是,返回的日期类似于03/01/2010.请求是将日期显示为3/1/2010(没有前导零,但是有4位数年份).我查看了http://msdn.microsoft.com/en-us/library/ms187928.aspx,我没有看到任何明确排除前导零的内容.
如何格式化日期以排除前导零?
Mar*_*llo 16
我就是这样做的:
DECLARE @dt datetime
SET @dt= Citation.PublishedOn
SELECT LTRIM(STR(MONTH(@dt)))+'/'+LTRIM(STR(DAY(@dt)))+'/'+STR(YEAR(@dt),4)
Run Code Online (Sandbox Code Playgroud)
您选择日期,然后从中提取日期,月份和年份,并使用月份和日期切断前导零ltrim()
.
如果您不想声明变量,则可以执行此操作
SELECT LTRIM(STR(MONTH(Citation.PublishedOn)))+'/'+LTRIM(STR(DAY(Citation.PublishedOn)))+'/'+STR(YEAR(Citation.PublishedOn),4)
Run Code Online (Sandbox Code Playgroud)
但是,这意味着多次拉出相同的值.
你可以使用FORMAT功能,它只是为这种东西而构建的,虽然我同意如果你可以等到在客户端进行格式化,你可能会更好,因为你可以灵活地将这些数据用作日期沿线的任何一点(ymmv - 更多的是最佳实践).
例:
FORMAT ( table.myDateColumn, 'd', 'en-US' )
Run Code Online (Sandbox Code Playgroud)
请参阅http://msdn.microsoft.com/en-us/library/hh213505.aspx
可能在旧版本的SQL Server中不可用