mysql 语句
查询区间
如 1月5日到2-31号
SELECT * FROM ( SELECT DATE_FORMAT( birthday, ‘%c-%d’ ) AS birthday, `name` FROM person ) AS t WHERE `birthday` BETWEEN ‘1-5’ AND ‘2-31’
年底 今年12月5号到明年月31号
SELECT * FROM ( SELECT DATE_FORMAT( birthday, ‘%c-%d’ ) AS birthday, `name` FROM person ) AS t WHERE `birthday` BETWEEN ’12-5′ AND ’12-31′ AND `birthday` BETWEEN ‘1-1’ AND ‘1-30’
TP写法
$arrWhere = array();
$i = 100; //设置今天前后三十天
$arrWhere = array();
$nowTime = date(‘Y-m-d’);
// $nowTime = date(‘Y-m-d’,strtotime(‘2020-05-01’));//如果要测试其他时间把这个注释打开
$nowYear = date(‘Y’, strtotime($nowTime)); //获取今年
if ($nowYear < date(‘Y’, strtotime(“+” . $i . ” days”, strtoTime($nowTime)))) {
//如果现在时间加上$i天后是明年了
$r = explode(‘-‘, date(‘m-d’, strtotime(“+” . $i . ” days”, strtotime($nowTime))));
$arrWhere[] = [‘birthday’, ‘between’, intval(date(‘m’, strtotime($nowTime))) . ‘-‘ . intval(date(‘d’, strtotime($nowTime))) . ‘,’ . intval(date(‘m’, strtotime($nowTime))) . ‘-‘ . intval(date(‘t’, strtotime($nowTime)))]; //本年当天到月底最后一天
$arrWhere[] = [‘birthday’, ‘between’, ‘1-1,’ . intval($r[0]) . ‘-‘ . intval($r[1])]; //明年一月一号到从当天计算起的$i天后的日期
} else {
//今年
$l = explode(‘-‘, date(‘m-d’, strtotime($nowTime)));
$r = explode(‘-‘, date(‘m-d’, strtotime(“+” . $i . ” days”, strtotime($nowTime))));
$arrWhere[] = [‘birthday’, ‘between’, intval($l[0]) . ‘-‘ . intval($l[1]) . ‘,’ . intval($r[0]) . ‘-‘ . intval($r[1])];
}
$a[‘verification’] = Db::table(“( SELECT DATE_FORMAT( birthday, ‘%c-%d’ ) AS birthday, `name` FROM person ) AS t “)
->whereOr($arrWhere)
->select();
halt($a);
声明:
本文采用
BY-NC-SA
协议进行授权,如无注明均为原创,转载请注明转自
一颗大萝北
本文地址: tp5x-6x 通过mysql 查询区间/当天至N天内的生日,年底区间
本文地址: tp5x-6x 通过mysql 查询区间/当天至N天内的生日,年底区间