我有一個日期時間類型的列名稱startdate。我必須獲取當前月份的開始日期和結束日期之間的所有行。從2014年1月1日到2014年11月30日。mysql查詢選擇當前月份的所有行?
3
A
回答
12
select * from your_table
where year(curdate()) = year(startdate)
and month(curdate()) = month(startdate)
0
要日期間獲得的數據:
SELECT * FROM table1 WHERE dateColumn BETWEEN STR_TO_DATE('2014-11-01', '%Y-%m-%d') AND STR_TO_DATE('2014-11-30', '%Y-%m-%d');
1
最有效的方法就是做在當前日期的所有日期運算。這裏是一種方法:
select t.*
from table t
where t.date >= date(now()) - interval day(date(now()) + 1 day and
t.date < (date(now()) - interval day(date(now()) + 1 day) + interval 1 month
複雜的日期算術計算本月的第一天和下個月的第一天。這個公式允許MySQL利用日期列上的索引。
4
要找出當前月份的所有記錄與這個簡單的一行代碼中完成:
SELECT * FROM `Your_Table` WHERE MONTH(startdate) = MONTH(CURDATE());
0
對於選擇一天或一週或一個月的記錄使用此功能:
function get_records_by_period($period, $your_date) {
if ($period == 'today') {
$timeSQL = ' Date($your_date)= CURDATE()';
}
if ($period == 'week') {
$timeSQL = ' YEARWEEK($your_date)= YEARWEEK(CURDATE())';
}
if ($period == 'month') {
$timeSQL = ' Year($your_date)=Year(CURDATE()) AND Month(`your_date`)= Month(CURDATE())';
}
$Sql = "SELECT * FROM your_table WHERE ".$timeSQL
return $Result = $this->db->query($Sql)->result_array();
}
相關問題
- 1. MySQL查詢選擇當前月份錯誤
- 2. MySQL查詢月份選擇錯誤
- 3. MySQL查詢選擇月份錯誤
- 4. 選擇框月份和月份從PHP當前月份開始
- 5. 查詢選擇對應於所選月份的表的所有事件
- 6. 查詢獲得所選月份的Daywise
- 7. MySQL按月選擇在所有月份中返回NULL
- 8. 訪問查詢 - 總結當前月份
- 9. 選擇當前月份記錄時間戳列的mysql
- 10. MySQL查詢獲取2個月前的所有行
- 11. 選擇月份和月份中的所有日期的總和
- 12. 根據所選月份返回查詢
- 13. 集團按月份選擇查詢
- 14. MySQL的 - 選擇當前月/年的一天最少,不一定月份
- 15. MySQL - 選擇月份差異
- 16. 查詢當前月份的最後一天的SQL查詢?
- 17. 基於月份跨度的MySQL選擇查詢
- 18. MySQL:從日期在當前周和當前月份中選擇數據
- 19. Linq選擇行當前月份中的日期
- 20. 選擇月份的第一天到當前日期之間的所有日期
- 21. MySQL在查詢後選擇前5行
- 22. MySQL查詢返回月份
- 23. MySQL查詢選擇其中min日期和月份
- 24. 爲所有用戶查詢所選月份的所有月份的創建文章
- 25. 從當前月份中選擇行mysqli&php
- 26. MySQL - 選擇所有除非查詢
- 27. 選擇所有,並作爲MYSQL查詢
- 28. MySQL的:基於當前的月份和
- 29. 查詢選擇當月的週末和公共假期的月份和號碼
- 30. MySQL顯示所有月份
該查詢顯示其他年份的記錄,因此不是當前月份的記錄。 – iovis 2016-08-10 15:25:44
是添加'AND YEAR(startdate)= YEAR(CURDATE())' – 2016-12-07 11:07:40