【问题标题】:SQL Query to select data based on year and monthSQL查询根据年月选择数据
【发布时间】:2018-06-07 04:28:20
【问题描述】:

我正在编写一个电子商务应用程序并编写一个脚本来根据年/月跟踪商品的销售情况。

我在这里使用此查询从表中获取不同的年月日期。

SELECT DISTINCT CONCAT(YEAR(date),'-',MONTH(date)) FROM product_purchases WHERE product_id = 1

这会给我这样的输出

2017-11
2017-12

我接下来要完成的是选择与该年份和月份匹配的数据,例如 2017-11。

我试过这个返回 0 行的查询

SELECT * FROM product_purchases WHERE DATE(date) = '2017-12'

这样做的正确方法是什么?

【问题讨论】:

  • 您在某个月份需要它吗?

标签: php mysql database datetime


【解决方案1】:

用这个替换你的 where 声明

CONCAT(YEAR(date),'-',MONTH(date)) = '2017-12'.

SELECT * FROM product_purchases WHERE CONCAT(YEAR(date),'-',MONTH(date)) = '2017-12'

你最终可以做到这一点。

Select * from (SELECT DISTINCT CONCAT(YEAR(date),'-',MONTH(date)) as NewDate,Product_Id,
Product_Name FROM product_purchases WHERE product_id = 1) where NewDate='2017-12'

【讨论】:

    【解决方案2】:

    要查找某个月份的记录,请将 where 子句更新为:

    where CONCAT(YEAR(date),'-',MONTH(date)) = '2017-12'

    【讨论】:

      【解决方案3】:

      DATE(date) 将生成完整的日期格式,不等同于“2017-12”。试试这个:

      WHERE CONCAT(YEAR(date),'-',MONTH(date))  = '2017-12'
      

      或者这个:

      WHERE YEAR(date) = 2017 AND MONTH(date) = 12
      

      【讨论】:

        【解决方案4】:

        这对你有帮助

        WHERE YEAR(date) = 2017 AND MONTH(date) = 12
        

        【讨论】:

          【解决方案5】:

          当然,您的查询返回 0 行。问题与你的情况有关。 应该是:

          SELECT * FROM product_purchases WHERE YEAR(date) = '2017' AND MONTH(date) = '12'
          

          【讨论】:

            【解决方案6】:

            如果您只想按年份和月份过滤数据,请在日期列上使用date_format 以匹配所需的年份和月份。

            示例

            where date_format( date_column, '%Y-%m' ) = '2017-12'
            

            如果要按年和月汇总数据,请在格式上使用group by

            示例

            group by date_format( date_column, '%Y-%m' )
            

            【讨论】:

              【解决方案7】:

              SELECT * FROM oc_customer WHERE MONTH(date_added) = 1 AND YEAR(date_added) = 2016

              【讨论】:

                猜你喜欢
                • 2018-01-23
                • 2017-01-08
                • 1970-01-01
                • 1970-01-01
                • 2016-03-22
                • 1970-01-01
                • 2012-02-24
                • 2018-03-02
                • 1970-01-01
                相关资源
                最近更新 更多