(本文档仅供参考)
问题现象:
在数据模型中新建的sql查询,查询时发现数据库中的数据为3405-08-22以及2999-12-31,但是数据模型中预览数据的时候发现两个数据均变成了2120-07-26,和数据库中查询到的数据不同。
问题原因:
从sql查询的结果上来看,数据库中存储的数据是没有问题的,但是模型中查询到的数据却是异常的。排查sql发现预览数据查询的数据库实际上是高速缓存库,目前高速缓存库上日期类型的数据支持的数据范围是【1970-01-01,2120-07-26】。数据库的数据支持范围是和数据库用多少字节存储一个数据有关,目前高速缓存库不支持存储到2999年的数据,故会会出现数据溢出的问题。
解决方案:
1、若该字段不做为数据层次使用,仅做为展示时,可以将该字段的类型修改为字符串类型,字符串的存储字节数更大可规避数据溢出的发生。
2、若本身业务库压力不大的情况下可以针对该资源使用直连模型,进行处理,本身sql查询时并不会出现数据溢出的问题。