我將如何生成MySQL查詢來獲取特定月份之間的行 例如月份在01/01(1月1日)和01/06( 6月1日)MySQL - 在幾個月之間(而不是一個時間戳)
0
A
回答
7
我不確定,如果你想抓取從1月到6月的所有行,只有直到6月1日的行或從1月到5月的所有行。你可以使用例如:
[...] WHERE `date_column` BETWEEN '2012-01-01' AND '2012-06-01'
它給你所有行,包括6月1日。
使用這個來從月的整月的所有行至六月:
[...] WHERE YEAR(`date_column`)=2012 AND MONTH(`date_column`) BETWEEN 1 AND 6
(改變BETWEEN 1 AND 5
爲一月至五月)
1
您可以使用month()
,year()
和day()
函數。因此,您的查詢看起來像類似
SELECT * FROM table WHERE month(date_field) >= 1 AND month(date_field) <= 6 AND year(date_field) = 2011
DATE_FIELD應該是一個日期或日期時間字段,如果它是一個時間戳,您需要使用FROM_UNIXTIMESTAMP功能,所以它看起來像month(FROM_UNIXTIMESTAMP(timestamp_field))
2
假設列在MySQL中是正確的格式(日期/日期),你可以簡單地比較(>,<):
SELECT somecolumn
FROM sometable
WHERE datecolumn >= '2012-01-01' AND datecolumn < '2012-06-01'
希望它能幫助!
+0
哇 - 真棒響應傢伙!看起來像你所有的方法應該做的伎倆!再次感謝 – Zabs
0
SELECT
*
FROM
yourtable
WHERE
date BETWEEN '2012-01-01' AND '2012-06-01';
4
如果您生成在PHP中的SQL查詢,你可以使用BETWEEN
$date = date("Y") . '-' . date("m") . '-01';
$sql = "SELECT *
FROM `table`
WHERE `date_column` BETWEEN '$date' AND '$date' + INTERVAL 1 MONTH - INTERVAL 1 DAY";
(我減去一天排除t他下個月第一天)
或者你可以使用EXTRACT
$month = 5;
$sql = 'SELECT *
FROM `table`
WHERE EXTRACT(MONTH FROM `date_column`) = ' . $month;
相關問題
- 1. 在postgresql上的兩個時間戳之間計算幾個月?
- 2. 時間間隔Visjs條形圖而不是單個時間戳
- 3. 作爲Unixtime而不是Mysql的Mysql時間記錄時間戳
- 4. 按鈕到幾個月之間在ASP.NET
- 5. MySql秒之間的兩個時間戳之間的區別?
- 6. MySQL:如何在幾秒鐘內獲得兩個時間戳之間的差異
- 7. SQL選擇時間戳列在兩個時間戳之間
- 8. 兩個時間戳之間的區別
- 9. 計算兩個unix時間戳之間的月數
- 10. 引導日期時間選擇器添加幾個月而不是幾天
- 11. 廚師:如何在* convergeance得到一個時間戳*,而不是*編譯*時間
- 12. 打印間隔而不是時間戳
- 13. MySQL在幾個月之間獲取行數
- 14. MySQL的多個時間戳
- 15. MySQL日期在兩個時間戳之間
- 16. mysql在兩個unix時間戳之間提取數據
- 17. 如何在兩個mysql之間搜索unix時間戳?
- 18. 在兩個時間戳之間獲取記錄MySql
- 19. 第一個星期幾在一個月的時間拍下
- 20. php時間戳之間的區別?或MySQL的時間戳?
- 21. 如何確定一個時間戳在postgresql中是否在另一個時間戳之前?
- 22. 兩個時間戳之間的天數
- 23. 兩個時間戳之間的天數
- 24. 2個時間戳之間的差異
- 25. 插入一個時間戳到MySQL?
- 26. DatePicker-TimePicker到一個MySQL時間戳
- 27. 3個月前的時間戳
- 28. 如何獲得上個月特定時間的Unix時間戳
- 29. 返回一個缺省時間戳對象,而不是空
- 30. 查詢之間的mysql時間戳
警告詞:如果'date_column'是一個帶時間分量的類型,那麼'date_column BETWEEN'2012-01-01'AND'2012-06-01''不會返回,例如, date_column的值是「2012年6月1日上午12:34」。它將在2012-06-01 00:00截止。這對初學者來說似乎有點不直觀,所以我想我會特別提到它。 –
@MattGibson好點。替代方法:使用'DATE(date_column)'而不是'date_column'。 – DerVO
如果您使用的是帶有時間分量的'date_column',而不是您可以使用'MONTH(CAST(date_time AS DATE))解析該值' – CodeWhisperer