简体   繁体   English

Select 使用 MySql 中的日期列基于月份的行

[英]Select rows based on month by using a date column in MySql

I have a query to extract some data based on date as follows我有一个查询来根据日期提取一些数据,如下所示

$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);          
}

This query is based on date .此查询基于date

But now I want to extract data based on month.但现在我想根据月份提取数据。 But I don't have such a month column to extract data.但是我没有这样的月份列来提取数据。 The only available date information is this dateAdded column.唯一可用的日期信息是这个dateAdded列。 I know there is a MONTH function in MySql .我知道 MySql 中有一个MONTH MySql But I am not sure how to use it to filter data from this dateAdded column.但我不确定如何使用它来过滤这个dateAdded列中的数据。 Anyone know how to do it?有人知道该怎么做吗?

Edit 1 Sample of date in dateAdded column as below编辑dateAdded列中的 1 个日期样本,如下所示

在此处输入图像描述

Try MONTH function:尝试 MONTH function:

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

1 = January. 1 = 一月。

If your field is not date value, cast it to date:如果您的字段不是日期值,请将其转换为日期:

 CAST(dateAdded AS DATE) as newDate; 

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

In the last:在最后:

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

Your query should be您的查询应该是

"SELECT * FROM vtag.supervisorupdate WHERE month(dateAdded) = ?"

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM