Consultar hora y fecha de visualización
- SELECCIONE t1, t2 DESDE time_val;
- SELECCIONE dt DE datetime_val; s
- SELECCIONAR CURTIME (), CURTIME (2), CURTIME (6); (Mostrar hora y fecha en diferentes formatos)
- SELECT d, DATE_FORMAT (d, '% M% d,% Y') FROM date_val;
- SELECT d, DATE_FORMAT (d, '% M,% d,% Y') AS fecha FROM date_val;
carácter de formato que significa
% Y año, cuatro dígitos
% y año, dos dígitos
% M mes completo (enero, diciembre)
% b mes, primeras tres letras (enero ... diciembre)
% m mes dos dígitos (01..12)
% c mes (1..12)
% d mes número de días, dos dígitos (01.31)
% e mes Días en (1..31)
% W Día de la semana (domingo a sábado)
% r Hora, formato de 12 horas, que termina en AM o PM
% T hora, formato de 24 horas
% H hora, dos dígitos (00-23)
% i minutos, dos dígitos (00..59)
% s segundos, dos dígitos (00.59)
%% letras "%" - SELECT dt, DATE_FORMAT (dt, '% c /% e /% y% r') AS format1, DATE_FORMAT (dt, '% M% e,% Y% T') AS format2 FROM datetime_val;
- SELECT dt, TIME_FORMAT (dt, '% r') AS '12 -horas ', TIME_FORMAT (dt,'% T ') AS '24 -horas' FROM datetime_val;
Obtener la fecha u hora actual
- SELECCIONAR CURDATE (), CURTIME (), NOW ();
- INSERTAR EN VALORES tsdemo (val) (5);
- INSERTAR EN tsdemo (val, ts_both, ts_create, ts_update) VALUES (10, NULL, NULL, NULL);
- SELECCIONE * DE tsdemo;
- SELECT dt, DATE (dt), TIME (dt) FROM datetime_val;
- SELECCIONE dt, AÑO (dt), DAYOFMONTH (dt), HOUR (dt), SECOND (dt) FROM datetime_val;
- SELECCIONE d, DAYOFYEAR (d) FROM date_val;
- SELECCIONE d, DAYNAME (d), LEFT (DAYNAME (d), 3) FROM date_val;
- SELECT dt, DATE_FORMAT (dt, '% Y') AS año, DATE_FORMAT (dt, '% d') AS día, TIME_FORMAT (dt, '% H') AS hora, TIME_FORMAT (dt, '% s') AS segundo FROM datetime_val;
- SELECT dt, DATE_FORMAT (dt, '% Y-% m-% d') AS 'parte de fecha', TIME_FORMAT (dt, '% T') AS 'parte de tiempo' FROM datetime_val;
Fecha sintética o valor de hora
- SELECCIONAR MAKETIME (0,30,58), MAKETIME (-5,0,11);
- SELECT d, DATE_FORMAT (d, '% Y-% m-01') FROM date_val;
- SELECCIONE t1, TIME_FORMAT (t1, '% H:% i: 00') FROM time_val;
- SELECCIONE d, CONCAT (AÑO (d), '-', MES (d), '- 01') DESDE date_val;
- SELECT d, CONCAT (AÑO (d), '-', LPAD (MES (d), 2, '0'), '- 01') FROM date_val;
Conversión entre valor de tiempo y unidad básica.
- SELECCIONE t1, TIME_TO_SEC (t1) COMO 'TIME a segundos', SEC_TO_TIME (TIME_TO_SEC (t1)) COMO 'TIME a segundos a TIME' FROM time_val;
- SELECCIONE t1, TIME_TO_SEC (t1) AS 'segundos', TIME_TO_SEC (t1) / 60 AS 'minutos', TIME_TO_SEC (t1) / (60 60) AS 'horas', TIME_TO_SEC (t1) / (24 60 * 60) AS ' días 'DESDE time_val;
- ELECT dt, TIME_TO_SEC (dt) AS 'parte de tiempo en segundos', SEC_TO_TIME (TIME_TO_SEC (dt)) AS 'parte de tiempo como TIME' FROM datetime_val;
- SELECCIONE d, TO_DAYS (d) COMO 'DATE to days', FROM_DAYS (TO_DAYS (d)) AS 'DATE to days to DATE' FROM date_val;
- SELECT dt, TO_DAYS (dt) 'parte de fecha en días', FROM_DAYS (TO_DAYS (dt)) COMO 'parte de fecha como DATE' FROM datetime_val;
- SELECT dt, UNIX_TIMESTAMP (dt) AS segundos, FROM_UNIXTIME (UNIX_TIMESTAMP (dt)) AS marca de tiempo FROM datetime_val;
- SELECT dt, UNIX_TIMESTAMP (dt) AS segundos, FROM_UNIXTIME (UNIX_TIMESTAMP (dt)) AS marca de tiempo FROM datetime_val;
- SELECCIONE DATEDIFF (@ d1, @ d2) AS 'd1 - @ d2', DATEDIFF (@ d2, @ d1) AS 'd2-d1';
- SELECCIONE TIMEDIFF (@ t1, @ t2) COMO 't1-t2', TIMEDIFF (@ t2, @ t1) COMO 't2-t1';
Hora, fecha de suma y resta
- SET @ t1 = '12: 00: 00 ', @ t2 = '15: 30: 00';
- SELECCIONA ADDTIME (@ t1, @ t2);
- SET @dt = '1984-03-01 12:00:00', @ t = '12: 00: 00 ';
- SELECCIONA ADDTIME (@ dt, @ t);
- SELECT CURDATE (), DATE_ADD (CURDATE (), INTERVAL 3 DAY);
- SELECT CURDATE (), DATE_ADD (CURDATE (), INTERVAL 1 WEEK);
- SELECCIONAR AHORA (), DATE_ADD (AHORA (), INTERVALO '3 4' DÍA_HORA);
- SELECCIONE la fecha @d AS, FROM_DAYS (TO_DAYS (@d) +7) AS 'date + 1 week', FROM_DAYS (TO_DAYS (@d) - 7) AS 'date -1 week';
Calcular edad
- SELECCIONAR * DE hermano;
- SELECCIONE nombre, nacimiento, CURDATE () COMO hoy, TIMESTAMPDIFF (AÑO, nacimiento, CURDATE ()) COMO 'edad en años', TIMESTAMPDIFF (MES, nacimiento, CURDATE ()) COMO 'edad en meses' DESDE hermano;
- SELECCIONE nombre, nacimiento, '1953-03-05' COMO 'Franz''nacimiento', TIMESTAMPDIFF (AÑO, nacimiento, '1953-03-05') COMO 'edad en años', TIMESTAMPDIFF (MES, nacimiento, '1953- 03-05 ') AS' edad en meses 'DE hermano DONDE nombre <>' Franz;
Consulta el primer día del mes, el último día o la cantidad de días del mes
- SELECCIONE d, DATE_SUB (d, INTERVAL DAYOFMONTH (d) -1 DAY) AS '1st of month' FROM date_val;
- SELECT d, LAST_DAY (d) AS 'last of month' FROM date_val;
- SELECT d, LAST_DAY (DATE_ADD (d, INTERVAL -1 MONTH)) COMO 'último del mes anterior', LAST_DAY (DATE_ADD (d, INTERVAL 1 MONTH)) COMO 'último del mes siguiente' FROM date_val;
- SELECCIONE d, DAYOFMONTH (LAST_DAY (d)) AS 'days in month' FROM date_val;
Calcular la fecha por sustitución de subcadena
- SELECT d, DATE_FORMAT (d, '% y-% m-01') COMO '1st of month A', CONCAT (YEAR (d), '-', LPAD (MONTH (d), 2, '0'), '-01') COMO '1 ° del mes B' DESDE date_val;
- SELECT CURDATE (), DATE_ADD (DATE_FORMAT (CURDATE (), '% Y-12-25'), INTERVAL 2 YEAR) AS 'Christmas A', DATE_FORMAT (DATE_ADD (CURDATE (), INTERVAL 2 YEAR), '% Y- 12-25 ') COMO' Navidad B ';
Calcular semana
- SELECCIONAR CURDATE (), DAYNAME (CURDATE ());
- SET @first = DATE_SUB (@ d, INTERVAL DAYOFMONTH (@d) -1 DAY);
SELECCIONE @d AS 'fecha de inicio', @ primero como 'fecha del 1 ° mes', DAYNAME (@first) como 'día del 1 ° mes'; - SELECCIONE d, DAYNAME (d) AS day, DATE_ADD (d, INTERVAL 1-DAYOFWEEK (d) DAY) AS Sunday, DATE_ADD (d, INTERVAL 7 -DAYOFWEEK (d) DAY) AS Saturday FROM date_val;
- SET @ target = DATE_SUB (DATE_ADD (CURDATE (), INTERVAL 4-DAYOFWEEK (CURDATE ()) DAY), INTERVAL 14 DAY);
SELECCIONAR CURDATE (), @ target, DAYNAME (@target);
Calcular Runnian
- SELECCIONE d, AÑO (d)% 4 = 0 COMO 'prueba de regla general', (AÑO (d)% 4 = 0) Y ((AÑO (d)% 100 <> 0) O (AÑO (d)% 400 = 0)) COMO 'prueba completa' DE date_val;
- SET @ d1 = '2014-04-13', @ d2 = '2016-04-13';
SELECCIONE DAYOFYEAR (DATE_FORMAT (@ d1, '% Y-12-31')) AS 'days in 2014', DAYOFYEAR (DATE_FORMAT (@ d2, '% Y-12-31')) AS 'days in 2016';
Cadena de fecha en formato no ISO
- SELECCIONE d, CONCAT (AÑO (d), '-', MES (d), '- 01') DESDE date_val;
- SELECCIONE CONCAT (AÑO (d), '-') COMO 'no ISO', DATE_ADD (CONCAT (AÑO (d), '-', MES (d), '- 01'), INTERVALO 0 DÍA) COMO 'ISO 1 ', CONCAT (AÑO (d),' - ', MES (d),' - 01 ') + INTERVALO 0 DÍAS COMO' ISO 2 ', FROM_DAYS (TO_DAYS (CONCAT (AÑO (d),' - ', MES (d), '- 01'))) COMO 'ISO 3', STR_TO_DATE (CONCAT (AÑO (d), '-', MES (d), '- 01'), '% Y-% m-% d ') COMO' ISO 4 'DESDE date_val;
Consulta basada en características de tiempo
- SELECT d FROM date_val WHERE d <'1990-01-01';
- SELECCIONE d DE date_val DONDE d ENTRE '1990-01-01' Y '1999-12-31';
- SELECT d FROM date_val DONDE d> = DATE_SUB (CURDATE (), INTERVAL 20 YEAR);