MySQL日期函数

117 篇文章 0 订阅
114 篇文章 3 订阅

MySQL日期函数

1、DATE()

返回 日期。格式:YYYY-MM-DD

SELECT DATE(NOW());
> 2022-04-04

2、TIME()

返回 日期。格式:HH-mm-ss

SELECT TIME(NOW());
> 16:25:09

3、TIMESTAMP()

返回 日期时间。格式:YYYY-MM-DD HH-mm-ss

SELECT TIMESTAMP(NOW());
> 2022-04-04 16:31:12

4、NOW()、CURRENT_TIMESTAMP、CURRENT_TIMESTAMP()、SYSDATE()

select NOW(),CURRENT_TIMESTAMP,CURRENT_TIMESTAMP();
> 2022-04-04 16:40:03	2022-04-04 16:40:03	2022-04-04 16:40:03

这里需要注意前三者都是**返回语句执行开始执行的时间**,后者**SYSDATE()不同返回的是这个函数执行时候的时间**

select SLEEP(1),NOW(),CURRENT_TIMESTAMP,CURRENT_TIMESTAMP(),SYSDATE();
> 0 2022-04-04 16:42:22	2022-04-04 16:42:22	2022-04-04 16:42:22	2022-04-04 16:42:23

这里可以看到我们利用sleep(1),让sql延时了一秒得到前三者与seelp(1)的区别SYSDATE()明显比NOW()这些多一秒,所以我们可以知道 预期结果是延时前后now()函数对应的时间不变,sysdate()的时间等于之前的时间加上延时时间

5、STR_TO_DATE()

根据指定的格式,将字符串转交成对应的日期或日期类型

例1、
SELECT STR_TO_DATE('2022-04-04 22:50:17','%Y-%m-%d');
> 2022-04-04
没有时分秒时这里就忽略显示了

例2、
SELECT STR_TO_DATE('2022-04-04 22:50:17','%Y-%m-%d %H');
> 2022-04-04 22:00:00

6、DATE_FORMAT()

将日期根据指定的格式返回为对应的字符串
更多日期格式

例1、
SELECT DATE_FORMAT('2022-04-04 22:50:17','%Y-%m-%d');
> 2022-04-04

例2、
SELECT DATE_FORMAT('2022-04-04 22:50:17','%Y-%m-%d %H');
> 2022-04-04 22

7、UNIX_TIMESTAMP()

获取日期的时间戳(10位)

SELECT unix_timestamp(now());
> 1649083817

8、FROM_UNIXTIME

根据时间戳(10位)返回日期

例1、
SELECT FROM_UNIXTIME(1649087115)
> 2022-04-04 23:45:15

例2、加上第二个参数 格式化
SELECT FROM_UNIXTIME(1649087115,'%Y-%m-%s')
> 2022-04-15

9、其他日期函数

函数名

描述

样例

结果

NOW()

获取当前日期 格式’yyyy-MM-dd HH:mm:ss’

select NOW();

2022-04-04 22:50:17

CURDATE()

获取当前日期 格式’yyyy-MM-dd’

select CURDATE();

2022-04-04

CURTIME()

获取当前日期 格式’HH:mm:ss’

select CURTIME();

22:50:17

CURRENT_TIMESTAMP()

获取当前日期 格式’yyyy-MM-dd HH:mm:ss’

select CURRENT_TIMESTAMP();

2022-04-04 22:50:17

CURRENT_DATE()

获取当前日期 格式’yyyy-MM-dd’

select CURRENT_DATE();

2022-04-04

CURRENT_TIME()

获取当前日期 格式’HH:mm:ss’

select CURRENT_TIME();

22:50:17

CURRENT_TIMESTAMP

获取当前日期 格式’yyyy-MM-dd HH:mm:ss’

select CURRENT_TIMESTAMP;

2022-04-04 22:50:17

CURRENT_DATE

获取当前日期 格式’yyyy-MM-dd’

select CURRENT_DATE;

2022-04-04

CURRENT_TIME

获取当前日期 格式’HH:mm:ss’

select CURRENT_TIME;

22:50:17

SYSDATE()

获取这个函数的执行时间 格式’yyyy-MM-dd HH:mm:ss’

select SYSDATE;

2022-04-04 22:50:17

YEAR()

获取年份

select YEAR(NOW()) ;

2022

MONTH()

获取月份

select MONTH(NOW())

4

DAYOFMONTH()

获取在月份中所在的天数

select DAYOFMONTH(NOW())

4

DAYOFYEAR()

获取在年中所在的天数

select DAYOFYEAR(NOW())

94

WEEKDAY()

获取日期是星期几 (0-代表星期一、1-代表星期二)

select WEEKDAY(NOW());

0

DAYOFWEEK()

获取日期是星期几 (1-代表星期天、2-代表星期一)

select DAYOFWEEK(NOW());

2

WEEKOFYEAR()

获取日期是年中的第几周

select WEEKOFYEAR(NOW());

14

TO_DAYS()

获取从0000-00-00到日期的天数

SELECT TO_DAYS(NOW());

738614

HOUR()

获取小时

SELECT HOUR(NOW());

22

MINUTE()

获取分钟

SELECT MINUTE(NOW());

50

SECOND()

获取秒

SELECT SECOND(NOW());

17

10、日期格式

格式

描述

%Y

年,4 位

%y

年,2 位

%M

月 英文表示 January

%b

月 英文缩写表示 Apr

%m

月,数值(00-12)

%c

月,数值(0-12)

%d

月的天,数值(00-31)

%e

月的天,数值(0-31)

%j

年的天 (001-366)

%H

小时 (00-23)

%I

小时 (01-12) 0时代表12 1时代表1

%k

小时 (0-23)

%i

分钟,数值(00-59)

%S

秒(00-59)

%s

秒(00-59)

%f

微秒

%T

时间, 24-小时 (hh:mm:ss)

%r

时间,12-小时(hh:mm:ss AM 或 PM)

%p

AM 或 PM

%a

星期名缩写 例如Mon

%W

星期名 例如Monday

%w

周的天 (0=星期日, 6=星期六)

%U

周 (00-53) 星期日是一周的第一天

%u

周 (00-53) 星期一是一周的第一天

%V

周 (01-53) 星期日是一周的第一天,与 %X 使用

%v

周 (01-53) 星期一是一周的第一天,与 %x 使用

%X

年,其中的星期日是周的第一天,4 位,与 %V 使用

%x

年,其中的星期一是周的第一天,4 位,与 %v 使用

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值