SET DATEFORMAT (Transact-SQL)

 

ESTE TEMA SE APLICA A: síSQL Server (a partir de 2008)síBase de datos SQL de AzuresíAlmacenamiento de datos SQL de Azure síAlmacenamiento de datos paralelos

Establece el orden de las partes de fecha del mes, día y año para interpretar fecha, smalldatetime, datetime, datetime2 y datetimeoffset cadenas de caracteres.

Para obtener información general de todos los Transact-SQL tipos de datos de fecha y hora y funciones, vea funciones (Transact-SQL) y de fecha y de tipos de datos de tiempo.

Topic link icon Convenciones de sintaxis de Transact-SQL

-- Syntax for SQL Server, Azure SQL Database, Azure SQL Data Warehouse, Parallel Data Warehouse  
  
SET DATEFORMAT { format | @format_var }   

format | @format_var
Es el orden de las partes de la fecha. Valid parameters are mdy, dmy, ymd, ydm, myd, and dym. Puede ser Unicode o juegos de caracteres de doble byte (DBCS) convertidos a Unicode. El valor predeterminado para inglés Valor predeterminado para inglés mdy. Para DATEFORMAT predeterminado de todos los lenguajes admitidos, vea sp_helplanguage (Transact-SQL).

El DATEFORMAT adm no se admite para fecha, datetime2 y datetimeoffset tipos de datos.

El efecto de la configuración DATEFORMAT en la interpretación de cadenas de caracteres que pueden ser diferente datetime y smalldatetime valores fecha, datetime2 y datetimeoffset valores, según el formato de cadena. Esta configuración de idioma afecta a la interpretación de cadenas de caracteres cuando se convierten en valores de fecha para el almacenamiento en la base de datos. No afecta a la presentación de valores de tipo de datos de fecha que se almacenan en el formato de base de datos o de almacenamiento.

Algunos formatos de cadenas de caracteres, por ejemplo ISO 8601, se interpretan independientemente del valor DATEFORMAT.

La opción SET DATEFORMAT se establece en tiempo de ejecución, no en tiempo de análisis.

SET DATEFORMAT anula la fecha implícita de configuración de formato SET LANGUAGE.

Debe pertenecer al rol public .

El ejemplo siguiente utiliza cadenas de fecha diferentes como entradas en sesiones con el mismo valor DATEFORMAT.

-- Set date format to day/month/year.  
SET DATEFORMAT dmy;  
GO  
DECLARE @datevar datetime2 = '31/12/2008 09:01:01.1234567';  
SELECT @datevar;  
GO  
-- Result: 2008-12-31 09:01:01.123  
SET DATEFORMAT dmy;  
GO  
DECLARE @datevar datetime2 = '12/31/2008 09:01:01.1234567';  
SELECT @datevar;  
GO  
-- Result: Msg 241: Conversion failed when converting date and/or time -- from character string.  
  
GO  

-- Set date format to month/day/year.  
SET DATEFORMAT mdy;  
DECLARE @datevar datetime2 = '12/31/2012 09:01:01.1234567';  
SELECT @datevar;  
  

Instrucciones SET (Transact-SQL)

Adiciones de comunidad

AGREGAR
Mostrar: