我将如何生成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