正文
需求上,是有個日期字符串,例如2022-07,代表著年月。數據庫中表對于這個字段存的是年月日,例如:2022-07-15。
我希望的是:獲取到2022-07-01到2022-07-31,之間的數據,條件是:2022-07
SQL
SELECT COUNT(id)FROM ${promotion}.pm_sales_report_summaryWHERE `status` = 0AND `report_month` >= DATE_FORMAT(CONCAT(#{month}, '-01'), '%Y-%m-%d')AND `report_month` <=DATE_FORMAT(DATE_SUB(DATE_ADD(CONCAT(#{month}, '-01'), INTERVAL 1 MONTH), INTERVAL 1 DAY), '%Y-%m-%d')
解釋
這是一個用于統計符合條件的記錄數量的SQL查詢語句。
該查詢從名為pm_sales_report_summary的表中選擇滿足以下條件的記錄:
status 列的值為0
report_month 列的值在給定的日期范圍內
給定的日期范圍是由兩個日期組成的,分別是:
DATE_FORMAT(CONCAT(‘2023-07’, ‘-01’), ‘%Y-%m-%d’):將’2023-07-01’格式化為’%Y-%m-%d’形式的日期。
DATE_FORMAT(DATE_SUB(DATE_ADD(CONCAT(‘2023-07’, ‘-01’), INTERVAL 1 MONTH), INTERVAL 1 DAY), ‘%Y-%m-%d’):將’2023-07-01’加上一個月并減去一天,然后格式化為’%Y-%m-%d’形式的日期。
查詢使用了COUNT函數來計算滿足條件的記錄數量,并返回該數量作為結果。
請注意,查詢中的具體表名和列名可能會因您的數據庫結構而有所不同。確保表名和列名正確,并且該查詢能夠在您的數據庫環境中執行。