TechNet
Exportar (0) Imprimir
Expandir todo

SET DATEFORMAT (Transact-SQL)

 

**ESTE TEMA SE APLICA A:** ![](../Image/Applies%20to/yes.png)SQL Server \(a partir de 2008\) ![](../Image/Applies%20to/yes.png)Base de datos SQL de Azure ![](../Image/Applies%20to/yes.png)Almacenamiento de datos SQL de Azure ![](../Image/Applies%20to/yes.png)Almacenamiento de datos paralelos

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

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

Se aplica a: de SQL Server (SQL Server 2008 a la versión actual), Base de datos SQL de Azure.

Topic link icon Convenciones de sintaxis de Transact-SQL

  
SET DATEFORMAT { format | @format_var }   

format | @format_var
Es el orden de las partes de la fecha. Los parámetros válidos son mdy, dmy, ymd, ydm, myd y dym. Puede ser Unicode o juegos de caracteres de doble byte (DBCS) convertidos a Unicode. El valor predeterminado para inglés de EE. UU. es mdy. Para DATEFORMAT predeterminado de todos los lenguajes admitidos, vea sp_helplanguage (Transact-SQL).

DATEFORMAT ydm no está admitido para los tipos de datos date, datetime2 y datetimeoffset.

El efecto de la configuración DATEFORMAT en la interpretación de cadenas de caracteres puede ser distinto para los valores datetime y smalldatetime para los valores date, datetime2datetimeoffset, dependiendo del 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 configuración de formato de fecha implícita de 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  

Instrucciones SET (Transact-SQL)

Adiciones de comunidad

Mostrar:
© 2016 Microsoft