mysql怎么获取年 mysql 获取年( 三 )


以下表说明了mode 参数的工作过程:
mysql SELECT WEEK('1998-02-20');
- 7
mysql SELECT WEEK('1998-02-20',0);
- 7
mysql SELECT WEEK('1998-02-20',1);
- 8
mysql SELECT WEEK('1998-12-31',1);
- 53
注意,假如有一个日期位于前一年的最后一周,若你不使用2、3、6或7作为mode 参数选择 , 则MySQL返回 0:
mysql SELECT YEAR('2000-01-01'), WEEK('2000-01-01',0);
- 2000, 0
有人或许会提出意见,认为 MySQL 对于WEEK() 函数应该返回 52  , 原因是给定的日期实际上发生在1999年的第52周 。mysql怎么获取年我们决定返回0作为代替的原因是我们希望该函数能返回“给定年份的星期数” 。这使得WEEK() 函数在同其它从日期中抽取日期部分的函数结合时的使用更加可靠 。
假如你更希望所计算的关于年份的结果包括给定日期所在周的第一天,则应使用 0、2、5或 7 作为mode参数选择 。
mysql SELECT WEEK('2000-01-01',2);
- 52
作为选择,可使用 YEARWEEK()函数:
mysql SELECT YEARWEEK('2000-01-01');
- 199952
mysql SELECT MID(YEARWEEK('2000-01-01'),5,2);
- '52'
◆ WEEKDAY(date)
返回date (0 = 周一, 1 = 周二, ... 6 = 周日)对应的工作日索引weekday index for
mysql SELECT WEEKDAY('1998-02-03 22:23:00');
- 1
mysql SELECT WEEKDAY('1997-11-05');
- 2
◆ WEEKOFYEAR(date)
将该日期的阳历周以数字形式返回,范围是从1到53 。它是一个兼容度函数,相当于WEEK(date,3) 。
mysql SELECT WEEKOFYEAR('1998-02-20');
- 8
◆ YEAR(date)
返回date 对应的年份,范围是从1000到9999 。
mysql SELECT YEAR('98-02-03');
- 1998
◆ YEARWEEK(date), YEARWEEK(date,start)
返回一个日期对应的年或周 。start参数的工作同 start参数对 WEEK()的工作相同 。结果中的年份可以和该年的第一周和最后一周对应的日期参数有所不同 。
mysql SELECT YEARWEEK('1987-01-01');
- 198653
注意 , 周数和WEEK()函数队可选参数0或 1可能会返回的(0) w有所不同,原因是此时 WEEK() 返回给定年份的语境中的周 。
mysql分别获取已有数据date中的年月日以每24小时作为一份时间(而非自然日),根据用户的配置有两种工作模式:带状模式中,用户仅定义开始日期时,从开始日期(含)开始,每份时间1个分片地无限增加下去;环状模式中,用户定义了开始日期和结束日期时,以结束日期(含)和开始日期(含)之间的时间份数作为分片总数(分片数量固定),以类似取模的方式路由到这些分片里 。
1. DBLE 启动时,读取用户在 rule.xml 配置的 sBeginDate 来确定起始时间
2. 读取用户在 rule.xml 配置的 sPartionDay 来确定每个 MySQL 分片承载多少天内的数据
3. 读取用户在 rule.xml 配置的 dateFormat 来确定分片索引的日期格式
4. 在 DBLE 的运行过程中,用户访问使用这个算法的表时 , WHERE 子句中的分片索引值(字符串),会被提取出来尝试转换成 Java 内部的时间类型
5. 然后求分片索引值与起始时间的差,除以 MySQL 分片承载的天数 , 确定所属分片
1. DBLE 启动时,读取用户在 rule.xml 配置的起始时间 sBeginDate、终止时间 sEndDate 和每个 MySQL 分片承载多少天数据 sPartionDay
2. 根据用户设置,建立起以 sBeginDate 开始 , 每 sPartionDay 天一个分片,直到 sEndDate 为止的一个环,把分片串联串联起来
3. 读取用户在 rule.xml 配置的 defaultNode
4. 在 DBLE 的运行过程中,用户访问使用这个算法的表时 , WHERE 子句中的分片索引值(字符串),会被提取出来尝试转换成 Java 内部的日期类型

推荐阅读