mysql - 如何在sql中的查询之间添加一个月的第一天和最后一天?
问题描述
我有一个这样的查询。
SELECT IFNULL(SUM(price),0) as total FROM table1
WHERE table1.id= 33 AND start_time BETWEEN '2019-09-1' AND '2019-09-11'
这工作正常。现在我想要SUM
一个月的数据,所以我尝试使用该between
功能并获取该月的第一天和最后一天。
SELECT IFNULL(SUM(price),0) as total FROM table1
WHERE table1.id = 33 AND start_time BETWEEN (SELECT DATEADD(month, DATEDIFF(month,
'2019-09-15'), 0) AND '2019-09-11'
我用了这个参考
解决方案
您可以在last_day()
没有任何参数的情况下获取函数来获取月份的最后一天,以及date_format(@mydate, '%Y-%m-01')
获取月份的第一天。所以,使用:
set @mydate='2019-09-15';
select ifnull(sum(price),0) as total
from table1
where id = 33
and start_time between date_format(@mydate, '%Y-%m-01') and last_day(@mydate);
推荐阅读
- authentication - 获取 Android 登录表单 AspNetCore Identity 3.1 的令牌
- django-crispy-forms - 计算字段以清晰的形式呈现
- java - 如何从连接中获取实体和表
- python - 类是字符串时的 XGBoost
- maven - 在 intellij 的 Maven 项目中包含 springboot 时出错
- python - 为什么来自 scapy 模块的 HTTPRequest 在数据包嗅探器程序代码中不起作用?
- java - 如何从响应正文解析嵌套的 JSON 并使用 Reassured JsonPath 添加到列表
- rich-text-editor - 使用退格按钮在富文本编辑器中删除图像会删除错误的 HTML 元素
- python - 在 pandas 中为 Dataframe 添加标题
- python - 在 python 中托管 OCX 控件