Overview
Comment: | Allow the character "T" between date and time in ISO-8601 date/time formats. Ticket #1170. (CVS 2408) |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: | 2bf88daa57b01216c7bbe67972f479ee12be1193 |
User & Date: | drh 2005-03-21 00:43:44 |
Context
2005-03-21
| ||
00:47 | README file updated to suggest running "make install". Ticket #1168. (CVS 2409) check-in: b48784cf user: drh tags: trunk | |
00:43 | Allow the character "T" between date and time in ISO-8601 date/time formats. Ticket #1170. (CVS 2408) check-in: 2bf88daa user: drh tags: trunk | |
00:36 | Improved support for cygwin. Ticket #1165. (CVS 2407) check-in: fcb5cee4 user: drh tags: trunk | |
Changes
Changes to src/date.c.
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
...
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
|
** 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 ** sqlite3RegisterDateTimeFunctions() found at the bottom of the file. ** All other code has file scope. ** ** $Id: date.c,v 1.43 2005/01/15 01:52:32 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. ................................................................................ }else{ neg = 0; } if( getDigits(zDate,4,0,9999,'-',&Y,2,1,12,'-',&M,2,1,31,0,&D)!=3 ){ return 1; } zDate += 10; while( isspace(*(u8*)zDate) ){ zDate++; } if( parseHhMmSs(zDate, p)==0 ){ /* We got the time */ }else if( *zDate==0 ){ p->validHMS = 0; }else{ return 1; } |
|
|
|
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
...
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
|
** 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 ** sqlite3RegisterDateTimeFunctions() found at the bottom of the file. ** All other code has file scope. ** ** $Id: date.c,v 1.44 2005/03/21 00:43:44 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. ................................................................................ }else{ neg = 0; } if( getDigits(zDate,4,0,9999,'-',&Y,2,1,12,'-',&M,2,1,31,0,&D)!=3 ){ return 1; } zDate += 10; while( isspace(*(u8*)zDate) || 'T'==*(u8*)zDate ){ zDate++; } if( parseHhMmSs(zDate, p)==0 ){ /* We got the time */ }else if( *zDate==0 ){ p->validHMS = 0; }else{ return 1; } |
Changes to test/date.test.
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
..
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# 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.12 2005/01/15 01:52:33 drh Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl # Skip this whole file if date and time functions are omitted # at compile-time # ................................................................................ datetest 1.11 julianday('1999-13-01') NULL datetest 1.12 julianday('2003-02-31') 2452701.5 datetest 1.13 julianday('2003-03-03') 2452701.5 datetest 1.14 julianday('+2000-01-01') NULL datetest 1.15 julianday('200-01-01') NULL datetest 1.16 julianday('2000-1-01') NULL datetest 1.17 julianday('2000-01-1') NULL datetest 1.18 {julianday('2000-01-01 12:00:00')} 2451545.0 datetest 1.19 {julianday('2000-01-01 12:00:00.1')} 2451545.00000116 datetest 1.20 {julianday('2000-01-01 12:00:00.01')} 2451545.00000012 datetest 1.21 {julianday('2000-01-01 12:00:00.001')} 2451545.00000001 datetest 1.22 {julianday('2000-01-01 12:00:00.')} NULL datetest 1.23 julianday(12345.6) 12345.6 datetest 1.24 {julianday('2001-01-01 12:00:00 bogus')} NULL datetest 1.25 {julianday('2001-01-01 bogus')} NULL |
|
|
>
>
>
>
|
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
..
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# 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.13 2005/03/21 00:43:44 drh Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl # Skip this whole file if date and time functions are omitted # at compile-time # ................................................................................ datetest 1.11 julianday('1999-13-01') NULL datetest 1.12 julianday('2003-02-31') 2452701.5 datetest 1.13 julianday('2003-03-03') 2452701.5 datetest 1.14 julianday('+2000-01-01') NULL datetest 1.15 julianday('200-01-01') NULL datetest 1.16 julianday('2000-1-01') NULL datetest 1.17 julianday('2000-01-1') NULL datetest 1.18.1 {julianday('2000-01-01 12:00:00')} 2451545.0 datetest 1.18.2 {julianday('2000-01-01T12:00:00')} 2451545.0 datetest 1.18.3 {julianday('2000-01-01 T12:00:00')} 2451545.0 datetest 1.18.4 {julianday('2000-01-01T 12:00:00')} 2451545.0 datetest 1.18.4 {julianday('2000-01-01 T 12:00:00')} 2451545.0 datetest 1.19 {julianday('2000-01-01 12:00:00.1')} 2451545.00000116 datetest 1.20 {julianday('2000-01-01 12:00:00.01')} 2451545.00000012 datetest 1.21 {julianday('2000-01-01 12:00:00.001')} 2451545.00000001 datetest 1.22 {julianday('2000-01-01 12:00:00.')} NULL datetest 1.23 julianday(12345.6) 12345.6 datetest 1.24 {julianday('2001-01-01 12:00:00 bogus')} NULL datetest 1.25 {julianday('2001-01-01 bogus')} NULL |