用 PHP 执行 SQL 语法找出数据库中,资料时间等于上个月的所有资料,有两种简单的作法,分别是用 PHP 字符串带入 SQL 语法中以及利用 MySQL 的 MONTH()、YEAR() 及 now() 函数来处理,假设我们现在有一个 table 资料表,内容如下:
id | name | date |
1 | Nick | 2022-05-30 |
2 | Peter | 2022-04-25 |
3 | Michelle | 2022-04-18 |
4 | Bill | 2022-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)
打赏
微信扫一扫
![微信扫一扫](https://www.gameducky.com/wp-content/uploads/2021/12/2021122203132290.jpg)