[Tutorial]Fechas con MySQL

Topic created · 2 Mensajes · 1587 Visitas
  • **El manejo de fechas en MySQL es extenso así que solo haré una introducción a las funciones de fechas. Para ejecutar las siguientes querys yo recomiendo usar "mysql gui tools".

    Obtener la fecha y hora en MySQL

    Código :

    select now();   #   ejemplo:  '2010-01-12 10:50:43'
    

    Obtener solo día mes y año en MySQL

    Código :

    select CURDATE();  # ejemplo: '2010-01-12'  #sin hora
    

    Obtener hora actual en MySQL

    Código :

    select curTime(); #Selecciona la hora
    

    Obtener día, mes, año, u hora de una fecha en MySQL

    El formato de la fecha debe ser YYYY-MM-DD HH:MM:SS, aunque para obtener el año, mes o día solo es necesario YYYY-MM-DD

    Código :

    select YEAR(NOW());  #Selecciona el año 
    select MONTH (NOW()) as mes;  #Selecciona el mes 
    select DAY(NOW()) as dia; #Selecciona el día  
    select TIME(NOW()) as hora;  #Selecciona la hora 
    Select LAST_DAY(NOW()); # Selecciona el ultimo dia del mes
    

    También existe MICROSECOND, SECOND, MINUTE, HOUR, MONTHNAME, etc.

    Dar formato a una fecha en MySQL

    Para esto usamos Date_format, DATE_FORMAT(fecha,formato); ejemplo:

    Código :

    select Date_format(now(),'%Y/%M/%d'); # '2010/January/12' 
    select Date_format(now(),'%Y-%M-%d %h:%i:%s %p'); #'2010-January-12 12:34:29 AM' 
    select Date_format(now(),'%W %d %M %Y'); # 'Tuesday 12 January 2010' 
    select Date_format(now(),'El año actual es %Y'); # 'El año actual es 2010'
    

    Estos son algunos de los especificadores que tenemos disponibles para dar formato a una fecha, la lista completa pueden verla en los manuales de MySql:

    Código :

    - %d #Día del mes numérico (00...31) 
    - %H #Hora (00...23) 
    - %h #Hora (01...12) 
    - %i #Minutos, numérico (00...59) 
    - %M #Nombre mes (January...December) 
    - %m #Mes, numérico (00...12) 
    - %p #AM o PM 
    - %W #Nombre día semana (Sunday...Saturday) 
    - %Y #Año, numérico, cuatro dígitos 
    - %y #Año, numérico (dos dígitos) 
    - %s #Segundos (00...59)
    

    Sumar o restar días a una fecha con DATE_ADD o DATE_SUB en MySQL

    DATE_ADD(fecha,INTERVAL valor tipo), DATE_SUB(fecha,INTERVAL valor tipo)

    Sumar tiempo en MySQL

    Código :

    select DATE_ADD(NOW(),INTERVAL 20 DAY); # Agrega 20 días a la fecha actual 
    select DATE_ADD(NOW(),INTERVAL 30 MINUTE); # Agrega 30 minutos a la fecha actual 
    select DATE_ADD(NOW(),INTERVAL 50 YEAR); #Agrega 50 años a la fecha actual 
    select DATE_ADD(NOW(),INTERVAL '10-5' YEAR_MONTH); #Agrega 10 años 5 meses a la fecha actual
    

    Restar tiempo en MySQL

    Código :

    select DATE_SUB(NOW(),INTERVAL 8 YEAR); #Resta 8 años a la fecha actual  
    select DATE_SUB(NOW(),INTERVAL 24 HOUR); #Resta 24 horas a la fecha actual 
    select DATE_SUB(NOW(),INTERVAL '7-2' YEAR_MONTH); #Resta 7 años dos meses a la fecha actual
    

    Estos son algunos de los argumentos que podemos usar, para una lista completa consulten los manuales de MySql

    Código :

    SECOND #Segundos 
    MINUTE #Minutos 
    HOUR #Horas 
    DAY #Días 
    MONTH #Meses 
    YEAR #Años 
    YEAR_MONTH #'Años-meses' 
    DAY_HOUR #'Días Horas'
    

    Restar dos fechas

    DATEDIFF(fecha_1,fecha_2) devuelve el número de días entre la fecha fecha_1 y la fecha_2

    Código :

    SELECT DATEDIFF(NOW(),'2002-11-02'); #cuantos días han pasado 
    SELECT DATEDIFF(NOW(),'2010-03-20'); #Cuantos días faltan
    

    Espero que les sirva mucho este tuto es gracias a Keith_NT
    **