首页 > 解决方案 > 使用 MySql 中的日期列基于月份选择行

问题描述

我有一个查询来根据日期提取一些数据,如下所示

$duplicateCheckQuery = "SELECT * FROM vtag.supervisorupdate WHERE dateAdded=?";
$stmtDupQuery = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmtDupQuery, $duplicateCheckQuery)){
    echo "Details check in supervisor table SQL statement failed";
} else {
    mysqli_stmt_bind_param($stmtDupQuery,"s", $dateToCheck);
    mysqli_stmt_execute($stmtDupQuery);
    $result = mysqli_stmt_get_result($stmtDupQuery);
    $totalOut = mysqli_fetch_array($result);          
}

此查询基于date.

但现在我想根据月份提取数据。但是我没有这样的月份列来提取数据。唯一可用的日期信息是此dateAdded列。我知道MONTH. MySql但我不确定如何使用它来过滤此dateAdded列中的数据。有人知道该怎么做吗?

编辑列中的 1 个日期样本,dateAdded如下所示

在此处输入图像描述

标签: phpmysql

解决方案


试试 MONTH 功能:

SELECT * FROM vtag.supervisorupdate WHERE MONTH(dateAdded) = 1

1 = 一月。

如果您的字段不是日期值,请将其转换为日期:

 CAST(dateAdded AS DATE) as newDate; 

或 STR_TO_DATE(dateAdded, '%Y-%d-%m') 作为 newDate

在最后:

SELECT * FROM vtag.supervisorupdate WHERE MONTH(STR_TO_DATE(dateAdded, '%Y-%d-%m')) = 1

推荐阅读