SET DATEFORMAT (Transact-SQL)SET DATEFORMAT (Transact-SQL)

SE APLICA A: síSQL Server síAzure SQL Database síAzure SQL Data Warehouse síAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Establece el orden de las partes correspondientes al mes, día y año de una fecha para interpretar las cadenas de caracteres de fecha.Sets the order of the month, day, and year date parts for interpreting date character strings. Estas cadenas son de tipo date, smalldatetime, datetime, datetime2 o datetimeoffset.These strings are of type date, smalldatetime, datetime, datetime2, or datetimeoffset.

Para ver información general sobre todos los tipos de datos y funciones de fecha y hora de Transact-SQLTransact-SQL, vea Tipos de datos y funciones de fecha y hora (Transact-SQL).For an overview of all Transact-SQLTransact-SQL date and time data types and functions, see Date and Time Data Types and Functions (Transact-SQL).

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

SET DATEFORMAT { format | @format_var }   

ArgumentosArguments

format | @ format_varformat | @format_var
Es el orden de las partes de la fecha.Is the order of the date parts. Los parámetros válidos son mdy, dmy, ymd, ydm, myd y dym.Valid parameters are mdy, dmy, ymd, ydm, myd, and dym. Puede ser Unicode o juegos de caracteres de doble byte (DBCS) convertidos a Unicode.Can be either Unicode or double-byte character sets (DBCS) converted to Unicode. El valor predeterminado para inglés de EE. UU. es mdy.The U.S. English default is mdy. Para más información sobre el DATEFORMAT predeterminado de todos los lenguajes admitidos, vea sp_helplanguage (Transact-SQL).For the default DATEFORMAT of all support languages, see sp_helplanguage (Transact-SQL).

NotasRemarks

El valor de DATEFORMAT ydm no se admite en los tipos de datos date, datetime2 y datetimeoffset.The DATEFORMAT ydm isn't supported for date, datetime2, and datetimeoffset data types.

El valor de DATEFORMAT puede interpretar las cadenas de caracteres de manera diferente para los tipos de datos de fecha, dependiendo de su formato de cadena.The DATEFORMAT setting may interpret character strings differently for date data types, depending on their string format. Por ejemplo, las interpretaciones de datetime y smalldatetime pueden no coincidir con date, datetime2 o datetimeoffset.For example, datetime and smalldatetime interpretations may not match date, datetime2, or datetimeoffset. DATEFORMAT afecta a la interpretación de cadenas de caracteres cuando se convierten en valores de fecha para la base de datos.DATEFORMAT affects the interpretation of character strings as they're converted to date values for the database. No afecta a la presentación de los valores de tipo de datos de fecha ni al formato en el que se almacenan en la base de datos.It doesn't affect the display of date data type values, nor their storage format in the database.

Algunos formatos de cadenas de caracteres (como ISO 8601) se interpretan independientemente del valor DATEFORMAT.Some character string formats, for example ISO 8601, are interpreted independently of the DATEFORMAT setting.

La opción SET DATEFORMAT se establece en tiempo de ejecución, no en tiempo de análisis.The setting of SET DATEFORMAT is set at execute or run time and not at parse time.

SET DATEFORMAT anula la configuración de formato de fecha implícita de SET LANGUAGE.SET DATEFORMAT overrides the implicit date format setting of SET LANGUAGE.

PermisosPermissions

Debe pertenecer al rol public .Requires membership in the public role.

EjemplosExamples

El ejemplo siguiente utiliza cadenas de fecha diferentes como entradas en sesiones con el mismo valor DATEFORMAT.The following example uses different date strings as inputs in sessions with the same DATEFORMAT setting.

-- 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  

Consulte tambiénSee Also

Instrucciones SET (Transact-SQL)SET Statements (Transact-SQL)