mysql mos login_MySQL 中常用的函数

一、DATE_FORMAT()

需求:按照日期月份统计数据,但数据库存储的格式是 '2020-10-01 10:20:45' ,因此需要格式化日期

语法:

DATE_FORMAT(date,format)

第一个参数:指定的日期,第二个参数:需要获取的格式

格式符

说明

%a

工作日的缩写名称  (Sun..Sat)

%b

月份的缩写名称  (Jan..Dec)

%c

月份,数字形式(0..12)

%D

带有英语后缀的该月日期  (0th, 1st, 2nd, 3rd, ...)

%d

该月日期, 数字形式 (00..31)

%e

该月日期, 数字形式(0..31)

%f

微秒 (000000..999999)

%H

小时(00..23)

%h

小时(01..12)

%I

小时 (01..12)

%i

分钟,数字形式 (00..59)

%j

一年中的第几天 (001..366)

%k

小时 (0..23)

%l(小写L)

小时 (1..12)

%M

月份名称 (January..December)

%m

月份, 数字形式 (00..12)

%p

上午(AM)或下午( PM)

%r

获得时间 ,例如 (10: 11: 43 AM)

%S

秒 (00..59)

%s

秒 (00..59)

%T

时间 , 例如 (10:11:43   不加AM或PM)

%U

周 (00..53), 其中周日为每周的第一天

%u

周 (00..53), 其中周一为每周的第一天

%V

周 (01..53), 其中周日为每周的第一天 ; 和 %X同时使用

%v

周 (01..53), 其中周一为每周的第一天 ; 和 %x同时使用

%W

工作日名称 (周日..周六)

%w

一周中的每日 (0=周日..6=周六)

%X

该周的年份,其中周日为每周的第一天, 数字形式,4位数;和%V同时使用

%x

该周的年份,其中周一为每周的第一天, 数字形式,4位数;和%v同时使用

%Y

年份, 数字形式,4位数

%y

年份, 数字形式 (2位数)

%%

‘%’文字字符

此外,DATE_FORMAT() 函数还可以将指定的格式组合起来写

比如:

SELECT DATE_FORMAT('2019-03-09 10:18:37','%Y-%m-%d')

返回:2019-03-09

SELECT DATE_FORMAT('2019-03-09 10:18:37','%Y年%m月%d日')

返回:2019年03月09日

例如:获取日期的月份

mysql mos login_MySQL 中常用的函数_第1张图片

select DATE_FORMAT(createTime,'%m') from user

mysql mos login_MySQL 中常用的函数_第2张图片

1.查询某年某月某日的数据(主语字符区分大小写)

select

*

fromt_empWHEREDATE_FORMAT(birthday,'%Y-%m-%d' ) = '2020-11-02';

参考:

二、concat()

在执行模糊查询的SQL 语句中会用到 ‘%’ 拼接,如果是字符串可能会引入 SQL 注入,使用占位符则需要将注入的值与 '%' 拼接 ,用法如下

SELECT * FROM USER WHERE NAME LIKE concat( '%', '张', '%' )

三、TO_DAYS()

e2bbaf5e9b0e7b1abf401a6cba5f79f8.png

1.查询今天过生日的人(今天2020-11-04)

SELECT

*

FROMt_empWHERETO_DAYS( birthday )= TO_DAYS( CURDATE( ) )

2.查询昨天过生日的人(如果要包含今天改为小于等于)

SELECT

*

FROMt_empWHERETO_DAYS(CURDATE())- TO_DAYS(birthday) = 1

四、DATE_SUB()

1.查询最近7天的数据(包含今天)

SELECT

*

FROMt_empWHEREbirthday> DATE_SUB( CURDATE(), INTERVAL 7 DAY )

五、year / month

1.查询今年的数据

select

*

fromt_empWHERE

YEAR(birthday) = year(CURDATE());

2.查询某个月份的数据(只考虑月份)

select

*

fromt_empWHERE

MONTH(birthday) = 11;

六、quarter()

1.查询本季度的数据

select

*

fromt_empWHEREQUARTER(birthday)= QUARTER(CURDATE())

2.查询上季度的数据

select

*

fromt_empWHEREQUARTER(CURDATE())- QUARTER(birthday) =1

你可能感兴趣的:(mysql,mos,login)