¿SQL Server tiene una función Date_Format?


8

Todo lo que encontré es una lista de predefinidos entre los DateFormatque puedo elegir, como este

Como recuerdo en MySQL (¿y PostgeSQL también?), Puede definir su formato de fecha:

DATE_FORMAT(now(),'&m_%Y') --for 02_2012 etc.

¿SQL Server tiene lo mismo? Veo que la gente tiene que escribir una función para hacer tal cosa, ¿tiene una incorporada?


EDITAR:

Acabo de encontrar la DatePartfunción. Puede tomar Mes como número, pero siempre devuelve 1 dígito, incluso yo uso datePart(MM, getdate())



1
Por lo general, el formato debe ser manejado por el cliente, no por la base de datos. Dicho esto, si debe formatear la salida de la base de datos, Martin Smith ya ha proporcionado opciones.
JSR

Respuestas:


16

Aún no.

Debe usar CONVERTun parámetro de estilo o piratear algo junto con DATEPARTo DATENAME.

Sin FORMATembargo, SQL Server 2012 tendrá la función que acepta una cadena de formato .NET Framework

Sintaxis:

FORMAT ( value, format [, culture ] )

Ejemplo de uso

SELECT FORMAT(getdate(), 'dd/MM/yyyy', 'en-US' ) 

Siempre puede usar la integración CLR y crear su propio UDF que haga lo mismo para 2005 o 2008.


Ahhh, 2012! Bueno, supongo que escribiré un UDF como dijiste. Gracias
Rey Chan

Eso será genial.
Gordon Bell

1
@KingChan y Martin: con respecto al uso de SQLCLR para lograr esto en SQL Server 2005/2008/2008 R2, siempre existe la opción de descargar la versión gratuita de SQL # (de la que soy autor, pero Date_Format es gratuito) y entonces no hay necesidad de hacer ninguna codificación. Tengo algunos ejemplos de ambos SQL#.Date_Formaty la FORMATrespuesta SO incorporada : ¿Hay alguna forma de obtener fechas con formatos personalizados en SQL Server? :-)
Solomon Rutzky

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.