gpt4 book ai didi

mysql - 获取正确年份的sql查询

转载 作者:太空宇宙 更新时间:2023-11-03 10:54:59 24 4
gpt4 key购买 nike

我有这样的结构表

      ID    From_Year  From_Month  To_Year    To_Month    int
1 2011 4 2012 3 8
2 2012 4 2013 3 8.6
3 2013 4 2014 3 8
4 2014 4 2014 8 8
5 2014 9 2015 3 8

从这张表中提供月份和年份时,我需要从中获取正确的行对于 ex 对于

1-2012 行 id 1

5-2013 行 id 3

我有查询作为

   select * from tbl_fin where 
(
(From_month <=1 and From_Year =2014) OR
(To_month >= 1 and To_Year =2014)
)

这里 1 是月份,2014 是年份

但它不适用于 1-2014

你能推荐其他选择吗

最佳答案

你可以这样试试:

SELECT
*
FROM
tablename
WHERE
CONCAT(from_y, LPAD(from_m, 2, 0)) <= '201201' AND
CONCAT(to_y, LPAD(to_m, 2, 0)) >= '201201'

虽然效率不是很高。基本上,您将开始日期和结束日期转换为 YYYYMM 格式,然后对两者进行字符串比较。

LPAD(val, 2, 0) 确保您的 val 长度为 2 位数字,如果需要添加前导零。 CONCAT 将年份值与左侧填充的月份值连接成一个字符串。

然后您需要确保所需的日期(我从您的示例中取了 201201)介于 from 和 to 值之间。

更多关于:

LPAD

CONCAT

关于mysql - 获取正确年份的sql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21423423/

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