gpt4 book ai didi

mysql - 如何创建 MySQL 查询以获得不同年份的结果?

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

这是我原来的查询:

SELECT *
FROM c60_hrd.hrclhf
WHERE hrch_clm_mth >= '1' AND hrch_clm_mth <= '2'
and hrch_clm_year >= '2017' AND hrch_clm_year <= '2017'
ORDER BY hrch_clm_no;

效果很好。但是,如果我想获得不同年份的结果,例如从 2016 年到 2017 年,它就不起作用。所以我对该查询进行了调整:

SELECT *
FROM c60_hrd.hrclhf
WHERE (hrch_clm_mth >= '12' AND hrch_clm_year >= '2016')
OR (hrch_clm_mth <= '2' and hrch_clm_year <= '2017')
ORDER BY hrch_clm_no;

获得不同年份的结果效果很好。但是,当我更改为该查询时,如果我想在同一年内查询,则会得到错误的结果。例如,从2017年的2月到3月。它显示了我不想要的从1月到3月的记录。据说它仅显示第 2 个月和第 3 个月的记录。

请帮助我。

最佳答案

尝试使用此 WHERE 子句:

WHERE STR_TO_DATE(CONCAT_WS('-', hrch_clm_year, hrch_clm_mth,'1'),'%Y-%m-%d') BETWEEN '2017-02-01' AND '2017-03-01'

如果你想单独使用年份和月份组件,那么你可以执行以下操作:

SELECT *
FROM c60_hrd.hrclhf
WHERE (hrch_clm_mth + 12*hrch_clm_year) BETWEEN (@StartMonth + 12*@StartYear) AND (@FinishMonth + 12*@FinishYear)
ORDER BY hrch_clm_no;

关于mysql - 如何创建 MySQL 查询以获得不同年份的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43690854/

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