logo

Funciones de fecha y hora de SQL

En SQL , las fechas son complicadas para los novatos, ya que al trabajar con una base de datos, el formato de los datos de la tabla debe coincidir con los datos de entrada a insertar. En varios escenarios, en lugar de la fecha, se utiliza la fecha y hora (la hora también está relacionada con la fecha).

Para almacenar una fecha o un valor de fecha y hora en una base de datos, mysql ofrece los siguientes tipos de datos:

FECHA formato AAAA-MM-DD
FECHA Y HORA formato: AAAA-MM-DD HH:MI: SS
MARCA DE TIEMPO formato: AAAA-MM-DD HH:MI: SS
AÑO formato AAAA o AA

Ahora, veamos algunas funciones populares en funciones de fecha SQL.



AHORA()

Devuelve la fecha y hora actuales.

Consulta:

SELECT NOW();>

Producción:

ahora imagen de salida del método

FECHA ACTUAL()

Devuelve la fecha actual.

actor de cine vijay

Consulta:

SELECT CURDATE();>

Producción:

SALIDA2

TIEMPO CORTE()

Devuelve la hora actual.

Consulta:

SELECT CURTIME();>

Producción:

SALIDA3

FECHA()

Extrae la parte de fecha de una expresión de fecha o fecha/hora. Ejemplo: para la siguiente tabla denominada 'Prueba'

Identificación Nombre Hora de nacimiento
4120 Práctica 1996-09-26 16:44:15.581

Consulta:

SELECT Name, DATE(BirthTime)  AS BirthDate FROM Test;>

Producción:

Nombre Fecha de nacimiento
Práctica 1996-09-26

EXTRACTO()

Devuelve una única parte de una fecha/hora.

Sintaxis

EXTRACTO(unidad DESDE fecha);

Se pueden considerar varias unidades pero solo se utilizan algunas como MICROSECUNDO, SEGUNDO, MINUTO, HORA, DÍA, SEMANA, MES, TRIMESTRE, AÑO, etc. Y 'fecha' es una expresión de fecha válida. Ejemplo: para la siguiente tabla denominada 'Prueba'

Identificación Nombre Hora de nacimiento
4120 Práctica 1996-09-26 16:44:15.581

Consulta:

SELECT Name, Extract(DAY FROM  BirthTime) AS BirthDay FROM Test;>

Producción:

cadena booleana java
Nombre Cumpleaños
Práctica 26

Consulta:

SELECT Name, Extract(YEAR FROM BirthTime) AS BirthYear FROM Test;>

Producción:

Nombre Año de nacimiento
Práctica 1996

Consulta:

SELECT Name, Extract(SECOND FROM  BirthTime) AS BirthSecond FROM Test;>

Producción:

Nombre NacimientoSegundo
Práctica 581

FECHA_ADD()

Agrega un intervalo de tiempo específico a una fecha.

Sintaxis:

DATE_ADD(fecha, tipo de expresión INTERVALO);

Donde, fecha: expresión de fecha válida y expr es el número de intervalos que queremos agregar. y el tipo puede ser uno de los siguientes: MICROSEGUNDO, SEGUNDO, MINUTO, HORA, DÍA, SEMANA, MES, TRIMESTRE, AÑO, etc. Ejemplo: Para la siguiente tabla denominada 'Prueba'

Identificación Nombre Hora de nacimiento
4120 Práctica 1996-09-26 16:44:15.581

Consulta:

SELECT Name, DATE_ADD(BirthTime, INTERVAL  1 YEAR) AS BirthTimeModified FROM Test;>

Producción:

Nombre Hora de nacimientoModificado
Práctica 1997-09-26 16:44:15.581

Consulta:

SELECT Name, DATE_ADD(BirthTime,  INTERVAL 30 DAY) AS BirthDayModified FROM Test;>

Producción:

Nombre Día de nacimientoModificado
Práctica 1996-10-26 16:44:15.581

Consulta:

SELECT Name, DATE_ADD(BirthTime, INTERVAL  4 HOUR) AS BirthHourModified FROM Test;>

Producción:

Nombre NacimientoSegundo
Práctica 1996-10-26 20:44:15.581

FECHA_SUB()

Resta un intervalo de tiempo específico de una fecha. La sintaxis de DATE_SUB es la misma que DATE_ADD, solo que la diferencia es que DATE_SUB se usa para restar un intervalo de fechas determinado.

FECHADIFF()

Devuelve el número de días entre dos fechas.

Sintaxis:

DATEDIFF(fecha1, fecha2);

fecha1 y fecha2: expresión de fecha/hora

Consulta:

SELECT DATEDIFF('2017-01-13','2017-01-03') AS DateDiff;>

Producción:

FechaDiff
10

FORMATO DE FECHA()

Muestra datos de fecha/hora en diferentes formatos.

Sintaxis:

DATE_FORMAT(fecha,formato);

cadena n java

la fecha es una fecha válida y el formato especifica el formato de salida para la fecha/hora. Los formatos que se pueden utilizar son:

  • %a-Nombre abreviado del día de la semana (domingo-sábado)
  • %b-Nombre abreviado del mes (enero-diciembre)
  • %c-Mes, numérico (0-12)
  • %D-Día del mes con sufijo en inglés (0.º, 1.º, 2.º, 3.º)
  • %d-Día del mes, numérico (00-31)
  • %e-Día del mes, numérico (0-31)
  • %f-Microsegundos (000000-999999)
  • %H-Hora (00-23)
  • %h-Hora (01-12)
  • %I-Hora (01-12)
  • %i-Minutos, numérico (00-59)
  • %j-Día del año (001-366)
  • %k-hora (0-23)
  • %l-hora (1-12)
  • %M-Nombre del mes (enero-diciembre)
  • %m-Mes, numérico (00-12)
  • %p-AM o PM
  • %r-Hora, 12 horas (hh:mm: ss seguido de AM o PM)
  • %S-Segundos (00-59)
  • %s-segundos (00-59)
  • %T-Hora, 24 horas (hh:mm:ss)
  • %U-Semana (00-53) donde el domingo es el primer día de la semana
  • %u-Semana (00-53) donde el lunes es el primer día de la semana
  • %V-Week (01-53) donde el domingo es el primer día de la semana, usado con %X
  • %v-Week (01-53) donde el lunes es el primer día de la semana, usado con %x
  • %W-Nombre del día de la semana (domingo-sábado)
  • %w-Día de la semana (0=domingo, 6=sábado)
  • %X-Año para la semana donde el domingo es el primer día de la semana, cuatro dígitos, usado con %V
  • %x-Año para la semana donde el lunes es el primer día de la semana, cuatro dígitos, usado con %v
  • %Y-Año, numérico, cuatro dígitos
  • %y-Año, numérico, dos dígitos