sql语句查询指定月份数据

要求:查询出emp表中1981年2月份入职的员工

emp表

image.png

常用的两种方式:

1.YEAR查询年,MONTH查询月

SELECT
    *
FROM
    emp
WHERE
    YEAR(HIREDATE)='1981' AND MONTH(HIREDATE)='2'

2.date_format (使用更多)

SELECT 
    *
FROM
    emp
WHERE
    DATE_FORMAT(hiredate,'%Y-%m') = '1981-02'

第二种方式,需要注意的是日期格式一定要正确

例如:

DATE_FORMAT(hiredate,'%Y-%m') = '1981-2'

是无法查询到数据的,因为 %m 对应的月份格式就是: 01,02,03...12.

如果换成

DATE_FORMAT(hiredate,'%Y-%c') = '1981-2'

就能查询到数据。

** MySQL 日期格式

%Y     ​代表四位年份    ​%y    ​代表两位年份

%m    ​代表月格式(01,02,03...12)    ​%c    ​代表月格式(1,2,3...12)

%d    ​代表日

%H    ​代表24小时制    ​%h    ​代表12小时制

%i    ​代表分钟(00,-01,02...59)

%S或%s    ​代表秒(00,01,02...59)

原文地址:https://www.cnblogs.com/jr-xiaojian/p/12327859.html