una ultimo ultima todos primer obtener mes los hora fecha eomonth dias calcular año sql tsql

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.