Fix 24:00:00 rounding of dates with negative years.

[forum:/info/2026-10-17T12:57:32Z|Forum post 2026-10-17T12:57:32Z]

FossilOrigin-Name: 91515aa82e05f32db4b5d126d762d730cf424735edc4ef59a696ad581f4ca1ab
This commit is contained in:
drh committed 2026-10-17 13:23:07 +00:00
1 parent 94852686fe
commit 3bce1260e7
4 files changed
+12 -9

No files matched your search

+7 -7
View File
@@ -1,5 +1,5 @@
C Merge\srecent\sbranch-3.54\sfixes\sinto\strunk.
D 2026-10-17T12:10:02.088
C Fix\s24:00:00\srounding\sof\sdates\swith\snegative\syears.\n[forum:/info/2026-10-17T12:57:32Z|Forum\spost\s2026-10-17T12:57:32Z]
D 2026-10-17T13:23:07.702
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -751,7 +751,7 @@ F src/build.c 1406d252bc5b2c3f2150edd4426e5981eabf1000944be8db8d470b96eb64ee07
F src/callback.c 3605bbf02bd7ed46c79cd48346db4a32fc51d67624400539c0532f4eead804ad
F src/carray.c 22879bbd9e14fc4868f223b0d49bcdbbda4616c89f1519ec6a5e64b98a4137b1
F src/complete.c f68f545b9c6c19e2e848672dc0e4da230072fedc335d8980b55242cc4cfa60da
F src/date.c 7719f64947e718a38897af459259eeac1aeda7daf7b87860c4d37fc687101004
F src/date.c a55811d8e799ef76f3da9abf5a976dbe799208113f1da94ee25ae0aec2a14707
F src/dbpage.c ec8590c5e7a564cef28ca3c6156521316a4d26cb572a34841b0bcb26b67b3f97
F src/dbstat.c 34d4e825fbf763640ce3dbc56910ab080495ef4a6efb48b2b1852a43d43763fc
F src/delete.c f3f07c1fb6ac87fac2425d48fd40ecb2f24a4495a9966f5a939668d3576916c8
@@ -1107,7 +1107,7 @@ F test/ctime.test 340f362f41f92972bbd71f44e10569a5cc694062b692231bd08aa6fe6c1c47
F test/cursorhint.test d8b93ac48dfdb2cf4284142710d63e860b6497afff2e9c525daf752a229e5b97
F test/cursorhint2.test a10f29c0c52d4d73c19cf639f3c33cccbf5024bcf950fa48f2a8cdc14628b985
F test/dataversion1.test 6e5e86ac681f0782e766ebcb56c019ae001522d114e0e111e5ebf68ccf2a7bb8
F test/date.test e71d1c3640a6d1a59a8ea94b52dbe934ecaaeecd9e9db73ee1d10d27a5a6aece
F test/date.test 44385e98b072d7590aba7bb98ba8ee23d8d9b116ed0d80579bf07a30a1944537
F test/date2.test 7e12ec14aaf4d5e6294b4ba140445b0eca06ea50062a9c3a69c4ee13d0b6f8b1
F test/date3.test a1b77abf05c6772fe5ca2337cac1398892f2a41e62bce7e6be0f4a08a0e64ae5
F test/date4.test b5ad22baf7394e008ac59383840159daedd45be31dcf74a3b2450ec0e28955ce
@@ -2291,8 +2291,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
P e30e6624c492eba43cc79bf2c3af2f435e7cc449af8e6fc9d9f12a463ba7910e c5d67762df0507fe58e035b572623f36efb394d08d322bbdb313a2f0da49c734
R b6a14446d281beace891477835cb7680
P c75eff906c11d8f17ae198e5f6cfea34636df2bde0104440fd0b6983ddb2f918
R a999eb0745080bfad68b581e814ac320
U drh
Z bc64e40a1711427191cc2570f6c0be4b
Z 433d96aede92648bc82f0127728fe0ea
# Remove this line to create a well-formed Fossil manifest.
+1 -1
View File
@@ -1 +1 @@
c75eff906c11d8f17ae198e5f6cfea34636df2bde0104440fd0b6983ddb2f918
91515aa82e05f32db4b5d126d762d730cf424735edc4ef59a696ad581f4ca1ab
+2 -1
View File
@@ -356,6 +356,7 @@ static int parseYyyyMmDd(const char *zDate, DateTime *p){
if( getDigits(zDate, "40f-21a-21d", &Y, &M, &D)!=3 ){
return 1;
}
if( neg ) Y = -Y;
zDate += 10;
while( sqlite3Isspace(*zDate) || 'T'==*(u8*)zDate ){ zDate++; }
if( parseHhMmSs(zDate, p)==0 ){
@@ -379,7 +380,7 @@ static int parseYyyyMmDd(const char *zDate, DateTime *p){
}
p->validJD = 0;
p->validYMD = 1;
p->Y = neg ? -Y : Y;
p->Y = Y;
p->M = M;
p->D = D;
computeFloor(p);
+2
View File
@@ -766,5 +766,7 @@ datetest 23.19 {datetime('2024-02-29 24:00:00')} {2024-03-01 00:00:00}
datetest 23.20 {datetime('2025-02-28 24:00:00')} {2025-03-01 00:00:00}
datetest 23.21 {datetime('2024-04-30 24:00:00')} {2024-05-01 00:00:00}
datetest 23.22 {datetime('2024-12-31 24:00:00')} {2025-01-01 00:00:00}
# And Forum post 2026-10-17T12:57:32Z
datetest 23.23 {datetime('-0001-12-31 24:00:00')} {0000-01-01 00:00:00}
finish_test