簡體   English   中英

MySQL根據一年中的一個月獲取所有記錄

[英]MySQL to fetch all the records based on a month of a year

我有一張表,在該表中有一個名為date_created的列,它采用 TIME STAMP 格式2016-07-20 11:30:15並且在我獲取記錄時,我只需要在2016-07-20 11:30:15傳遞月份年份 -結束字段如 (month_no/year) 1/2016 , 2/2016 , 3/2016 ..... 所以我必須根據一個月獲取所有記錄。 那么我怎樣才能實現這個查詢。 到目前為止,我嘗試過這樣。

SELECT t.*
FROM stock t
WHERE MONTH(str_to_date(t.date_created,'%Y/%M')) = 7

由於您有一個timestamp列,因此您不必太擔心。 您需要將月份編號和年份編號放在相應的位置。

SELECT t.*
FROM stock t
WHERE MONTH(t.date_created) = ?
AND YEAR(t.date_created) = ?;

如果月 = 7 年 = 2016,那么您的查詢:

SELECT t.*
FROM stock t
WHERE MONTH(t.date_created) = 7
AND YEAR(t.date_created) = 2016;

如果您在列上創建了索引,那么我建議您不要在 where 子句中使用任何函數,這會使查詢變慢且不可搜索.. 請使用以下鏈接我為什么這么說

是什么讓 SQL 語句變得可搜索?

我建議您使用以下查詢。

SELECT t.*
FROM stock t
 WHERE t.date_created between '2016-07-01 00:00:00.000' AND '2016-07-31 00:00:00.000'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM