Mysql 获取时间的部分函数记录

mysql获取 日期时间 的函数

mysql 日期时间函数 描述
NOW([fps]) / CURRENT_TIMESTAMP([fps]) / LOCALTIMESTAMP(fps) / LOCALTIME([fps]) 返回当前的日期和时间(datetime),(参数 fps 可选,默认为2,秒的精度,取值 [0,6]
CURDATE() / CURRENT_DATE() 返回当前日期(date),只包含年月日,默认格式: YYYY-MM-DD
CURTIME([fps]) / CURRENT_TIME([fps]) 返回当前时间(time),只包含 时分秒(参数 fps 可选,默认为2,秒的精度,取值 [0,6]),默认格式:YYYY-MM-DD HH:MM:SS
UNIX_TIMESTAMP(date) 返回当前日期 date 的 UNIX 时间戳
FROM_UNIXTIME 返回 UNIX 时间戳的日期值
MONTHNAME(date) 返回日期 date 的月份 的英文名称
SELECT DAYNAME(NOW()) 返回日期 date 的 星期几 的英文名称
DATE_FORMAT(date, fmt) 返回字符串fmt格式化后的日期 date 值
DATE_ADD(date, INTERVAL expr unit) 返回给一个日期/时间date 加上一个时间间隔 expr 之后的值。
DATE_SUB(date, INTERVAL expr unit) 返回给一个日期/时间date 减去一个时间间隔 expr 之后的值。
DATEDIFF(expr1, expr1) 返回起始时间 expr1 和结束时间 expr2 之间的间隔天数
TIMEDIFF(expr1, expr2) 返回两个日期(时间) date 相差的天数(expr1 - expr2)

函数名 描述
YEAR(expr) 返回指定日期时间的 年份 部分(格式yyyy),案例:SELECT YEAR(NOW()),返回当前时间的年份
MONTH(expr) 返回指定日期时间的 月份 部分
DAY(expr) 返回指定日期时间的 **日期 ** 部分
HOUR(expr) 返回指定日期时间的 小时 部分
MINUTE(expr) 返回指定日期时间的 分钟 部分
SECOND(expr) 返回指定日期时间的 部分
MICROSECOND(expr) 返回指定日期时间的 微秒 部分
QUARTER(expr) 返回指定日期时间的 季度 部分
WEEK(expr) 返回指定日期时间的 部分
DATE(expr) 返回指定日期时间的 日期 date 部分
TIME(expr) 返回指定日期时间的 时间部分 部分

1. 获得当前日期时间(datetime) 的主要函数:NOW()SYSDATE()

函数 NOW()SYSDATE() 的区别:

NOW()SYSDATE() 都表示当前时间,但是使用上有一点点区别。
NOW() 取的是语句开始执行的时间SYSDATE() 取的是动态的实时时间
这是因为 NOW() 取自mysql的一个变量 TIMESTAMP ,而这个变量在语句开始执行的时候就设定好了,因此在整个语句执行过程中都不会变化。
比如下面这个SQL查询:

SELECT
	NOW(),SYSDATE(),
	SLEEP(2) AS '等待2s',
	NOW(),SYSDATE()

查询结果:
在这里插入图片描述
发现两次查询 NOW() 的时间是一样的,但是两次 SYSDATE() 的时间不同,是动态的实时时间。
我们一般使用 NOW() 而不用 SYSDATE() 函数

还有三个获取时间的函数,效果跟 NOW() 的一样

LOCALTIME()
LOCALTIMESTAMP()
CURRENT_TIMESTAMP()

NOW([fps]) 函数

返回服务器的当前日期和时间(datetime对象)
参数 fsp 可选,用于指定小数秒的精度,不写默认显示2位(取值范围 [0,6]

NOW() 函数默认返回两种格式:YYYY-MM-DD HH:MM:SSYYYYMMDDHHMMSS

NOW():返回 YYYY-MM-DD HH:MM:SS格式
NOW(): 返回 YYYYMMDDHHMMSS 格式

select NOW(), NOW()+0, NOW(0), NOW(6)

运行:
在这里插入图片描述


2. 日期时间的运算函数(加减时间间隔)

DATE_ADD(date, INTERVAL expr type)DATE_SUB(date, INTERVAL expr type)分别是对时间进行增加/减少之后的值。

INTERVAL 是关键字,表示间隔的类型
expr 是表达式,也就是间隔数值
unit 是时间间隔的单位,主要有以下取值单位(年月日时分秒等)

unit的取值

unit 时间间隔单位取值 描述
YEAR
MONTH
DAY
HOUR
MINUTE
SECOND
MICROSECOND 毫秒
QUARTER 季节(3个月)
WEEK
YEAR_MONTH 年和月
DAY_HOUR 日和时
DAY_MINUTE 日和分
DAY_ SECOND 日和秒
HOUR_MINUTE 时和分
HOUR_SECOND 时和秒
MINUTE_SECOND 分和秒
-- 给当前时间加三小时
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)

在这里插入图片描述

函数EXTRACT(unit FROM datetime),从日期时间中抽取出某个单独的部分或者组合部分。

比如:

-- 从当前的日期时间中,抽取出 时分 组合部分
select EXTRACT(HOUR_MINUTE FROM NOW())

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_40542534/article/details/114887455
今日推荐