MySQL,怎么查询一段时间内过生日的员工

MySQL,怎么查询一段时间内过生日的员工,第1张

查询一段时间内过生日的员工,是一个日期的比较的过程,所以只要在where 子句添加时间的筛选即可。

一、语句会用到convert()函数

CONVERT() 函数功能 :

1、把日期转换为新数据类型的通用函数。

2、用不同的格式显示日期/时间数据。

语法:CONVERT(data_type(length),data_to_be_converted,style)

data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。

可以使用的 style 值:

二、例表格:ygsrb,表结构如下

三、例如查询4月份生日的员工,也就是csrq的日期大等于4月1日,小于5月1日,那么SQL语句就可以这样写:

select * from ygsrb where

right(convert(char(10),csrq,112),4) >= '0401' and

right(convert(char(10),csrq,112),4) <  '0501' 

四、语句解析:

convert(char(10),csrq,112):将日期转换成 ‘yyyymmdd’格式

right(convert(char(10),csrq,112),4):截取转换后的时间右边4位“mmdd”

运行结果:

思路是利用到期时间和未来的10天比较,如果小于未来十天最大的日期,说明是10天内要到期了。因为你的时间格式是时间戳,所以要转换下格式

select * from dqtx where DATE_FORMAT(riqi,'%Y-%m-%d')<=DATE_add(CURDATE(),INTERVAL 10 day)

select name, birthday,

from person

where date_format(birthday,'%m%d') between

date_format(now(),'%m%d')

and

date_format(date_add(now(), interval 30 day),'%m%d')

希望你看懂,其实比较的就是月和日。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8562791.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存