¿Cómo utilizar el tipo de tiempo mysql y aprender conocimientos sobre acciones?
MySQL obtiene la función de fecha y hora actual.
1.1 Obtener la función de fecha y hora actual: now()
mysql & gt select inmediatamente (
+ - +
|Ahora()|
+ - +
| 2008-08-08 22:20:46 |
+ - +
Además de la función now() que puede obtener la fecha y hora actuales, MySQL también tiene las siguientes funciones:
Marca de tiempo actual()
, marca de tiempo actual
, hora local()
, hora local
, marca de tiempo local-(versión 4.0.6)
, marca de tiempo local()-( 4.0 Versión 6)
Estas funciones de fecha y hora son equivalentes a now(). Dado que la función now() es breve y fácil de recordar, se recomienda utilizar siempre now() en lugar de las funciones enumeradas anteriormente.
1.2 Obtener la función de fecha y hora actual: sysdate()
La función de fecha y hora de sysdate() es similar a now(), pero la diferencia es que now() obtiene el valor al comienzo de la ejecución, sysdate() obtiene dinámicamente el valor cuando se ejecuta la función. Basta con mirar el siguiente ejemplo para comprenderlo:
mysql & gt select now(), sleep(3), now();
+ - + - + - +
|Ahora()|Dormir(3) |Ahora()|
+ - + - + - +
| 2008-08-08 22:28:21 | 0 | 2008-08-08 22:28:21 |
+-+-+-+MySQL> seleccionar sysdate(), dormir(3), sysdate();
+ - + - + - +
|Fecha del sistema()|Suspensión(3) |Fecha del sistema()|
+ - + - + - +
| 2008-08-08 22:28:41 | 0 | 2008-08-08 22:28:44 |
+ - + - + - +
Tú puedes Vea que el valor de tiempo de la función now() es el mismo dos veces, aunque ambas duermen durante 3 segundos. El valor de tiempo obtenido dos veces por la función sysdate() difiere en 3 segundos. En el manual de MySQL, sysdate() se describe así: Devuelve la hora en la que se ejecutó la función.
La función de fecha y hora sysdate() normalmente se utiliza raramente.
2. Obtener la función de fecha actual: curdate()
mysql & gtselect curdate();
+ - +
| curdate () |
+ - +
| 2008-08-08 |
+ - +
Entre ellos, los siguientes dos fechas La función es equivalente a curdate():
Fecha actual()
, fecha actual
3. Obtener la función de hora actual: curtime().
mysql & gtselect curtime();
+ - +
| curtime() |
+ - +
| 22 :41:30 |
+ - +
Las siguientes dos funciones de tiempo son equivalentes a curtime():
Hora actual()
, hora actual
4. Obtenga las funciones de fecha y hora UTC actuales: UTC_date(), UTC_time(), UTC_timestamp().
mysql & gtselect utc_timestamp(), utc_date(), utc_time(), now()
+ - + - + - + - +
| marca de tiempo()|fecha utc()|hora utc()|ahora()|
+ - + - + - + - +
| 2008-08-08 14: 47 :11 | 2008-08-08 | 14:47:11 | 2008-08-08 22:47:11 |
+ - + - + - + - +
Porque China se encuentra en la zona horaria de Dongba, hora local = hora UTC + 8 horas.
La hora UTC es muy útil cuando el negocio involucra varios países y regiones.
2. Función de extracción (selección) de fecha y hora de MySQL.
1. Seleccione diferentes partes de fecha y hora: fecha, hora, año, trimestre, mes, día, hora, minuto, segundo y microsegundo.
set @ dt = ' 2008-09-10 07:15:30.123456 ';
Seleccione fecha (@ dt - 2008-09-10
Seleccione hora (@dt); - 07:15:30.123456
Seleccione año (@dt);
Seleccione mes (@ dt); - 9
Seleccione semana (@ dt); >Seleccione horas (@dt); - 7
Seleccione minutos (@dt); - 15
Seleccione segundos (@dt); Microsegundos (@ dt); - 123456
2. La función MySQL Extract() puede lograr funciones similares:
set @ dt = ' 2008-09-10 07:15 :30.123456 ' ;
Seleccione extracto(año de @ dt); - 2008
Seleccione extracto(trimestre de @ dt); dt); - 9
Seleccionar extracto (semana de @ dt); - 36
Seleccionar extracto (día de @ dt); (horas desde @dt); - 7
Seleccionar extracto (minutos desde @dt); - 15
Seleccionar extracto (segundo desde @dt); p>seleccione extracto (microsegundos de @ dt); -123456 seleccione extracto (año _ mes de @ dt); - 200809
seleccione extracto (día _ hora de @ dt);- 1007
seleccione extracto(día _ minuto de @ dt);- 100715
seleccione extracto(día _ segundo de @ dt);- 10071530
seleccione extracto(día _ microsegundos de @ dt); - 10071530123456
seleccione extracto (hora _ minuto de @ dt); - 715
seleccione extracto (hora _ segundo de @ dt);- 71530
seleccione extracto (hora _microsegundo de @ dt);- 71530123456
seleccione extracto (minuto _ segundo de @ dt);- 1530
seleccione extracto (minuto _microsegundos de @ dt) ); - 1530123456
select extract(segundo _microsegundos de @ dt); - 30123456
La función MySQL Extract() tiene todas las funciones excepto fecha() y hora(). Y también tiene la función de seleccionar 'día_microsegundo'. Tenga en cuenta que aquí no solo se seleccionan el día y los microsegundos, sino también todas las horas desde la parte del día de la fecha hasta la parte de microsegundos. ¡Bastante cruel!
La única desventaja de la función MySQL Extract() es que requiere varias pulsaciones de teclas.
3.Función mysql dayof...: día de la semana (), día del mes (), día del año ().
Devuelve la posición del parámetro de fecha en la semana, mes y año respectivamente.
set @ dt = ' 2008-08-08 ';
Seleccione día de la semana (@ dt); dt ); - 8
Seleccione el día del año (@ dt); - 221
La fecha "2008-08-08" es el sexto día de la semana (1=domingo). , 2=Semana 1,...,7 = Sábado); el día ocho de enero; el día 221 del año.
4.Funciones MySQL semana...: semana(), semanadelaño(), díade la semana(), día de la semana(), añosemana().
set @dt = '2008-08-08';
Seleccionar semana(@dt - 31
Seleccionar semana(@dt, 3) ;- 32
Seleccione semana del año(@dt);- 32
Seleccione día de la semana(@dt);- 6
Seleccione día de la semana(@dt); - 4
Seleccione año semana (@ dt);- 200831
La función semana() de MySQL puede tener dos parámetros, consulte el manual para obtener más detalles. Weekofyear(), al igual que Week(), calcula la semana del año en la que se encuentra "un día determinado". Semanadelaño(@dt) equivale a semana(@dt, 3).
La función MySQL Weekday() es similar a dayofweek(), y devuelve la posición de "un día determinado" de la semana. La diferencia radica en el estándar de referencia, día laborable: (0 = lunes, 1 = martes, ..., 6 = domingo de la semana: (1 = domingo, 2 = lunes, ..., 7 = sábado) p>
La función añosemana() de MySQL devuelve el año (2008) + posición de la semana (31).
5.MySQL devuelve funciones de nombre de día y mes: nombre de día(), nombre de mes().
set @dt = '2008-08-08';
Seleccione el nombre del día(@dt); viernes
Seleccione el nombre del mes(@dt); August
Estaba pensando, ¿por qué todavía tengo un nombre chino?
6.Función MySQL last_day(): devuelve el último día del mes.
Seleccione el último día (' 2008-02-01 '); - 2008-02-29
Seleccione el último día (' 2008-08-08 '); -08 -31
La función MySQL last_day() es muy útil. Por ejemplo, quiero obtener el número de días del mes actual. El método de cálculo es el siguiente:
mysql & gt select now(), day(last_day(now())) como número. de días;
+ - + - +
|Ahora()|día|
+ - + - +
| -08-09 11:45:45 | 31 |
+++III. Funciones de cálculo de fecha y hora de MySQL.
1.MySQL agrega un intervalo de tiempo a la fecha: date_add().
set @dt = now();
seleccione date_add(@dt, intervalo 1 día); - agregue 1 día
seleccione date_add(@dt, intervalo 1 hora); - agregue 1 hora
seleccione date_add(@dt, intervalo 1 minuto -...
seleccione date_add(@dt, intervalo 1 segundo);
select date_add(@dt, intervalo 1 microsegundo);
select date_add(@dt, intervalo 1 semana
select date_add(@dt, intervalo enero); );
seleccione date_add(@dt, intervalo 1 trimestre);
seleccione date_add(@dt, intervalo 1 año); seleccione date_add(@dt, intervalo-1 día); - sub 1 día
Las funciones adddate() y addtime() de MySQL pueden ser reemplazadas por date_add().
El siguiente es un ejemplo de date_add() implementando la función addtime():
mysql & gtset @ dt = '2008-08-09 12:12:33';
mysql & gt
mysql & gtselect date_add(@dt, intervalo ' 01:15:30 ' hora _ segundo
+ - +
| @dt, intervalo ' 01:15:30 ' hora _ segundo)|
+ - +
| 2008-08-09 13:28:03 |
+ ++MySQL & gt; seleccione fecha_add(@dt, intervalo ' 1 01:15:30 ' día _ segundo
+ - +
| dt, intervalo ' 1 01:15:30 ' día _ segundo)|
+ - +
| 2008-08-10 13:28:03 |
+ - +
La función date_add() agrega "1 hora, 15 minutos y 30 segundos" y "1 día, 1 hora, 15 minutos y 30 segundos" a @dt respectivamente. Recomendación: utilice siempre la función de fecha y hora date_add() en lugar de adddate(), addtime().
2.MySQL resta un intervalo de tiempo a la fecha: date_sub()
mysql & gtselect date _ sub(' 1998-01-01 00:00 ', intervalo ' 1 1 :1 ' día _ segundo);
+ - +
| fecha _ sub(' 1998-01-01 00:00:00 ', intervalo' 1 1:1 ' día _ segundo)|
+ - +
| 1997-12-30 22:58:59 |
+ - +
La función de fecha y hora MySQL date_sub() tiene el mismo uso que date_add() y no se describirá nuevamente aquí. Además, hay dos funciones en MySQL, a saber, sub fecha () y sub hora (). Se recomienda utilizar date_sub() en su lugar.
3. Funciones de fecha alternativas de MySQL: period_add (p, n), period_diff (p1, p2).
El formato del parámetro de función "p" es "AAAAMM" o "AAMM", y el segundo parámetro "N" significa sumar o restar N meses (meses).
MySQL period_add(P, N): Suma/resta N meses a la fecha.
mysql y gtselect period_add(200808, 2), period_add(20080808, -2)
+ - + - +
| period_add(200808, 2) | period_add(20080808, -2) |
+ - + - +
| 200810 |
+ - + - +
MySQL period_diff(P1, P2): fecha P1-P2, devuelve n meses.
mysql y gtselect period_diff(200808, 200801)
+ - +
| - +
| 7 |
+ - +
En MySQL, estas dos funciones de fecha generalmente se usan raramente.
4.Función de resta de fecha y hora de MySQL: dateiff (fecha1, fecha2), timediff (hora1, hora2).
Mysql dateiff (fecha1, fecha 2): fecha 1-fecha 2 resta dos fechas para obtener el número de días.
select dateiff('2008-08-08 ', ' 2008-08-01 '); - 7
Seleccione dateiff('2008-08-01 ', ' 2008- 08-08 '); - -7
Mysql timediff (time1, time2): resta dos fechas de time1-time2 para obtener la diferencia horaria.
Seleccione timediff('2008-08-08 08:08:08 ',' 2008-08-08 00:00:00 '- 08:08:08
select timediff('08:08:08 ', ' 00:00:00 '); - 08:08:08
Nota: Los dos tipos de parámetros de la función timediff(time1, time2) deben ser lo mismo.
4. Función de conversión de fecha y hora de MySQL
1 Función de conversión de MySQL (tiempo, segundos): tiempo _ a _ seg (tiempo), sec _ a _ tiempo ( Segundo).
Seleccione tiempo en segundos(' 01:00:05 '); - 3605
Seleccione sec_to_time(3605);
2.Función de conversión MySQL (fecha, número de días): to_days (fecha), from_days (número de días).
Seleccionar para _ días(' 0000-00-00 '); - 0
Seleccionar para _ días(' 2008-08-08 '); (0);-'0000-00-00'
seleccione entre _ días(733627);-'2008-08-08'
3.Función MySQL Str to Date: str_to_date(cadena, formato).
select str_to_date('08/09/2008 ', ' % m/% d/% Y '); - 2008-08-09
select str_to_date('08/09) /08 ', ' % m/% d/% y '); - 2008-08-09
select str_to_date('08.09.2008 ', ' % m . % d . % Y '); - 2008-08-09
seleccione str_to_date('08:09:30 ', ' % h:% I:% s '); - 08:09:30
seleccione str _ to _ date(' 08 . 09 . 2008 08:09:30 ', ' % m . % d . % Y % h:% I:% s ');
Como puede ver, la función de conversión str_to_date(str, format) puede convertir algunas cadenas confusas al formato de fecha. Además, también se puede convertir en tiempo. "Formato" se puede encontrar en el manual de MySQL.
4.Función MySQL de fecha/hora a cadena: date_format (fecha, formato), time_format (hora, formato).
mysql & gtselect date_format(' 2008-08-08 22:23:00 ', ' % W % M % Y ');
+ - +
<); p>| fecha _ formato(' 2008-08-08 22:23:00 ', ' %W %M %Y') |+ - +
| Agosto de 2008 |
+++MySQL> select date_format(' 2008-08-08 22:23:01 ',' % Y % m % d % H % I % s ');
+ - +
| fecha _ formato(' 2008-08-08 22:23:01 ',' %Y%m%d%H%i %s') | p>
+ - +
| 20080808222301 |
+++MySQL & gt; seleccione hora _ formato(' 22:23:01 ',' % h . % Yo . % s ');
+ - +
| time_format('22:23:01 ',' %H.%i.% s') |
+ - +
| 22.23.01 |
+ - +
Función de conversión de fecha y hora de MySQL: formato de fecha (fecha, formato) y time_format(time, format) puede convertir una fecha/hora en varios formatos de cadena. Es la transformación inversa de la función str_to_date(str, format).
5.MySQL obtiene la función de formato de hora nacional: get_format()
Sintaxis de MySQL get_format():
get_format(date | time | date time, ' EUR ' | ' USA ' | ' jis ' | ' iso ' | ' internal '
Todos los ejemplos de uso de MySQL get_format():
select get_format(date, 'United States' ); - '%m.%d.%Y '
seleccione get_format(fecha,' jis '); - '%Y-%m-%d '
seleccione get_format (fecha, 'iso '); - '%Y-%m-%d '
seleccione get_format(fecha, ' EUR '); >
select get_format(date,'internal');-'%Y%m%d'
select get_format(datetime,'United States');-"% Y-% m-% d % h . % I . % s"
select get_format(datetime,'jis');-"% Y-% m-% d % H:% I:% s"
seleccione get_format(datetime, 'iso ');-"% Y-% m-% d % H:% I:% s"
seleccione get_format(datetime,'EUR');- "% Y-% m-% d % h. % I. % s"
select get_format(datetime,' internal '); p>
seleccione get_format(hora,' USA ');-"% h:% I:% s % p"
seleccione get_format(hora,' jis');-"% H: % I:% s"
seleccione get_format(hora, 'iso'); - "% H:% I:% s"
seleccione get_format(hora, ' EUR ') ;- '%H.%i.%s '
selecciona get_format(time,' internal ');-"% H % I % s"
get_format( de MySQL) ) Las funciones rara vez se utilizan en la práctica.
6.MySQL reconstruyó las funciones de fecha y hora: generando fecha (año, día), generando hora (hora, minuto, segundo).
Seleccione makedate(2001, 31);-'2001-01-31'
Seleccione makedate(2001, 32);-'2001-02-01 'Seleccione maketime(12 , 15, 30); -'12: 15: 30' V. Función de marca de tiempo de MySQL
1. MySQL obtiene la función de marca de tiempo actual: current_timestamp, current_timestamp().
mysql & gtselect marca de tiempo actual, marca de tiempo actual();
+ - + - +
|marca de tiempo actual|marca de tiempo actual()|
+ - + - +
| 2008-08-09 23:22:24 | 2008-08-09 23:22:24 |
+ - + - +
2.Función de conversión de MySQL (marca de tiempo de Unix, fecha):
unix _timestamp (),
unix _timestamp (fecha),
from_unixtime(unix_timestamp),
from_unixtime(unix_timestamp, format)
El siguiente es un ejemplo:
select UNIX _ timestamp();- 1218290027 p>
seleccione UNIX _ timestamp(' 2008-08-08 ');- 1218124800
seleccione UNIX _ timestamp(' 2008-08-08 12:30 :00 ');-1218169800 seleccione desde _ hora UNIX(1218290027);- '2008-08-09 21:53:47'
seleccione desde _ unixtime(1218124800);- '2008-08- 08 00:00:00'
seleccione desde _ unixtime(1218169800);-' 2008-08-08 12:30:00 ' seleccione desde _ hora UNIX(1218169800,' % Y % D % M % h:% I:% s % x '); - "8 de agosto de 2008 12:30:00 2008"
3. Conversión de marca de tiempo de MySQL, funciones de aumento y disminución:
Marca de tiempo (fecha) - la fecha de la marca de tiempo
Marca de tiempo(dt, hora) - dt + hora
timestampadd(unidad, intervalo, expresión fechahora)
marca de tiempodiff(unidad, fechahora_expr1, fechahora_expr2 ) -
Ver sección de ejemplos:
Select timestamp('2008-08-08'); - 2008- 08-08 00:00:00
Seleccione marca de tiempo (' 2008-08-08 08:00:00 ', ' 01:01:01 '); - 2008-08-08 09:01 :01
Seleccione marca de tiempo (' 2008-08 -08 08:00:00 ', ' 10 01:01 '); -2008-08-18 09:01:01 seleccione marca de tiempo (día, 1,' 2008-08-08 08:00:00 '); 2008-08-09 08:00:00
seleccione fecha _ add(' 2008-08-08 08:00:00 ', con un intervalo de 1 día - 2008-08-09 08); :00:00
La función MySQL timestampadd() es similar a date_add().
select timestampdiff(año, ' 2002-05-01 ', ' 2006 54 38+0-01-01 '); -05-01 ', ' 2006 54 38+0-01-01 '); - -485
select timestampdiff(hora, ' 2008-08-08 12:00:00 ', ' 2008- 08-08 00:00:00 '); - -12
select dateiff(' 2008-08-08 12:00:00 ', ' 2008-08-01 00:00:00 ') ;- 7
La función MySQL timestampdiff() es mucho más poderosa que la función dateiff(), dateiff() solo puede calcular el número de días entre dos fechas.
Verbo intransitivo MySQL función de conversión de zona horaria convert_tz (dt, de_tz, a_tz) seleccione convert_tz('2008-08-08 12:00', '+08:00' , '+00:00'). - 2008-08-08 04:00:00
La conversión de zona horaria también se puede lograr mediante date_add, date_sub y timestamp add.
seleccione fecha _ add(' 2008-08-08 12:00:00 ', intervalo -8 horas - 2008-08-08 04:00:00
seleccione); fecha _ sub(' 2008-08-08 12:00:00 ', intervalo 8 horas); - 2008-08-08 04:00:00
select timestampadd(hora, -8, ' 2008 -08-08 12:00:00 ');- 2008-08-08 04:00:00
Por su seguridad, abra únicamente sitios web de fuentes confiables.
Abrir web y cancelar
De:/% CE % D2 % BA % DC % B0 % AE % D5 % C5 % B2 % AE % C2 % D7/blog/item/ b68f 4826 b 1670 b 0908 f9d 04 html
.