SELECT TO_DAYS(TO_DATE('1600-12-28','YYYY-MM-DD')) AS TD_16001228
,TO_DAYS(TO_DATE('1600-12-29','YYYY-MM-DD')) AS TD_16001229
,TO_DAYS(TO_DATE('1600-12-30','YYYY-MM-DD')) AS TD_16001230
,TO_DAYS(TO_DATE('1600-12-31','YYYY-MM-DD')) AS TD_16001231
,TO_DAYS(TO_DATE('1601-01-01','YYYY-MM-DD')) AS TD_16010101
,TO_DAYS(TO_DATE('1601-01-02','YYYY-MM-DD')) AS TD_16010102
,TO_DAYS(TO_DATE('1601-01-03','YYYY-MM-DD')) AS TD_16010103
,TO_DAYS(TO_DATE('1601-01-04','YYYY-MM-DD')) AS TD_16010104
问题貌似出在TO_DAYS函数对1601-01-01这天的处理上了,也不知道这天有啥特殊含义。
你可以用下面这个SQL查一下
SELECT TO_DAYS(TO_DATE('1600-12-28','YYYY-MM-DD')) AS TD_16001228 ,TO_DAYS(TO_DATE('1600-12-29','YYYY-MM-DD')) AS TD_16001229 ,TO_DAYS(TO_DATE('1600-12-30','YYYY-MM-DD')) AS TD_16001230 ,TO_DAYS(TO_DATE('1600-12-31','YYYY-MM-DD')) AS TD_16001231 ,TO_DAYS(TO_DATE('1601-01-01','YYYY-MM-DD')) AS TD_16010101 ,TO_DAYS(TO_DATE('1601-01-02','YYYY-MM-DD')) AS TD_16010102 ,TO_DAYS(TO_DATE('1601-01-03','YYYY-MM-DD')) AS TD_16010103 ,TO_DAYS(TO_DATE('1601-01-04','YYYY-MM-DD')) AS TD_16010104
查询结果应该与下面图里类似,1601-01-01这天的TO_DAYS结果退回了两天,与 1600-12-30 这天的值相同
