SQL | Funciones de fecha – Part 1

En SQL, las fechas son complicadas para los novatos, ya que mientras se trabaja con la base de datos, el formato de la fecha en la tabla debe coincidir con la fecha de entrada para poder insertar. En varios escenarios, en lugar de la fecha, se utiliza la fecha y la hora (la hora también está relacionada con la fecha).
En MySql, las funciones de fecha predeterminadas son:

  • NOW(): Devuelve la fecha y hora actual. Ejemplo:
    SELECT NOW();
    

    Producción:

    2017-01-13 08:03:52
    
  • CURDATE() : Devuelve la fecha actual. Ejemplo:
    SELECT CURDATE();
    

    Producción:

    2017-01-13
    
  • CURTIME():  Devuelve la hora actual. Ejemplo:
    SELECT CURTIME();
    

    Producción:

    08:05:15
    
  • DATE() : Extrae la parte de la fecha de una expresión de fecha o fecha/hora. Ejemplo:
    Para la siguiente tabla llamada ‘Prueba’
    Identificación Nombre hora de nacimiento
    4120 Pratik 1996-09-26 16:44:15.581
    SELECT Name, DATE(BirthTime) AS BirthDate FROM Test;
    

    Producción:

    Nombre Fecha de nacimiento
    Pratik 1996-09-26
  • EXTRACT(): Devuelve una sola parte de una fecha/hora. Sintaxis:
    EXTRACT(unit FROM date);
    

    Hay varias unidades que se pueden considerar, pero solo se usan algunas, como:
    MICROSEGUNDO, 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 llamada ‘Prueba’

    Identificación Nombre hora de nacimiento
    4120 Pratik 1996-09-26 16:44:15.581

    Consultas

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

      Producción:

      Nombre Cumpleaños
      Pratik 26
    • SELECT Name, Extract(YEAR FROM BirthTime) AS BirthYear FROM Test;
      

      Producción:

      Nombre Año de nacimiento
      Pratik 1996
    • SELECT Name, Extract(SECOND FROM BirthTime) AS BirthSecond FROM Test;
      

      Producción:

      Nombre NacimientoSegundo
      Pratik 581
  • DATE_ADD() : Agrega un intervalo de tiempo específico a una fecha
    Sintaxis:
    DATE_ADD(date, INTERVAL expr type);
    

    Donde, fecha: expresión de fecha válida y expr es el número de intervalo 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 llamada ‘Prueba’

    Identificación Nombre hora de nacimiento
    4120 Pratik 1996-09-26 16:44:15.581

    Consultas

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

      Producción:

      Nombre hora de nacimiento modificada
      Pratik 1997-09-26 16:44:15.581
    • SELECT Name, DATE_ADD(BirthTime, INTERVAL 30 DAY) AS BirthDayModified FROM Test;
      

      Producción:

      Nombre NacimientoDíaModificado
      Pratik 1996-10-26 16:44:15.581
    • SELECT Name, DATE_ADD(BirthTime, INTERVAL 4 HOUR) AS BirthHourModified FROM Test;
      

      Producción:

      Nombre NacimientoSegundo
      Pratik 1996-10-26 20:44:15.581
  • DATE_SUB(): resta un intervalo de tiempo específico de una fecha. La sintaxis para DATE_SUB es la misma que DATE_ADD, solo que la diferencia es que DATE_SUB se usa para restar un intervalo de fecha determinado.
  • DATEDIFF():  Devuelve el número de días entre dos fechas. Sintaxis:
    DATEDIFF(date1, date2);
    date1 & date2- date/time expression
    

    Ejemplo:

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

    Producción:

    FechaDiff
    10
  • DATE_FORMAT(): Muestra datos de fecha/hora en diferentes formatos. Sintaxis:
    DATE_FORMAT(date,format);
    

    date es una fecha válida y format 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-Tiempo, 24 horas (hh:mm:ss)
    • %U-Week (00-53) donde el domingo es el primer día de la semana
    • %u-Week (00-53) donde el lunes es el primer día de la semana
    • %V-Semana (01-53) donde el domingo es el primer día de la semana, usado con %X
    • %v-Semana (01-53) donde el lunes es el primer día de la semana, se usa 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, usados ​​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-Year, numérico, cuatro dígitos
    • %y-año, numérico, dos dígitos

    Ejemplo:

    DATE_FORMAT(NOW(),'%d %b %y')
    

    Resultado:

    13 Jan 17
    

Este artículo es una contribución de Pratik Agarwal . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *