我如何获得的月和日与领先的0在SQL? (例如,9 => 09)(How do I get

2019-07-04 20:42发布

DECLARE @day CHAR(2)

SET @day = DATEPART(DAY, GETDATE())

PRINT @day

如果今天是12月9日,上面会打印出“9”。

我想打印“09”。 我该如何去这样做呢?

Answer 1:

与00并采取正确的2填充它:

DECLARE @day CHAR(2)

SET @day = RIGHT('00' + CONVERT(NVARCHAR(2), DATEPART(DAY, GETDATE())), 2)

print @day


Answer 2:

使用SQL Server的最新款式预格式的日期值。

SELECT
    CONVERT(varchar(2), GETDATE(), 101) AS monthLeadingZero  -- Date Style 101 = mm/dd/yyyy
    ,CONVERT(varchar(2), GETDATE(), 103) AS dayLeadingZero   -- Date Style 103 = dd/mm/yyyy


Answer 3:

对于SQL Server 2012及以上,具有前导零:

 SELECT FORMAT(GETDATE(),'MM') 

无:

SELECT    MONTH(GETDATE())


Answer 4:

试试这个 :

SELECT CONVERT(varchar(2), GETDATE(), 101)


Answer 5:

领导0天

SELECT FORMAT(GetDate(), 'dd')


Answer 6:

Select Replicate('0',2 - DataLength(Convert(VarChar(2),DatePart(DAY, GetDate()))) + Convert(VarChar(2),DatePart(DAY, GetDate())

很整齐,他从颊舌去除后说。

通常,当你要开始做这样的SQL的事情,你需要从开关可我,给一应



Answer 7:

滚你自己的方法

这是左填充任何一个通用的方法。 这个概念是使用复制到创建一个版本,这是什么,但填充的值。 然后与实际值连接它,使用ISNULL /聚结呼叫如果数据可为空。 您现在有一个字符串,它是双目标尺寸精确目标长度或介于两者之间。 现在只是纯粹去正最右边的人物,你有一个左填充字符串。

SELECT RIGHT(REPLICATE('0', 2) + CAST(DATEPART(DAY, '2012-12-09') AS varchar(2)), 2) AS leftpadded_day

入乡随俗

该CONVERT函数提供了获取预先格式化日期的各种方法。 格式103指定dd这意味着前导零保留,因此所有需要做的是切片从第一2个字符。

SELECT CONVERT(char(2), CAST('2012-12-09' AS datetime), 103) AS convert_day


Answer 8:

SELECT RIGHT('0' 
             + CONVERT(VARCHAR(2), Month( column_name )), 2) 
FROM   table 


Answer 9:

选择权( '0000' + CAST(日期部分(年,GETDATE())为varchar(4)),4)+ ' - ' + +右(00' + CAST(日期部分(月,GETDATE())为varchar (2)),2)+ ' - ' + +右('00' +铸造(日期部分(日,GETDATE())为varchar(2)),2)作为YearMonthDay



文章来源: How do I get the month and day with leading 0's in SQL? (e.g. 9 => 09)
标签: sql tsql