Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Sumas horarias y fechas
#MySQL 5.7.12 #please drop objects you've created at the end of the script #or check for their existance before creating #'\\' is a delimiter #select version() as 'mysql version' -- Comentarios de una línea DROP TABLE IF EXISTS Fechas; CREATE TABLE Fechas (FechaHora DATETIME, Hora TIME, Fecha DATE); INSERT INTO Fechas values (sysdate(), current_time, current_date); select * from Fechas; #Suma un número de días a una fecha. ADDDATE(fecha, intervalo) #Si se suman días no necesita la cláusula "INTERVAL" select fecha, ADDDATE(fecha, 30) AddDate30Días from Fechas; select fecha, ADDDATE(fecha, 10) AddDate10Días from Fechas; #Cuando no se indique otra cosa, a partir de aquí siempre sumará 3 días/meses... #Suma un intervalo a una fecha. ADDDATE(fecha, INTERVAL intervalo) #nótese que es "day" en singular Select fecha, ADDDATE(fecha, INTERVAL 3 day) as ADDDATEConINTERVALDias from Fechas; #Month siempre necesita INTERVAL+ month(singular) Select fecha, ADDDATE(fecha, INTERVAL 3 month) as ADDDATEConINTERVALMeses from Fechas; #Year siempre necesita INTERVAL+ year(singular) Select fecha, ADDDATE(fecha, INTERVAL 3 year) as ADDDATEConINTERVALAnios from Fechas; #La fecha inicial no es necesario que la lea de una tabla SELECT ADDDATE('2017-03-16 23:59:59', INTERVAL 3 day) as ADDDATEsinTabla; #INTERVALOS COMPUESTOS #Suma 3 días y 3 horas Select fechaHora, ADDDATE(fechaHora, INTERVAL '3 3' DAY_HOUR) as CompuestoDiaHora from Fechas; Select fechaHora, ADDDATE(fechaHora, INTERVAL '3:3' DAY_HOUR) as CompuestoDiaHoraDosPuntos from Fechas; #Suma 3 años y 3 meses Select fechaHora, ADDDATE(fechaHora, INTERVAL '3 3' YEAR_MONTH) as CompuestoAnioMes from Fechas; #Da igual que haya espacios entre los dos puntos y los valores del intervalo compuesto, o no. Select fechaHora, ADDDATE(fechaHora, INTERVAL '3 : 3' YEAR_MONTH) as CompuestoAnioMesDosPuntos from Fechas; #NO EXISTE MONTH_DAY, NI DAY_MONTH #Select fechaHora, ADDDATE(fechaHora, INTERVAL '3 : 3' MONTH_DAY) from Fechas; #Select fechaHora, ADDDATE(fechaHora, INTERVAL '3 : 3' DAY_MONTH) from Fechas; #Intervalo múltiple, puede ser 2, 3, 4... #day_minute (dias, horas y minutos), Select fechaHora, ADDDATE(fechaHora, INTERVAL '3 3 3' DAY_MINUTE) as Dia_Hora_Minuto from Fechas; Select fechaHora, ADDDATE(fechaHora, INTERVAL '3:3:3' DAY_MINUTE) as Dia_Hora_MinutoDosPuntos from Fechas; Select fechaHora, ADDDATE(fechaHora, INTERVAL '3 3 3 3' DAY_SECOND) as Dia_Hora_Minuto_Segundo from Fechas; ##Suma de horas, minutos, etc... Select Hora, ADDDATE(Hora, INTERVAL 3 second) as SumaSegundos from Fechas; Select Hora, ADDDATE(Hora, INTERVAL 3 minute) as SumaMinutos from Fechas; Select Hora, ADDDATE(Hora, INTERVAL 3 hour) as SumaHoras from Fechas; Select Hora, ADDDATE(Hora, INTERVAL '3' hour) as SumaHoras from Fechas; ##Suma de horas y minutos, minutos y segundos, horas y minutos y segundos... Select Hora, ADDDATE(Hora, INTERVAL '3 3' hour_minute) as SumaHoraMinuto from Fechas; Select Hora, ADDDATE(Hora, INTERVAL '3 3 3' hour_second) as SumaHoraSegundo from Fechas; Select Hora, ADDDATE(Hora, INTERVAL '3:3' minute_second) as SumaMinutoSegundo from Fechas; #DATE_ADD#### Sinónimo de ADDDATE pero necesita siempre INTERVAL ################################# ################################## ############################################################### #Suma un intervalo a una fecha. ADDDATE(fecha, INTERVAL intervalo) #nótese que es "day" en singular Select fecha, DATE_ADD(fecha, INTERVAL 3 day) as DATE_ADDConINTERVALDias from Fechas; #Si el intervalo es de un solo valor (year, month, hour, day...) puede ir, o no, entre comillas siemples Select fecha, DATE_ADD(fecha, INTERVAL '3' day) as DATE_ADDConINTERVALDias from Fechas; #Month siempre necesita INTERVAL+ month(singular) Select fecha, DATE_ADD(fecha, INTERVAL 3 month) as DATE_ADDConINTERVALMeses from Fechas; #Year siempre necesita INTERVAL+ year(singular) Select fecha, DATE_ADD(fecha, INTERVAL 3 year) as DATE_ADDConINTERVALAnios from Fechas; #La fecha inicial no es necesario que la lea de una tabla SELECT DATE_ADD('2017-03-16 23:59:59', INTERVAL 3 day) as DATE_ADDsinTabla; #Existen mucho más tipos de periodos para ADDDATE y DATE_ADD #Semanas (WEEK en singular) Select fecha, DATE_ADD(fecha, INTERVAL 3 WEEK) as DATE_ADDConINTERVALSemana from Fechas; #Cuartos de año (QUARTER en singular) Select fecha, DATE_ADD(fecha, INTERVAL 3 QUARTER) as DATE_ADDConINTERVALSemana from Fechas; #INTERVALOS COMPUESTOS #Suma 3 días y 3 horas Select fechaHora, DATE_ADD(fechaHora, INTERVAL '3 3' DAY_HOUR) as CompuestoDiaHora from Fechas; Select fechaHora, DATE_ADD(fechaHora, INTERVAL '3:3' DAY_HOUR) as CompuestoDiaHoraDosPuntos from Fechas; #Suma 3 años y 3 meses Select fechaHora, DATE_ADD(fechaHora, INTERVAL '3 3' YEAR_MONTH) as CompuestoAnioMes from Fechas; #Da igual que haya espacios entre los dos puntos y los valores del intervalo compuesto, o no. Select fechaHora, DATE_ADD(fechaHora, INTERVAL '3 : 3' YEAR_MONTH) as CompuestoAnioMesDosPuntos from Fechas; #NO EXISTE MONTH_DAY, NI DAY_MONTH #Select fechaHora, DATE_ADD(fechaHora, INTERVAL '3 : 3' MONTH_DAY) from Fechas; #Select fechaHora, DATE_ADD(fechaHora, INTERVAL '3 : 3' DAY_MONTH) from Fechas; #Intervalo múltiple, puede ser 2, 3, 4... #day_minute (dias, horas y minutos), Select fechaHora, DATE_ADD(fechaHora, INTERVAL '3 3 3' DAY_MINUTE) as Dia_Hora_Minuto from Fechas; Select fechaHora, DATE_ADD(fechaHora, INTERVAL '3:3:3' DAY_MINUTE) as Dia_Hora_MinutoDosPuntos from Fechas; Select fechaHora, DATE_ADD(fechaHora, INTERVAL '3 3 3 3' DAY_SECOND) as Dia_Hora_Minuto_Segundo from Fechas; ##PERIOD_ADD Suma a un año y un mes, un período de meses (NO un período cualquiera a una fecha) #El año y el mes se indican con YYYYMM ó YYMM y es el formato que devuelve #El número de meses que se suman se indican con la cifra (sin comillas) -- Suma un mes al mes 11 del año 1999 -> Devolverá 12 del 1999 Select PERIOD_ADD ('199911', 1) as Period_Add_YYYYMM; #YYYYMM Select PERIOD_ADD ('9911', 1) as Period_Add_YYMM; #YYMM -- Suma tres meses a enero del 2000 y devuelve abril del 2000 Select PERIOD_ADD ('200001', 3) as Period_Add; -- Suma tres meses a diciembre de 1999 y devuelve marzo del 2000 Select PERIOD_ADD ('199912', 3) as Period_Add; ##Suma de horas, minutos, etc... ################################################ #Con DATE_ADD y ADDDATE sigue las mismas normas que para fechas Select Hora, DATE_ADD(Hora, INTERVAL 3 second) as SumaSegundos from Fechas; Select Hora, ADDDATE(Hora, INTERVAL 3 minute) as SumaMinutos from Fechas; Select Hora, DATE_ADD(Hora, INTERVAL 3 hour) as SumaHoras from Fechas; Select Hora, ADDDATE(Hora, INTERVAL '3' hour) as SumaHoras from Fechas; ##Suma de horas y minutos, minutos y segundos, horas y minutos y segundos... Select Hora, DATE_ADD(Hora, INTERVAL '3 3' hour_minute) as SumaHoraMinuto from Fechas; Select Hora, DATE_ADD(Hora, INTERVAL '3 3 3' hour_second) as SumaHoraSegundo from Fechas; Select Hora, DATE_ADD(Hora, INTERVAL '3:3' minute_second) as SumaMinutoSegundo from Fechas; ##ADDTIME No es como ADDDATE para horas, sino que suma dos horas (no un intervalo a una hora) Select Hora, ADDTIME('00:00:01', Hora) as SumaExpresionesHorarias from Fechas; Select FechaHora, ADDTIME(FechaHora, '00:01:00') as SumaExpresionesHorarias from Fechas; -- El primer valor puede ser un datetime, time o incluso una fecha (date) pero el valor a sumar se entiende -- que son horas:minutos:segundos Select Fecha, ADDTIME(Fecha, '00:01:00') as SumaExpresionesHorarias from Fechas; #No da error sumar dos valores DATE pero no suma horas (suma dos fechas) Select Fecha, ADDTIME(Fecha, Fecha) as SumaSinExpresionesHorarias from Fechas;
run
|
edit
|
history
|
help
0
fazebda
act5
mysql datetime to date selected using in list
DateAdd y AddDate
count time interval
Práctica MySQL 1
ze
ayushagg31.c
Reviews and Permissions
mysql - update