php mysql使用参数选择年份

omvjsjqw  于 2022-10-31  发布在  Mysql
关注(0)|答案(1)|浏览(108)

正在努力处理以下代码,该代码不起作用($ThisYear参数)

$ThisYear = date("Y"); 
$ThisYear = strtotime($ThisYear);
$sql2 = 'SELECT 
            distinct 
            DATE_FORMAT(TransDate, "%M %Y") as MonthYear
            , DATE_FORMAT(TransDate, "%Y") as TransYear
            , DATE_FORMAT(TransDate, "%m") as TransMonth 
        from Leave 
        where YEAR(TransDate) =**"$ThisYear"**
        group by DATE_FORMAT(TransDate, "%M %Y") 
        order BY YEAR(TransDate), MONTH(TransDate) desc';

与此相反的是,

$ThisYear = date("Y"); 
$sql2 = 'SELECT 
            distinct 
            DATE_FORMAT(TransDate, "%M %Y") as MonthYear
            , DATE_FORMAT(TransDate, "%Y") as TransYear
            , DATE_FORMAT(TransDate, "%m") as TransMonth 
        from Leave 
        where YEAR(TransDate) =**2022**
        group by DATE_FORMAT(TransDate, "%M %Y") 
        order BY YEAR(TransDate), MONTH(TransDate) desc';
6qftjkof

6qftjkof1#

根据PHP文档,strtotime()将任何英文文本日期时间描述解析为Unix时间戳
依次为:

  • 您的变量已转换为数字(1666484520 Unix时间戳表示2022)。
  • 服务器将年份数与变量1666484520进行了比较。

这是正确的查询和变量。

$ThisYear = date("Y"); 
$sql2 = 'SELECT 
            distinct 
            DATE_FORMAT(TransDate, "%M %Y") as MonthYear
            , DATE_FORMAT(TransDate, "%Y") as TransYear
            , DATE_FORMAT(TransDate, "%m") as TransMonth 
        from Leave 
        where YEAR(TransDate) = $ThisYear 
        group by DATE_FORMAT(TransDate, "%M %Y") 
        order BY YEAR(TransDate), MONTH(TransDate) desc';

相关问题