开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 2 天,点击查看活动详情
MySQL常用日期时间函数
now()
NOW([fsp]):返回服务器的当前日期和时间(fsp指定小数秒的精度,取值0--6)
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2023-02-14 23:26:50 |
+---------------------+
1 row in set (0.00 sec)
mysql> select now()+0;
+----------------+
| now()+0 |
+----------------+
| 20230214232656 |
+----------------+
1 row in set (0.00 sec)
mysql> select now(6);
+----------------------------+
| now(6) |
+----------------------------+
| 2023-02-14 23:27:02.587353 |
+----------------------------+
1 row in set (0.00 sec)
sysdate与now的区别
# 与now的不同点:(一般使用NOW而不用SYSDATE)
# 1、SYSDATE()返回的是函数执行时的时间
# 2、now()返回的是语句执行时的时间
mysql> select now(), sleep(2), now();
+---------------------+----------+---------------------+
| now() | sleep(2) | now() |
+---------------------+----------+---------------------+
| 2023-02-14 23:32:34 | 0 | 2023-02-14 23:32:34 |
+---------------------+----------+---------------------+
1 row in set (2.08 sec)
mysql> select sysdate(), sleep(2), sysdate();
+---------------------+----------+---------------------+
| sysdate() | sleep(2) | sysdate() |
+---------------------+----------+---------------------+
| 2023-02-14 23:32:52 | 0 | 2023-02-14 23:32:54 |
+---------------------+----------+---------------------+
1 row in set (2.08 sec)
curtime()
CURTIME([fsp]):返回当前时间,只包含时分秒(fsp指定小数秒的精度,取值0--6)
格式:
‘YYYY-MM-DD HH:MM:SS’或者‘YYYYMMDDHHMMSS’
curdate()
CURDATE():返回当前日期,只包含年月日
格式:
‘YYYY-MM-DD’或者‘YYYYMMDD’
timediff()
TIMEDIFF(expr1, expr2):返回两个日期相减(expr1 − expr2 )相差的时间数(两个参数类型必须相同)
datediff()
DATEDIFF(expr1, expr2):返回两个日期相减(expr1 − expr2 )相差的天数
date_add()/date_sub()
日期时间运算函数:分别为给定的日期date加上(add)或减去(sub)一个时间间隔值expr
格式:
DATE_ADD(date, INTERVAL expr unit);
DATE_SUB(date, INTERVAL expr unit);
interval是间隔类型关键字
expr是一个表达式,对应后面的类型
unit是时间间隔的单位(间隔类型)(20个),如下:
HOUR 小时
MINUTE 分
SECOND 秒
MICROSECOND 毫秒
YEAR 年
MONTH 月
DAY 日
WEEK 周
QUARTER 季
YEAR_MONTH 年和月
DAY_HOUR 日和小时
DAY_MINUTE 日和分钟
DAY_ SECOND 日和秒
HOUR_MINUTE 小时和分
HOUR_SECOND 小时和秒
MINUTE_SECOND 分钟和秒
选取日期时间的各个部分
选取日期时间的各个部分:日期、时间、年、季度、月、日、小时、分钟、秒、微秒(常用)
SELECT now(),date(now()); -- 日期
SELECT now(),time(now()); -- 时间
SELECT now(),year(now()); -- 年
SELECT now(),quarter(now()); -- 季度
SELECT now(),month(now()); -- 月
SELECT now(),week(now()); -- 周
SELECT now(),day(now()); -- 日
SELECT now(),hour(now()); -- 小时
SELECT now(),minute(now()); -- 分钟
SELECT now(),second(now()); -- 秒
SELECT now(),microsecond(now()); -- 微秒
EXTRACT(unit FROM date):从日期中抽取出某个单独的部分或组合
SELECT now(),extract(YEAR FROM now()); -- 年
SELECT now(),extract(QUARTER FROM now()); -- 季度
SELECT now(),extract(MONTH FROM now()); -- 月
SELECT now(),extract(WEEK FROM now()); -- 周
SELECT now(),extract(DAY FROM now()); -- 日
SELECT now(),extract(HOUR FROM now()); -- 小时
SELECT now(),extract(MINUTE FROM now()); -- 分钟
SELECT now(),extract(SECOND FROM now()); -- 秒
SELECT now(),extract(YEAR_MONTH FROM now()); -- 年月
SELECT now(),extract(HOUR_MINUTE FROM now()); -- 时分
个性化显示时间日期
dayofweek(date)
dayofmonth(date)
dayofyear(date)
-- 分别返回日期在一周、一月、一年中是第几天
dayname()
monthname()
-- 分别返回日期的星期和月份名称
-- 名称是中文or英文的由系统变量lc_time_names控制(默认值是'en_US')
show variables like 'lc_time_names';
set lc_time_names='zh_CN';
MySQL报2003错误
数据库登录时报错:2003: Can't connect to MYSQL server on 'localhost'(0);
方法1:启动mysql服务
方法2:可能是没有将mysql的bin目录添加到环境亦是的PATH,添加后重新尝试一遍