gpt4 book ai didi

c# - 使用日期函数进行 mysql 查询时遇到问题

转载 作者:行者123 更新时间:2023-11-30 00:15:01 25 4
gpt4 key购买 nike

我正在尝试编写一个 mysql 查询来检索很多东西的计数。我需要知道的一件事是有多少条目的日期与查询时的当前日期相比不到 1 个月。我在堆栈溢出上进行了很多搜索,并查阅了 mysql 文档,但我所做的一切似乎都不起作用。它一直告诉我语法错误。我很茫然。

我在这个查询上做了很多事情,其他一切似乎都工作正常。

我正在使用 mysql 和 phpmyadmin 来管理我的数据库,并且我正在 C#/Visual Studio 环境中进行编程。我不知道我正在使用哪个版本的 mysql,但根据 phpmyadmin 的文档,我至少使用 5.0 版本。我查阅了mysql v5.0的文档,又查看了更新的版本,我尝试使用的sql函数没有改变。因此,这个查询不工作不应该是有原因的,但它仍然不工作。

SELECT count(*) total, ... sum(case where Date <= DATE_SUB(CURDATE(),INTERVAL 1 MONTH) then 1 else 0 end) lastmonth from table;

如果我删除上面的 sum 语句,查询的其余部分就可以工作。前面的sum语句是用逗号分隔的,我看不出语法中有什么错误,所以它一定和where语句中的sql函数有关。我从 mysql 文档页面逐字复制了该语句,仅更改了与之比较的变量名称并将间隔更改为 1 个月。

http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html

所以我完全陷入困境。需要一些帮助!谢谢。

最佳答案

我能够得到一个使用不同函数工作的解决方案。我认为问题在于 CURDATE() 不是 mysql 服务器识别的函数,但 CURRENT_DATE() 是。奇怪,mysql文档说它们是相同的。作为引用,这是我最终确定的查询:

sum(case when MONTH(Date) = MONTH(CURRENT_DATE()) then 1 else 0 end) lastmonth

在检查了我的要求后,我发现我需要一个查询来检索上个月内“日期”数量的计数,即从当月的第一天开始到当月的最后一天。

关于c# - 使用日期函数进行 mysql 查询时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23726583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com