Al formatear una fecha usando FORMAT()
función en SQL Server, la fecha se formateará de acuerdo con el idioma de su sesión local. Sin embargo, puede anular esto especificando una cultura para usar o usando un formato de fecha personalizado.
Este artículo demuestra cómo especificar explícitamente un formato de fecha alemán usando el argumento opcional de "cultura" de FORMAT()
función. También demuestra cómo usar su propio formato de fecha personalizado si eso es más deseable.
Ejemplo 1:formato de fecha corto en alemán
Para especificar explícitamente que una fecha debe mostrarse en formato alemán, use de-de
como tercer argumento. Este tercer argumento (opcional) especifica qué cultura usar.
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'd', 'de-de') Result;
Resultado:
+------------+ | Result | |------------| | 01.12.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 usamos el formato alemán, el día viene antes del mes y cada componente de fecha está separado por puntos.
Ejemplo 2:formato de fecha alemán largo
Puede cambiar el segundo argumento a una D
mayúscula para dar como resultado un formato de fecha más largo, con el mes deletreado:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'D', 'de-de') Result;
Resultado:
+----------------------------+ | Result | |----------------------------| | Dienstag, 1. Dezember 2020 | +----------------------------+
Ejemplo 3:formato de fecha alemán personalizado
También puede utilizar un formato de fecha personalizado si es necesario. Esto le permite indicar explícitamente cómo y dónde va cada componente de fecha.
Ejemplo:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'ddd, d. MMM, yyyy', 'de-de') Result;
Resultado:
+------------------+ | Result | |------------------| | Di, 1. Dez, 2020 | +------------------+
En este caso, todavía uso el argumento cultural para especificar explícitamente qué idioma usar.
Actualmente, mi sistema usa inglés estadounidense, por lo que si omito el argumento cultural de este ejemplo, obtengo lo siguiente:
DECLARE @thedate date = '2020-12-01' SELECT FORMAT(@thedate, 'ddd, d. MMM, yyyy') Result;
Resultado:
+-------------------+ | Result | |-------------------| | Tue, 1. Dec, 2020 | +-------------------+
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).