我有一個包含year(YEAR(4)
)和month(TINYINT
)列的mysql表。選擇一個範圍內的所有記錄的最佳方式是什麼,例如2009-10 .. 2010-02?在mysql中使用年份和月份字段檢索範圍內的記錄
1
A
回答
3
這裏是一個廣義的解決方案:
Select...
From ...
Where (Year = <StartYear> And Month >= <StartMonth>)
Or (Year > <StartYear> And Year < <EndYear>)
Or (Year = <EndYear> And Month <= <EndMonth>)
2
用途:
WHERE (year = 2009 AND month >= 10)
OR (year = 2010 AND month <= 2)
...或者,使用UNION ALL:
SELECT t.*
FROM TABLE t
WHERE year = 2009 AND month >= 10
UNION ALL
SELECT t.*
FROM TABLE t
WHERE year = 2010 AND month <= 2
UNION ALL
比UNION
快,但不會刪除重複。
1
你可能要考慮爲2010年2月創建一個名爲year_month
另一列存儲的日期在YYYYMM
格式,如201002
請務必在其上創建一個索引,並且你還可以創建兩個觸發器自動更新列在INSERT和ON UPDATE上。
那麼你就可以使用:
WHERE year_month BETWEEN 200710 AND 201002
這將使用索引上year_month
。
1
相關問題
- 1. 在Rails3中檢索記錄的created_by字段以傳遞給月份和年份?
- 2. 檢查日期落在月份和年份範圍內
- 3. 使用年份和月份字段選擇記錄 - SQL Server
- 4. 在Oracle中的特定範圍內選擇月份和年份
- 5. 選擇月份範圍內的記錄
- 6. 獲取特定月份和年份的日期範圍內的所有記錄
- 7. 檢查日期範圍只月份和年份在Python
- 8. 填寫日期範圍內的月份和年份?
- 9. 嘗試使用Moment得到月份和年份範圍
- 10. MYSQL在特定月份和年份之前獲取記錄
- 11. 如何在JavaScript中使用兩年的時間範圍內的月份範圍
- 12. 在年份和月份中獲取數據庫中的記錄
- 13. 從日期字符串中檢索年份和月份
- 14. MySQL。選擇年份範圍
- 15. MySQL中按年份和月份分組
- 16. 在cakephp中檢索基於年份和月份的數據
- 17. 使用PHP,如何檢索匹配創建年份和月份
- 18. 查找日期範圍一週的特定月份和年份
- 19. MySQL在特定月份,年份之間獲取記錄
- 20. 日期範圍查詢忽略月份年份結束和年份開始
- 21. Mysql月份和年份的數據
- 22. 如何從sql數據庫檢索記錄匹配memberID,月份和年份
- 23. mysql按月份和年份作爲單獨的字段進行搜索
- 24. 檢索基於特定月份在MySQL中的所有記錄
- 25. 每個記錄在特定年份和月份的累計值
- 26. 選擇月份和年份範圍(不含天)Android
- 27. Ruby:按年份和月份分組日期範圍
- 28. 在mysql中選擇月份日年份?
- 29. EXCEL:更改月份範圍內到月份範圍內發生的日期
- 30. 使用Bootstrap Datepicker選擇月份日期範圍和月份
但是如果從2007年10月到2010年2月呢?你不能只替換日期。 – 2010-02-28 01:02:52
@Daniel Vassallo:我會將這些值存儲爲DATETIME,這樣可以緩解您提出的問題的複雜性。如果需要,我會創建一個視圖來突破日/月/年。 – 2010-02-28 01:10:39
@OMG:是的,DATETIME會很理想,但我認爲OP沒有DAY值。只是月和年。 – 2010-02-28 01:13:55