回答
UPDATE
一個更好的指標友好的方式來查詢數據的日期範圍
SELECT id, FROM_UNIXTIME(timestampfield) timestamp
FROM table1
WHERE timestampfield >= UNIX_TIMESTAMP(LAST_DAY(CURDATE()) + INTERVAL 1 DAY - INTERVAL 1 MONTH)
AND timestampfield < UNIX_TIMESTAMP(LAST_DAY(CURDATE()) + INTERVAL 1 DAY);
**注:**你不適用任何功能,您列數據,而是在條件的右側進行所有必要的計算(這是常數,並且僅在詩人執行時被評估)。通過這種方式,您可以讓MySQL受益於timestampfield
列中的索引。
原來的答覆:
SELECT id, FROM_UNIXTIME(timestampfield) timestamp
FROM table1
WHERE MONTH(FROM_UNIXTIME(timestampfield)) = MONTH(CURDATE())
AND YEAR(FROM_UNIXTIME(timestampfield)) = YEAR(CURDATE())
注:雖然這個查詢產生它有效無效,你可能對timestampfield
列的索引(ES)的正確用法正確的結果(這意味着MySQL的將被迫進行全掃描)
這裏是SQLFiddle演示
如果你想使用索引,沒有任何功能,適用於柱:
SELECT *
FROM tableX
WHERE `date` >= UNIX_TIMESTAMP((LAST_DAY(NOW())+INTERVAL 1 DAY)-INTERVAL 1 MONTH)
AND `date` < UNIX_TIMESTAMP(LAST_DAY(NOW())+INTERVAL 1 DAY) ;
使用可以在MySQL文檔中發現的功能:Date and Time functions
試試這個
SELECT * FROM table WHERE month(data) = EXTRACT(month FROM (NOW()))
以上查詢將比較只有一個月,所以你可能會得到前一年的月份記錄..我認爲正確的查詢是「==== SELECT * FROM表WHERE月(數據)= EXTRACT(月FROM(NOW()))和年數據)= EXTRACT(年FROM(NOW()))=====「 – 2015-01-05 06:23:27
使用本問題查看可否幫助您,
Query = "SELECT * FROM <table_name> WHERE MONTH(date_entered) = MONTH(CURDATE())";
我認爲在MySQL這裏是最簡單的方法,我已經嘗試過,並且運行良好,你想選擇timestampfield
在本月的行。
SELECT * FROM your_table
WHERE MONTH(timestampfield)=MONTH(CURRENT_DATE()) AND
YEAR(timestampfield)=YEAR(CURRENT_DATE());
以上將返回所有記錄的timestampfield是這個月在MySQL
SELECT 'data of your choice '
FROM 'your table'
WHERE
MONTH'datecolumn'=MONTH(CURRENT_DATE)
從數據庫替換'用適當的文字
SELECT [columns]
FROM [the_table]
WHERE MONTH([date_column]) = MONTH(CURDATE())
更換之間的文本[ ](包括[])與你的數據。
在我看來,下面的比接受的答案更具可讀性...
SELECT id, FROM_UNIXTIME(timestampfield) timestamp
FROM table1
WHERE timestampfield >= DATE_FORMAT(NOW(), '%Y-%m-01')
注意:這將從下個月選擇任何記錄,以及。這通常沒有關係,因爲沒有創建。
- 1. 只選擇與當前月份相對應的時間戳
- 2. SQL - 根據時間戳選擇月份的所有記錄
- 3. MySQL只選擇2天以前的最新記錄(時間戳)
- 4. 從使用mysql的時間戳之前2周選擇記錄
- 5. MySQL:從當前月份和前3個月返回記錄
- 6. 如何用php和mysql中的unix時間戳記錄記錄月份組。
- 7. 選擇帶時間戳的記錄
- 8. mysql選擇當前時間旁邊的記錄
- 9. 選擇框月份和月份從PHP當前月份開始
- 10. 當月和日小於當前日期時選擇記錄
- 11. 用最新時間戳選擇記錄
- 12. MySQL的時間戳選擇
- 13. 選擇MySQL的記錄與最新的時間戳
- 14. 選擇月份範圍內的記錄
- 15. 代碼在更新當前月份記錄時擦除上個月的記錄
- 16. mysql時間戳選擇較舊的記錄
- 17. Mysql unix時間戳選擇
- 18. 如何選擇帶時間戳記錄的記錄?
- 19. 如何從MySQL的時間戳找到上個月的記錄?
- 20. node-mysql通過時間戳選擇記錄
- 21. 根據ProgramStart和ProgramEnd之間的當前時間選擇記錄
- 22. mysql查詢選擇當前月份的所有行?
- 23. mysql選擇每個月的記錄數
- 24. 比較當前的時間戳與mysql存儲的時間戳
- 25. 在間隔Mysql的選擇時間戳
- 26. MySQL中相同月份/不同年份的時間戳比較
- 27. 使用實體框架按時間戳列選擇新記錄
- 28. MySQL查詢選擇當前月份錯誤
- 29. 選擇MySQL月份()爲空列
- 30. MySql選擇時間戳記作爲日期時間
重複https://stackoverflow.com/questions/4654961/mysql-only-within-the-current-month/ – 2017-06-06 01:30:46