DECLARE @day CHAR(2)
SET @day = DATEPART(DAY, GETDATE())
PRINT @day
如果今天是12月9日,上面会打印出“9”。
我想打印“09”。 我该如何去这样做呢?
DECLARE @day CHAR(2)
SET @day = DATEPART(DAY, GETDATE())
PRINT @day
如果今天是12月9日,上面会打印出“9”。
我想打印“09”。 我该如何去这样做呢?
与00并采取正确的2填充它:
DECLARE @day CHAR(2)
SET @day = RIGHT('00' + CONVERT(NVARCHAR(2), DATEPART(DAY, GETDATE())), 2)
print @day
使用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
对于SQL Server 2012及以上,具有前导零:
SELECT FORMAT(GETDATE(),'MM')
无:
SELECT MONTH(GETDATE())
试试这个 :
SELECT CONVERT(varchar(2), GETDATE(), 101)
领导0天
SELECT FORMAT(GetDate(), 'dd')
Select Replicate('0',2 - DataLength(Convert(VarChar(2),DatePart(DAY, GetDate()))) + Convert(VarChar(2),DatePart(DAY, GetDate())
很整齐,他从颊舌去除后说。
通常,当你要开始做这样的SQL的事情,你需要从开关可我,给一应
这是左填充任何一个通用的方法。 这个概念是使用复制到创建一个版本,这是什么,但填充的值。 然后与实际值连接它,使用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
SELECT RIGHT('0'
+ CONVERT(VARCHAR(2), Month( column_name )), 2)
FROM table
选择权( '0000' + CAST(日期部分(年,GETDATE())为varchar(4)),4)+ ' - ' + +右(00' + CAST(日期部分(月,GETDATE())为varchar (2)),2)+ ' - ' + +右('00' +铸造(日期部分(日,GETDATE())为varchar(2)),2)作为YearMonthDay