按月份列分区 ,每个自然月一个分片,格式 between操作解析的范例。

<tableRule name="sharding-by-month">
	 <rule>
		 <columns>create_time</columns>
		 <algorithm>sharding-by-month</algorithm>
	 </rule>
 </tableRule>
<function name="sharding-by-month" class="org.opencloudb.route.function.PartitionByMonth">
	 <property name="dateFormat">yyyy-MM-dd</property>
	 <property name="sBeginDate">2014-01-01</property>
 </function>

配置说明:

columns: 分片字段,字符串类型
dateFormat : 日期字符串格式
sBeginDate : 开始日期

 PartitionByMonth partition = new PartitionByMonth();
 partition.setDateFormat("yyyy-MM-dd");
 partition.setsBeginDate("2014-01-01");
 partition.init();
 Assert.assertEquals(true, 0 == partition.calculate("2014-01-01"));
 Assert.assertEquals(true, 0 == partition.calculate("2014-01-10"));
 Assert.assertEquals(true, 0 == partition.calculate("2014-01-31"));
 Assert.assertEquals(true, 1 == partition.calculate("2014-02-01"));
 Assert.assertEquals(true, 1 == partition.calculate("2014-02-28"));
 Assert.assertEquals(true, 2 == partition.calculate("2014-03-1"));
 Assert.assertEquals(true, 11 == partition.calculate("2014-12-31"));
 Assert.assertEquals(true, 12 == partition.calculate("2015-01-31"));
 Assert.assertEquals(true, 23 == partition.calculate("2015-12-31"));