ramirex

recopilacion de todo lo que hago en mi vida profesional

Tratamiento de Fechas Mysql

leave a comment »

El manejo de Fechas en Mysql es muy extensa, pero mostrare las mas útiles.

 

Obtener la fecha y hora

Código :

select now();   #   ejemplo:  '2015-03-18 10:36:43'

Obtener solo día mes y año

Código :

select CURDATE();  # ejemplo:'2015-03-18'  

Obtener hora actual

Código :

select curTime();

Obtener ultima fecha del mes

Código :

select LAST_DAY(NOW());

Obtener diferencia entre dos fechas en meses

Código :

select TIMESTAMPDIFF(month,'2015-01-01',CURDATE());

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


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 día del mes

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

Dar formato a una fecha


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

Código :

 

select Date_format(now(),'%Y/%M/%d');#'2015/March/18'
select Date_format(now(),'%Y-%M-%d %h:%i:%s %p');#'2015-March-18 10:42:29 AM'
select Date_format(now(),'%W %d %M %Y');#'Wednesday 18 March 2015'
select Date_format(now(),'El año actual es %Y');#'El año actual es 2015'

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


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

Sumar tiempo

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

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

Fuente: cristalab.com

Anuncios

Written by ramirex

marzo 18, 2015 a 11:36 am

Publicado en General

Tagged with

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: