gpt4 book ai didi

特定时间段的SQL查询

转载 作者:行者123 更新时间:2023-11-29 14:03:41 25 4
gpt4 key购买 nike

我是 SQL 的新手,想运行查询以获取收入从 Sep-16 到 Mar-17。我正在尝试编写这样的查询:

SELECT revenue 
FROM myapp_financialdata
WHERE financial_year = 2016
AND financial_month = 9
AND financial_year = 2017
AND financial_month = 3

我知道我完全做错了。谁能帮我做一些查询,我不仅可以在上述期间动态使用,而且还可以动态使用 from Jan-17 to Jun-17 之类的查询?

更新:

表格截图如下:

enter image description here

最佳答案

正如其他人所建议的,通常的答案是使用 BETWEEN 运算符——postgresql 对日期和时间的支持非常全面,并且适用于大多数情况。

该查询类似于:

SELECT revenue FROM myapp_financialdata
WHERE financialdate BETWEEN '2016-09-01' AND '2017-03-01';

并将返回与这些日期匹配的所有行。如果您更愿意获得一个数字(例如,总收入总和),那么您可以使用 SELECT sum(revenue) FROM ...

但如果您的表格确实将年份和月份保留在不同的列中,那就更复杂了。

如果两个日期都在同一年,则非常简单:

SELECT sum(revenue) FROM myapp_financialdata
WHERE
financial_year = 2017
AND (financial_month BETWEEN 1 AND 6);

这为您提供了 2017 年 1 月至 6 月的所有信息。

如果时间跨度两年,它看起来像:

SELECT sum(revenue) from myapp_financialdata
WHERE
(financial_year = 2016 AND
financial_month >= 9)
OR
(financial_year = 2017 AND
financial_month <= 3);

如您所见,这比只有一个 date 列时要复杂得多。如果你想跨越几年,它会变得有点复杂:

SELECT sum(revenue) from myapp_financialdata
WHERE
(financial_year = 2012 AND
financial_month >= 4)
OR
(financial_year BETWEEN 2013 AND 2016)
OR
(financial_year = 2017 AND
financial_month <= 6);

这获取了 2012 年 4 月至 2017 年 6 月的总收入。

希望对您有所帮助。

关于特定时间段的SQL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50120943/

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