Función mysql para obtener fecha y hora.
Funciones de fecha y hora mysql | describir |
---|---|
NOW([fps]) / CURRENT_TIMESTAMP([fps]) / LOCALTIMESTAMP(fps) /LOCALTIME([fps]) |
Devuelve la fecha y hora actual ( datetime ), (el parámetro fps es opcional, el valor predeterminado es 2, segunda precisión, valor [0,6] ) |
CURDATE() /CURRENT_DATE() |
Devuelve la fecha actual ( fecha ), solo contiene el año, mes y día, en el formato predeterminado:YYYY-MM-DD |
CURTIME([fps]) /CURRENT_TIME([fps]) |
Devuelve la hora actual ( time ), que solo incluye horas, minutos y segundos (los parámetros fps son opcionales, el valor predeterminado es 2, la precisión de los segundos, el valor [0,6] ), formato predeterminado:YYYY-MM-DD HH:MM:SS |
UNIX_TIMESTAMP(date) |
Devuelve la marca de tiempo UNIX de la fecha actual. |
FROM_UNIXTIME |
Devuelve el valor de fecha de una marca de tiempo UNIX |
MONTHNAME(date) |
Devuelve el nombre en inglés del mes de la fecha fecha |
SELECT DAYNAME(NOW()) |
Devuelve el nombre en inglés del día de la semana de la fecha |
DATE_FORMAT(date, fmt) |
Devuelve el valor de fecha formateado por la cadena fmt |
DATE_ADD(date, INTERVAL expr unit) |
Devuelve una fecha/hora fecha más un intervalo expr. |
DATE_SUB(date, INTERVAL expr unit) |
Devuelve una fecha/hora fecha menos un intervalo expr. |
DATEDIFF(expr1, expr1) |
Devuelve el número de días entre la hora de inicio expr1 y la hora de finalización expr2 |
TIMEDIFF(expr1, expr2) |
Devuelve el número de días entre dos fechas (hora) fecha (expr1 - expr2) |
Nombre de la función | describir |
---|---|
AÑO(expr) | Devuelve la parte del año (formato yyyy ) de la fecha y hora especificadas, caso: SELECT YEAR(NOW()) , devuelve el año de la hora actual |
MES(expr) | Devuelve la parte del mes de la fecha y hora especificada |
DÍA (exp) | Devuelve la parte **fecha** de la fecha y hora especificada |
HORA(expr) | Devuelve la parte de la hora de la fecha y hora especificada |
MINUTO(expr) | Devuelve la porción de minutos de la fecha y hora especificada |
SEGUNDO(expr) | Devuelve la porción de segundos de la fecha y hora especificada |
MICROSEGUNDO(expr) | Devuelve la parte de microsegundos de la fecha y hora especificada |
TRIMESTRE(expr) | Devuelve la cuarta parte de la fecha y hora especificada |
SEMANA (exp) | Devuelve la parte de la semana de la fecha y hora especificada |
FECHA (exp) | Devuelve la parte de la fecha de la fecha y hora especificada |
TIEMPO(expr) | Devuelve la parte de la hora de la fecha y hora especificada |
1. La función principal para obtener la fecha y hora actual (fecha y hora): NOW()
ySYSDATE()
La diferencia entre funciones NOW()
y SYSDATE()
:
NOW()
AmbosSYSDATE()
representan la hora actual, pero hay una pequeña diferencia en el uso.
NOW()
Lo que se toma es el momento en que la declaración comienza a ejecutarse , ySYSDATE()
lo que se toma es el tiempo dinámico en tiempo real .
Esto se debe a queNOW()
se toma de una variable de mysqlTIMESTAMP
, y esta variable se establece cuando la declaración comienza a ejecutarse, por lo que no cambiará durante toda la ejecución de la declaración.
Por ejemplo, la siguiente consulta SQL:SELECT NOW(),SYSDATE(), SLEEP(2) AS '等待2s', NOW(),SYSDATE()
Resultado de la consulta:
se encuentra que el tiempo de las dos consultasNOW()
es el mismo, peroSYSDATE()
el tiempo de las dos veces es diferente, que es un tiempo dinámico en tiempo real.
Generalmente usamosNOW()
en lugar deSYSDATE()
la función
También hay tres funciones para obtener el tiempo, el efecto es el NOW()
mismo que el de
LOCALTIME()
LOCALTIMESTAMP()
CURRENT_TIMESTAMP()
NOW([fps])
función
Devuelve la fecha y hora actual del parámetro del servidor (objeto de fecha y hora) fsp
opcional, utilizado para especificar la precisión de fracciones de segundo, si no se escribe, mostrará 2 dígitos de forma predeterminada (rango de valores [0,6]
)
La función NOW() devuelve dos formatos por defecto: YYYY-MM-DD HH:MM:SS
oYYYYMMDDHHMMSS
NOW()
:YYYY-MM-DD HH:MM:SS
formato de retorno
NOW()
:YYYYMMDDHHMMSS
formato de retorno
select NOW(), NOW()+0, NOW(0), NOW(6)
correr:
2. Función de cálculo de fecha y hora (intervalo de tiempo de suma y resta)
DATE_ADD(date, INTERVAL expr type)
y DATE_SUB(date, INTERVAL expr type)
son los valores después de aumentar/disminuir el tiempo, respectivamente.
INTERVAL
Es una palabra clave, que indica el tipo de intervalo.
expr
Es una expresión, es decir, el valor del intervalo
unit
. Es la unidad del intervalo de tiempo. Tiene principalmente las siguientes unidades de valor (año, mes, día, hora, minuto, segundo, etc.)
El valor de la unidad
unidad de tiempo intervalo valor de la unidad | describir |
---|---|
AÑO | Año |
MES | luna |
DÍA | Día |
HORA | hora |
MINUTO | punto |
SEGUNDO | Segundo |
MICROSEGUNDO | milisegundo |
CUARTO | temporada (3 meses) |
SEMANA | semana |
AÑO MES | año y mes |
DIA_HORA | día y hora |
DÍA_MINUTO | pronóstico del tiempo |
DÍA_ SEGUNDO | día y segundo |
HORA_MINUTO | horas y minutos |
HORA_SEGUNDO | horas y segundos |
MINUTO_SEGUNDO | minutos y segundos |
-- 给当前时间加三小时
SELECT NOW(),DATE_ADD(NOW(),interval 1+2 HOUR)
-- 2021-03-18 00:00:00 加18小时18分后的时间
SELECT DATE_ADD('2021-03-18 00:00:00',interval '18:18' HOUR_MINUTE)
Función EXTRACT(unit FROM datetime)
para extraer una sola parte o una combinación de partes de una fecha y hora.
Por ejemplo:
-- 从当前的日期时间中,抽取出 时分 组合部分
select EXTRACT(HOUR_MINUTE FROM NOW())