Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | One more fix to the new HH:MM:SS modifier. This time add some test procedures too. (CVS 1280) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
7b3b8968ee9a5349dd6e9ae1e7a311bf |
User & Date: | drh 2004-02-29 01:08:18.000 |
Context
2004-02-29
| ||
15:18 | Updated aclocal.m4 and configure. (CVS 1281) (check-in: 76d42921a4 user: a.rottmann tags: trunk) | |
01:08 | One more fix to the new HH:MM:SS modifier. This time add some test procedures too. (CVS 1280) (check-in: 7b3b8968ee user: drh tags: trunk) | |
00:50 | Try again to get the HH:MM:SS modifier change right... (CVS 1279) (check-in: e20d51f94e user: drh tags: trunk) | |
Changes
Changes to src/date.c.
︙ | ︙ | |||
12 13 14 15 16 17 18 | ** This file contains the C functions that implement date and time ** functions for SQLite. ** ** There is only one exported symbol in this file - the function ** sqliteRegisterDateTimeFunctions() found at the bottom of the file. ** All other code has file scope. ** | | | 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | ** This file contains the C functions that implement date and time ** functions for SQLite. ** ** There is only one exported symbol in this file - the function ** sqliteRegisterDateTimeFunctions() found at the bottom of the file. ** All other code has file scope. ** ** $Id: date.c,v 1.16 2004/02/29 01:08:18 drh Exp $ ** ** NOTES: ** ** SQLite processes all times and dates as Julian Day numbers. The ** dates and times are stored as the number of days since noon ** in Greenwich on November 24, 4714 B.C. according to the Gregorian ** calendar system. |
︙ | ︙ | |||
575 576 577 578 579 580 581 | const char *z2 = z; DateTime tx; int day; if( !isdigit(*z2) ) z2++; memset(&tx, 0, sizeof(tx)); if( parseHhMmSs(z2, &tx) ) break; computeJD(&tx); | | < < > > | | 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 | const char *z2 = z; DateTime tx; int day; if( !isdigit(*z2) ) z2++; memset(&tx, 0, sizeof(tx)); if( parseHhMmSs(z2, &tx) ) break; computeJD(&tx); tx.rJD -= 0.5; day = (int)tx.rJD; tx.rJD -= day; if( z[0]=='-' ) tx.rJD = -tx.rJD; computeJD(p); clearYMD_HMS_TZ(p); p->rJD += tx.rJD; rc = 0; break; } z += n; while( isspace(z[0]) ) z++; n = strlen(z); if( n>10 || n<3 ) break; |
︙ | ︙ |
Changes to test/date.test.
1 2 3 4 5 6 7 8 9 10 11 12 13 | # 2003 October 31 # # The author disclaims copyright to this source code. In place of # a legal notice, here is a blessing: # # May you do good and not evil. # May you find forgiveness for yourself and forgive others. # May you share freely, never taking more than you give. # #*********************************************************************** # This file implements regression tests for SQLite library. The # focus of this file is testing date and time functions. # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # 2003 October 31 # # The author disclaims copyright to this source code. In place of # a legal notice, here is a blessing: # # May you do good and not evil. # May you find forgiveness for yourself and forgive others. # May you share freely, never taking more than you give. # #*********************************************************************** # This file implements regression tests for SQLite library. The # focus of this file is testing date and time functions. # # $Id: date.test,v 1.7 2004/02/29 01:08:18 drh Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl proc datetest {tnum expr result} { do_test date-$tnum [subst { execsql "SELECT coalesce($expr,'NULL')" |
︙ | ︙ | |||
206 207 208 209 210 211 212 213 | datetest 9.1 {julianday('-4713-11-24 12:00:00')} {0} datetest 9.2 {julianday(datetime(5))} {5} datetest 9.3 {julianday(datetime(10))} {10} datetest 9.4 {julianday(datetime(100))} {100} datetest 9.5 {julianday(datetime(1000))} {1000} datetest 9.6 {julianday(datetime(10000))} {10000} datetest 9.7 {julianday(datetime(100000))} {100000} | > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 | datetest 9.1 {julianday('-4713-11-24 12:00:00')} {0} datetest 9.2 {julianday(datetime(5))} {5} datetest 9.3 {julianday(datetime(10))} {10} datetest 9.4 {julianday(datetime(100))} {100} datetest 9.5 {julianday(datetime(1000))} {1000} datetest 9.6 {julianday(datetime(10000))} {10000} datetest 9.7 {julianday(datetime(100000))} {100000} # datetime() with just an HH:MM:SS correctly inserts the date 2000-01-01. # datetest 10.1 {datetime('01:02:03')} {2000-01-01 01:02:03} datetest 10.2 {date('01:02:03')} {2000-01-01} datetest 10.3 {strftime('%Y-%m-%d %H:%M','01:02:03')} {2000-01-01 01:02} # Test the new HH:MM:SS modifier # datetest 11.1 {datetime('2004-02-28 20:00:00', '-01:20:30')} \ {2004-02-28 18:39:30} datetest 11.2 {datetime('2004-02-28 20:00:00', '+12:30:00')} \ {2004-02-29 08:30:00} datetest 11.3 {datetime('2004-02-28 20:00:00', '+12:30')} \ {2004-02-29 08:30:00} datetest 11.4 {datetime('2004-02-28 20:00:00', '12:30')} \ {2004-02-29 08:30:00} datetest 11.5 {datetime('2004-02-28 20:00:00', '-12:00')} \ {2004-02-28 08:00:00} datetest 11.6 {datetime('2004-02-28 20:00:00', '-12:01')} \ {2004-02-28 07:59:00} datetest 11.7 {datetime('2004-02-28 20:00:00', '-11:59')} \ {2004-02-28 08:01:00} datetest 11.8 {datetime('2004-02-28 20:00:00', '11:59')} \ {2004-02-29 07:59:00} datetest 11.9 {datetime('2004-02-28 20:00:00', '12:01')} \ {2004-02-29 08:01:00} finish_test |