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

本文介绍MySQL中的日期时间函数,包括获取当前日期时间、日期时间的加减运算等实用操作。详细解释了NOW()和SYSDATE()的区别,并提供了日期时间抽取、格式化的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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())

在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值