ultimo - obtener todos los dias de un mes sql server
¿Cómo obtengo el mes y el día con los 0 primeros en SQL?(por ejemplo, 9=> 09) (9)
DECLARE @day CHAR(2)
SET @day = DATEPART(DAY, GETDATE())
PRINT @day
Si hoy fuera el 9 de diciembre, lo anterior se imprimiría "9".
Quiero imprimir "09". ¿Cómo voy a hacer esto?
Roll tu propio método
Este es un enfoque genérico para cualquier relleno izquierdo. El concepto es usar REPLICAR para crear una versión que no sea más que el valor rellenado. Luego concaténelo con el valor real, usando una llamada isnull / coalesce si los datos son NULLables. Ahora tiene una cadena que duplica el tamaño del objetivo exactamente a la longitud del objetivo o en algún punto intermedio. Ahora simplemente desplace los N caracteres más a la derecha y tendrá una cadena acolchada a la izquierda.
SELECT RIGHT(REPLICATE(''0'', 2) + CAST(DATEPART(DAY, ''2012-12-09'') AS varchar(2)), 2) AS leftpadded_day
Vivir como un nativo
La función msdn.microsoft.com/en-us/library/ms187928.aspx ofrece varios métodos para obtener fechas preformateadas. El formato 103 especifica dd
que significa que se conserva el cero inicial, por lo que todo lo que hay que hacer es cortar los primeros 2 caracteres.
SELECT CONVERT(char(2), CAST(''2012-12-09'' AS datetime), 103) AS convert_day
Liderando 0 días
SELECT FORMAT(GetDate(), ''dd'')
Pásalo con 00 y toma la derecha 2:
DECLARE @day CHAR(2)
SET @day = RIGHT(''00'' + CONVERT(NVARCHAR(2), DATEPART(DAY, GETDATE())), 2)
print @day
Prueba esto :
SELECT CONVERT(varchar(2), GETDATE(), 101)
Use los estilos de fecha de SQL Server para pre-formatear sus valores de fecha.
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
seleccione a la derecha (''0000'' + cast (datepart (año, GETDATE ()) como varchar (4)), 4) + ''-'' + + right (''00 ''+ cast (datepart (month, GETDATE ()) como varchar (2)), 2) + ''-'' + + derecho (''00 ''+ cast (datepart (day, getdate ()) como varchar (2)), 2) como YearMonthDay
Para SQL Server 2012 en adelante, con ceros iniciales:
SELECT FORMAT(GETDATE(),''MM'')
sin:
SELECT MONTH(GETDATE())
SELECT RIGHT(''0''
+ CONVERT(VARCHAR(2), Month( column_name )), 2)
FROM table
Select Replicate(''0'',2 - DataLength(Convert(VarChar(2),DatePart(DAY, GetDate()))) + Convert(VarChar(2),DatePart(DAY, GetDate())
Mucho más limpio, dice después de quitarse la lengua de la mejilla.
Por lo general, cuando tienes que empezar a hacer este tipo de cosas en SQL, necesitas cambiar de can I a should I.