Daniel Calbimonte
Uncheck Prevent saving changes that require table re-creation

Fecha de conversión de SQL

December 11, 2019 by

Introducción

Una tarea común para los novatos es poder aprender cómo hacer una conversión de fecha de SQL y trabajar para convertir la fecha a otros tipos de datos o transformar otros tipos de datos a la fecha.

Aquí en este artículo explicaremos cómo trabajar y convertir fechas a diferentes formatos o viceversa.

Requisitos

  1. Tener un Servidor SQL instalado. A partir de SQL Server 2008

Ejemplo

El primer ejemplo será simple, nosotros tenemos una columna varchar con una fecha en una tabla, pero necesitamos convertir el varchar a la fecha actual. Necesitamos hacer una fecha de conversión SQL.

Aquí está un documento para crear la tabla con datos:

Queremos convertir la fecha de la columna de nvarchar (100) a una fecha.

Para hacerlo, intentaremos modificar el diseño de la tabla:

SSMS Design table

Intentaremos cambiar el Tipo de Datos a smalldatetime:

change varchar to smalldatime in SSMS

Usted Recibirá el siguiente mensaje de error:

El guardar cambios no está permitido. Los cambios que ha realizado requieren que las siguientes tablas se descarten y se vuelvan a crear. Usted ha realizado cambios en una tabla que no se puede volver a crear o ha habilitado la opción Evitar guardar los cambios que requieren que se vuelva a crear la tabla.

Para resolver este error, en SSMS vaya al menú Herramientas > Opciones:

Change Options in SSMS

En Opciones, vaya a Diseñadores >Diseñadores de tablas y bases de datosy desmarque la opción Evitar guardar los cambios que requieren la reformulación de la tabla:

Uncheck Prevent saving changes that require table re-creation

Esta opción deshabilitará la opción para evitar guardar la reformulación de la tabla. Cuando usted modifica el tipo de datos de la columna, se requiere la recreación o reformulación de la tabla.

Ahora, puede guardar el diseño y su tabla se convertirá a la fecha y se completará la fecha de conversión de SQL:

SQL convert date: Date time results after convert sql date

Funciones de conversión

Usted puede advertir que T-SQL contiene funciones para convertir tipos de datos. Nosotros usaremos CAST y CONVERT para hacer una conversión de fecha de SQL Server.

Comencemos con CAST primero:

Cómo convertir las fechas de varchar, nvarchar, char, nchar a sql date usando CAST

El siguiente ejemplo mostrará cómo convertir caracteres a un tipo de fecha datetime usando la función CAST:

El ejemplo específica a una variable llamada vardate y luego esta variable que es un varchar se convierte a datetime usando la función CAST.

Nota: Para obtener más información sobre la función CAST, consulte este enlace: CAST y CONVERT (Transact-SQL)

Cómo hacer una fecha de conversión SQL de varchar, nvarchar, char, nchar a la fecha usando CONVERT

CONVERT es una función que puede hacer lo mismo que CAST en el escenario anterior.

El código T-SQL está haciendo lo mismo que el código anterior, pero está utilizando la función CONVERT. La ventaja de CONVERT es que puede cambiar fácilmente el formato de la fecha utilizando el argumento de estilo.

Por ejemplo, si usted desea la fecha en el formato ISO, puede usar la siguiente oración T-SQL:

Cómo convertir la fecha SQL en diferentes formatos en T-SQL

El siguiente ejemplo muestra cómo convertir el formato de fecha en diferentes formatos.

Para el formato japonés:

Para formato de EE. UU

Para formato ANSI:

Para formato británico:

Para formato alemán:

Para formato italiano:

Para el formato predeterminado europeo:

Para ODBC Canonical:

Es importante mencionar que usted Siempre tiene la opción de usar la función FORMATO para obtener la fecha en el formato que desee:

En FORMATO es más fácil de manejar fechas y usar el formato que prefiera, ya que no necesita conocer el estilo. Sin embargo, en mi experiencia veo mucho código usando las funciones CAST y CONVERT, así que es mejor conocerlas.

Nota: Para obtener más información sobre la función FORMAT, consulte este enlace: FORMAT (Transact-SQL)

Problemas relacionados con las operaciones de conversión de fecha de SQL

Cuando intenta convertir a la fecha, esto no siempre es posible. El siguiente ejemplo muestra un error común:

El mensaje de error es el siguiente:

Msg 242, Level 16, State 3, Line 22

La conversión de un tipo de datos varchar a un tipo de datos datetime dio como resultado un valor fuera de rango.

Necesita separadores para la fecha como “/”, “.” , “-“.

El siguiente ejemplo modifica la cadena de 11242016 a 24-11-2016 y luego la convierte a fecha sql:

Usamos subcadena para concatenar el “-” para usar un formato de fecha aceptable y luego usamos la función CONVERTIR para convertir los caracteres a la fecha sql.

Tipos de datos de fecha

En SQL Server, hay varios tipos de tipos de datos de fecha:

  • El tiempo transforma las horas, minutos, segundos y nanosegundos (hh: mm: ss.nnnnnn )
  • La fecha transforma el año, meses y días (aaaa- mm- dd)
  • Datetime transforma los datos con este formato: AAAA-MM-DD hh: mm: ss [. nnn ]
  • Smalldatetime transforma la fecha con este formato: AAAA-MM-DD hh: mm: ss
  • Datetime2 es similar a Datetime, pero tiene más precisión (AAAA-MM-DD hh: mm: ss [. Nnnnnnn ])
  • Datetimeoffset tiene la precisión de datetime2, pero se usa para zonas horarias en UTC

SQL Efectúa la conversión de fecha a un valor numérico entero

Si utiliza CONVERT o CAST para convertir una fecha y hora a un número entero, transformara el número de días desde 1900 hasta la fecha indicada.

Por ejemplo, el siguiente código T-SQL mostrará la cantidad de días desde 1900 hasta hoy:

También puede convertir a entero el año, meses, días, etc. de un valor de fecha y hora. El siguiente código muestra cómo almacenar en variables enteras el día, mes y año de un valor de fecha y hora:

Preguntas comunes sobre la fecha de conversión de SQL en SQL Server

Nota: : El siguiente enlace contiene preguntas frecuentes sobre funciones y fechas en SQL Server: preguntas frecuentes sobre fechas en SQL Server

Conclusiones

En este artículo, aprendimos cómo hacer una fecha de conversión de SQL en SQL Server. Aprendimos cómo modificar el tipo de datos en una tabla, cómo usar las funciones CAST, CONVERT y FORMAT. También aprendimos sobre los diferentes tipos de tipos de datos SQL.

Daniel Calbimonte

Daniel Calbimonte

Daniel Calbimonte es un Microsoft Most Valuable Professional, Microsoft Certified Trainer y Microsoft Certified IT Professional en SQL Server. He is an accomplished SSIS author, Intructor en academias de IT y tienedécadas de experience trabajando con diferentes bases de datos.

Realizó consultorias para empresas gubernamentales, empresas petroleras, sitios web, revistas y universidades alrededor del mundo. Daniel participa regularmente en conferencias de SQL Server y blogs. Escribe material sobre SQL Server y exámenes de certificación.

También realiza la traducción de artículos de SQLShack al español

Ver todas las publicaciones de Daniel Calbimonte
Daniel Calbimonte
280 Views