MySQL SELECT WHERE date 等于上个月的条件判断写法

用 PHP 执行 SQL 语法找出数据库中,资料时间等于上个月的所有资料,有两种简单的作法,分别是用 PHP 字符串带入 SQL 语法中以及利用 MySQL 的 MONTH()、YEAR() 及 now() 函数来处理,假设我们现在有一个 table 资料表,内容如下:

idnamedate
1Nick2022-05-30
2Peter2022-04-25
3Michelle2022-04-18
4Bill2022-03-12

接着我们要用PHP执行SELECT查询数据库中date等于上月的数据,假设本月是2022年5月。

用PHP变量

$LastMonth=date("Y-m",strtotime("last month"));
SELECT name FROM table WHERE `date` LIKE '%$LastMonth%';

用PHP变量的做法比较简单,首先设定一个变量$LastMonth并用date函数将日期设定为上个月,以示例来说就是2022-04,然后再把这个变量带入SQL语法的WHERE条件子句中,这样就能查询出Peter及Michelle这两笔资料。

用 MySQL 函数

SELECT name FROM `table` WHERE YEAR(date) = YEAR(CURRENT_DATE - INTERVAL 1 MONTH) AND MONTH(date) = MONTH(CURRENT_DATE - INTERVAL 1 MONTH);

用 MySQL 函数的优点是不用设定 PHP 变量,虽然乍看之下有点复杂,但其实也不难,简单来说就是用 MySQL 的 YEAR 函数,判断数据表中 date 的年份等于上个月的资料,同时再用 MONTH 函数判断月份等于上个月的资料,这里用了 AND 表示两个条件都要满足,这就会查询出年分与月份都刚好等于上个月的资料,也就是 Peter 及 Michelle 这两笔资料。

(0)
打赏 微信扫一扫 微信扫一扫

相关推荐

发表评论

登录后才能评论