我有一个名为fee
. 里面的值fee
是这样的:
Jan,Feb,Mar
或Jan,Feb
...这意味着支付了 1 月至 3 月的费用(第 2 个示例支付了 1 月至 2 月的费用)。
我该如何计算这些费用已支付的月数?IE。对于第一个示例,我希望在第二个示例中获得 3 和 2。
我有一个名为fee
. 里面的值fee
是这样的:
Jan,Feb,Mar
或Jan,Feb
...这意味着支付了 1 月至 3 月的费用(第 2 个示例支付了 1 月至 2 月的费用)。
我该如何计算这些费用已支付的月数?IE。对于第一个示例,我希望在第二个示例中获得 3 和 2。
如果月份总是由 3 个字符表示,也许你可以使用
SELECT FLOOR((length(fee)+1)/4) FROM table_name;
我们将月数表示为n,请注意逗号的数量比n少 1 ,因为字符串末尾没有一个。所以这个字段的长度,即“费用”可以表示为 3*n + (n-1),表示为N,所以我们可以将N加 1除以 4。地板向下四舍五入得到最接近的整数。在这种情况下可以删除。
SELECT length(fee)+1)/4 FROM table_name;
会得到正确答案,length() 是一个返回字符串长度的函数。