MySQL列中的月份名称

时间:2013-03-21 10:27:50

标签: mysql

我有一个名为fee的MySQL列名。 fee内的值类似于: Jan,Feb,MarJan,Feb

...这意味着支付了1月到3月的费用(1月到2月是第2个例子)。

如何计算已支付这些费用的月数?即。对于第一个例子,我希望第二个例子得到3和2。

1 个答案:

答案 0 :(得分:1)

如果月份总是由3个字符表示,也许您可​​以使用

SELECT FLOOR((length(fee)+1)/4) FROM table_name;

我们将月份数表示为 n ,请注意逗号的数量比 n 少1,因为字符串末尾没有一个逗号。所以这个字段的长度即'费用'可以表示为3 * n +(n-1),表示为 N ,所以我们可以将1加到 N 并除以地板向下舍入以获得最接近的整数。在这种情况下可以删除。

SELECT length(fee)+1)/4 FROM table_name;

将得到正确的答案,length()是一个返回字符串长度的函数。