暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8a date数据类型1582前后闰年计算规则不一致问题

VV_刺头王 2024-09-12
185

1、1582年前后闰年计算规则简述

1582年以前:闰年的计算规则为四年一闰;

1582年之后:置闰规则分为普通闰年和世纪闰年。

普通闰年:公历年份是4的倍数,但不是100的倍数,

世纪闰年:公历年份是整百数的,必须是400的倍数。

2、date数据类型1582前后闰年计算规则不一致问题

8a集群在处理date数据类型的闰年计算规则时,默认按照1582年之后的闰年计算规则进行处理,所以对于1582年之前的闰年日期例如1000-02-29,执行insert(报错:Incorrect date value:)或load(数据跳过)操作时,数据无法正常入库。

为解决该问题,引入新参数gbase_enable_julian_calendar,默认状态为OFF,参数具体说明如下:

(1)不开启此参数(OFF状态),1582年前后的闰年计算规则均按照1582年之后的计算规则,即普通闰年(公历年份是4的倍数,但不是100的倍数)和世纪闰年(公历年份是整百数的,必须是400的倍数)来判断;

(2)开启此参数后(ON状态),在1582年以前,闰年计算规则按照四年一闰计算,1582年之后,置闰规则按照普通闰年(公历年份是4的倍数,但不是100的倍数)和世纪闰年(公历年份是整百数的,必须是400的倍数)来计算。

但使用该参数时尤其是做导出操作时需要特别注意,数据入库时的参数开启状态需要与导出数据文件时的参数开启状态保持一致,即数据入库时参数为开启状态,则导出数据文件时参数也要保证开启,反之,数据入库时参数为关闭状态,导出数据文件时参数也要保证为关闭状态。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论