sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo mostrar una fecha en formato de fecha de EE. UU. en SQL Server (T-SQL)

En SQL Server, puede usar T-SQL FORMAT() función para mostrar una fecha en el formato deseado. Esta función acepta un argumento de "cultura" opcional, que puede usar para especificar el formato de fecha de EE. UU.

Puede o no necesitar usar este argumento, dependiendo del idioma de su sesión local. Sin embargo, aquí se explica cómo especificar explícitamente el formato de fecha de EE. UU.

Ejemplo 1:formato corto de fecha estadounidense

Para especificar explícitamente que una fecha debe mostrarse en formato de inglés estadounidense, use en-US como argumento cultural:

DECLARE @thedate date = '2020-12-01'
SELECT FORMAT(@thedate, 'd', 'en-US') Result;

Resultado:

+-----------+
| Result    |
|-----------|
| 12/1/2020 |
+-----------+

En este caso, usé una d minúscula como segundo argumento. Esto da como resultado un formato de fecha relativamente corto, en el que el día y el mes se muestran como números.

Y debido a que estamos usando un formato de fecha de EE. UU., el mes viene antes del día.

Ejemplo 2:formato de fecha estadounidense largo

Si lo cambio a una D mayúscula , obtengo un formato más largo, con el día y el mes escritos:

DECLARE @thedate date = '2020-12-01'
SELECT FORMAT(@thedate, 'D', 'en-US') Result;

Resultado:

+---------------------------+
| Result                    |
|---------------------------|
| Tuesday, December 1, 2020 |
+---------------------------+

Ejemplo 3:formato de fecha de EE. UU. personalizado

Si encuentra que los formatos de fecha anteriores son demasiado restrictivos, siempre puede especificar un formato de fecha personalizado. Por ejemplo, si le gusta el ejemplo anterior, excepto que prefiere tener solo las 3 primeras letras del día y el mes, puede hacer esto:

DECLARE @thedate date = '2020-12-01'
SELECT FORMAT(@thedate, 'ddd, MMM d, yyyy', 'en-US') Result;

Resultado:

+------------------+
| Result           |
|------------------|
| Tue, Dec 1, 2020 |
+------------------+

Todavía especifico una cultura a pesar de que estoy especificando exactamente dónde va cada componente de fecha. La razón por la que estoy haciendo esto es para indicar explícitamente qué idioma usar. Omitir este argumento puede o no causar problemas, según los idiomas que se utilicen.

Lo bueno de los formatos de fecha personalizados es que te da mucha flexibilidad. Puede cambiar los componentes y aparecerán exactamente donde los desee.

Comprobación de su sesión actual

Al usar FORMAT() función, si no se proporciona el argumento cultural, se utiliza el idioma de la sesión actual. Este idioma se establece de forma implícita o explícita mediante el uso de SET LANGUAGE declaración.

Para obtener más información, aquí hay 3 formas de obtener el idioma de la sesión actual en SQL Server (T-SQL).

Consulte también Cómo configurar el idioma actual en SQL Server (T-SQL).