diff options
Diffstat (limited to 'libraries/sqlite/unix/sqlite-3.5.1/test/date.test')
-rw-r--r-- | libraries/sqlite/unix/sqlite-3.5.1/test/date.test | 354 |
1 files changed, 354 insertions, 0 deletions
diff --git a/libraries/sqlite/unix/sqlite-3.5.1/test/date.test b/libraries/sqlite/unix/sqlite-3.5.1/test/date.test new file mode 100644 index 0000000..b26db27 --- /dev/null +++ b/libraries/sqlite/unix/sqlite-3.5.1/test/date.test | |||
@@ -0,0 +1,354 @@ | |||
1 | # 2003 October 31 | ||
2 | # | ||
3 | # The author disclaims copyright to this source code. In place of | ||
4 | # a legal notice, here is a blessing: | ||
5 | # | ||
6 | # May you do good and not evil. | ||
7 | # May you find forgiveness for yourself and forgive others. | ||
8 | # May you share freely, never taking more than you give. | ||
9 | # | ||
10 | #*********************************************************************** | ||
11 | # This file implements regression tests for SQLite library. The | ||
12 | # focus of this file is testing date and time functions. | ||
13 | # | ||
14 | # $Id: date.test,v 1.23 2007/08/31 17:42:48 danielk1977 Exp $ | ||
15 | |||
16 | set testdir [file dirname $argv0] | ||
17 | source $testdir/tester.tcl | ||
18 | |||
19 | # Skip this whole file if date and time functions are omitted | ||
20 | # at compile-time | ||
21 | # | ||
22 | ifcapable {!datetime} { | ||
23 | finish_test | ||
24 | return | ||
25 | } | ||
26 | |||
27 | proc datetest {tnum expr result} { | ||
28 | do_test date-$tnum [subst { | ||
29 | execsql "SELECT coalesce($expr,'NULL')" | ||
30 | }] [list $result] | ||
31 | } | ||
32 | set tcl_precision 15 | ||
33 | datetest 1.1 julianday('2000-01-01') 2451544.5 | ||
34 | datetest 1.2 julianday('1970-01-01') 2440587.5 | ||
35 | datetest 1.3 julianday('1910-04-20') 2418781.5 | ||
36 | datetest 1.4 julianday('1986-02-09') 2446470.5 | ||
37 | datetest 1.5 julianday('12:00:00') 2451545.0 | ||
38 | datetest 1.6 {julianday('2000-01-01 12:00:00')} 2451545.0 | ||
39 | datetest 1.7 {julianday('2000-01-01 12:00')} 2451545.0 | ||
40 | datetest 1.8 julianday('bogus') NULL | ||
41 | datetest 1.9 julianday('1999-12-31') 2451543.5 | ||
42 | datetest 1.10 julianday('1999-12-32') NULL | ||
43 | datetest 1.11 julianday('1999-13-01') NULL | ||
44 | datetest 1.12 julianday('2003-02-31') 2452701.5 | ||
45 | datetest 1.13 julianday('2003-03-03') 2452701.5 | ||
46 | datetest 1.14 julianday('+2000-01-01') NULL | ||
47 | datetest 1.15 julianday('200-01-01') NULL | ||
48 | datetest 1.16 julianday('2000-1-01') NULL | ||
49 | datetest 1.17 julianday('2000-01-1') NULL | ||
50 | datetest 1.18.1 {julianday('2000-01-01 12:00:00')} 2451545.0 | ||
51 | datetest 1.18.2 {julianday('2000-01-01T12:00:00')} 2451545.0 | ||
52 | datetest 1.18.3 {julianday('2000-01-01 T12:00:00')} 2451545.0 | ||
53 | datetest 1.18.4 {julianday('2000-01-01T 12:00:00')} 2451545.0 | ||
54 | datetest 1.18.4 {julianday('2000-01-01 T 12:00:00')} 2451545.0 | ||
55 | datetest 1.19 {julianday('2000-01-01 12:00:00.1')} 2451545.00000116 | ||
56 | datetest 1.20 {julianday('2000-01-01 12:00:00.01')} 2451545.00000012 | ||
57 | datetest 1.21 {julianday('2000-01-01 12:00:00.001')} 2451545.00000001 | ||
58 | datetest 1.22 {julianday('2000-01-01 12:00:00.')} NULL | ||
59 | datetest 1.23 julianday(12345.6) 12345.6 | ||
60 | datetest 1.24 {julianday('2001-01-01 12:00:00 bogus')} NULL | ||
61 | datetest 1.25 {julianday('2001-01-01 bogus')} NULL | ||
62 | datetest 1.26 {julianday('2001-01-01 12:60:00')} NULL | ||
63 | datetest 1.27 {julianday('2001-01-01 12:59:60')} NULL | ||
64 | datetest 1.28 {julianday('2001-00-01')} NULL | ||
65 | datetest 1.29 {julianday('2001-01-00')} NULL | ||
66 | |||
67 | datetest 2.1 datetime(0,'unixepoch') {1970-01-01 00:00:00} | ||
68 | datetest 2.1b datetime(0,'unixepoc') NULL | ||
69 | datetest 2.1c datetime(0,'unixepochx') NULL | ||
70 | datetest 2.1d datetime('2003-10-22','unixepoch') NULL | ||
71 | datetest 2.2 datetime(946684800,'unixepoch') {2000-01-01 00:00:00} | ||
72 | datetest 2.3 {date('2003-10-22','weekday 0')} 2003-10-26 | ||
73 | datetest 2.4 {date('2003-10-22','weekday 1')} 2003-10-27 | ||
74 | datetest 2.4a {date('2003-10-22','weekday 1')} 2003-10-27 | ||
75 | datetest 2.4b {date('2003-10-22','weekday 1x')} 2003-10-27 | ||
76 | datetest 2.4c {date('2003-10-22','weekday -1')} NULL | ||
77 | datetest 2.4d {date('2003-10-22','weakday 1x')} NULL | ||
78 | datetest 2.4e {date('2003-10-22','weekday ')} NULL | ||
79 | datetest 2.5 {date('2003-10-22','weekday 2')} 2003-10-28 | ||
80 | datetest 2.6 {date('2003-10-22','weekday 3')} 2003-10-22 | ||
81 | datetest 2.7 {date('2003-10-22','weekday 4')} 2003-10-23 | ||
82 | datetest 2.8 {date('2003-10-22','weekday 5')} 2003-10-24 | ||
83 | datetest 2.9 {date('2003-10-22','weekday 6')} 2003-10-25 | ||
84 | datetest 2.10 {date('2003-10-22','weekday 7')} NULL | ||
85 | datetest 2.11 {date('2003-10-22','weekday 5.5')} NULL | ||
86 | datetest 2.12 {datetime('2003-10-22 12:34','weekday 0')} {2003-10-26 12:34:00} | ||
87 | datetest 2.13 {datetime('2003-10-22 12:34','start of month')} \ | ||
88 | {2003-10-01 00:00:00} | ||
89 | datetest 2.14 {datetime('2003-10-22 12:34','start of year')} \ | ||
90 | {2003-01-01 00:00:00} | ||
91 | datetest 2.15 {datetime('2003-10-22 12:34','start of day')} \ | ||
92 | {2003-10-22 00:00:00} | ||
93 | datetest 2.15a {datetime('2003-10-22 12:34','start of')} NULL | ||
94 | datetest 2.15b {datetime('2003-10-22 12:34','start of bogus')} NULL | ||
95 | datetest 2.16 time('12:34:56.43') 12:34:56 | ||
96 | datetest 2.17 {datetime('2003-10-22 12:34','1 day')} {2003-10-23 12:34:00} | ||
97 | datetest 2.18 {datetime('2003-10-22 12:34','+1 day')} {2003-10-23 12:34:00} | ||
98 | datetest 2.19 {datetime('2003-10-22 12:34','+1.25 day')} {2003-10-23 18:34:00} | ||
99 | datetest 2.20 {datetime('2003-10-22 12:34','-1.0 day')} {2003-10-21 12:34:00} | ||
100 | datetest 2.21 {datetime('2003-10-22 12:34','1 month')} {2003-11-22 12:34:00} | ||
101 | datetest 2.22 {datetime('2003-10-22 12:34','11 month')} {2004-09-22 12:34:00} | ||
102 | datetest 2.23 {datetime('2003-10-22 12:34','-13 month')} {2002-09-22 12:34:00} | ||
103 | datetest 2.24 {datetime('2003-10-22 12:34','1.5 months')} {2003-12-07 12:34:00} | ||
104 | datetest 2.25 {datetime('2003-10-22 12:34','-5 years')} {1998-10-22 12:34:00} | ||
105 | datetest 2.26 {datetime('2003-10-22 12:34','+10.5 minutes')} \ | ||
106 | {2003-10-22 12:44:30} | ||
107 | datetest 2.27 {datetime('2003-10-22 12:34','-1.25 hours')} \ | ||
108 | {2003-10-22 11:19:00} | ||
109 | datetest 2.28 {datetime('2003-10-22 12:34','11.25 seconds')} \ | ||
110 | {2003-10-22 12:34:11} | ||
111 | datetest 2.29 {datetime('2003-10-22 12:24','+5 bogus')} NULL | ||
112 | datetest 2.30 {datetime('2003-10-22 12:24','+++')} NULL | ||
113 | datetest 2.31 {datetime('2003-10-22 12:24','+12.3e4 femtoseconds')} NULL | ||
114 | datetest 2.32 {datetime('2003-10-22 12:24','+12.3e4 uS')} NULL | ||
115 | datetest 2.33 {datetime('2003-10-22 12:24','+1 abc')} NULL | ||
116 | datetest 2.34 {datetime('2003-10-22 12:24','+1 abcd')} NULL | ||
117 | datetest 2.35 {datetime('2003-10-22 12:24','+1 abcde')} NULL | ||
118 | datetest 2.36 {datetime('2003-10-22 12:24','+1 abcdef')} NULL | ||
119 | datetest 2.37 {datetime('2003-10-22 12:24','+1 abcdefg')} NULL | ||
120 | datetest 2.38 {datetime('2003-10-22 12:24','+1 abcdefgh')} NULL | ||
121 | datetest 2.39 {datetime('2003-10-22 12:24','+1 abcdefghi')} NULL | ||
122 | datetest 2.40 {datetime()} NULL | ||
123 | |||
124 | |||
125 | datetest 3.1 {strftime('%d','2003-10-31 12:34:56.432')} 31 | ||
126 | datetest 3.2 {strftime('%f','2003-10-31 12:34:56.432')} 56.432 | ||
127 | datetest 3.3 {strftime('%H','2003-10-31 12:34:56.432')} 12 | ||
128 | datetest 3.4 {strftime('%j','2003-10-31 12:34:56.432')} 304 | ||
129 | datetest 3.5 {strftime('%J','2003-10-31 12:34:56.432')} 2452944.02426426 | ||
130 | datetest 3.6 {strftime('%m','2003-10-31 12:34:56.432')} 10 | ||
131 | datetest 3.7 {strftime('%M','2003-10-31 12:34:56.432')} 34 | ||
132 | datetest 3.8 {strftime('%s','2003-10-31 12:34:56.432')} 1067603696 | ||
133 | datetest 3.9 {strftime('%S','2003-10-31 12:34:56.432')} 56 | ||
134 | datetest 3.10 {strftime('%w','2003-10-31 12:34:56.432')} 5 | ||
135 | datetest 3.11.1 {strftime('%W','2003-10-31 12:34:56.432')} 43 | ||
136 | datetest 3.11.2 {strftime('%W','2004-01-01')} 00 | ||
137 | datetest 3.11.3 {strftime('%W','2004-01-02')} 00 | ||
138 | datetest 3.11.4 {strftime('%W','2004-01-03')} 00 | ||
139 | datetest 3.11.5 {strftime('%W','2004-01-04')} 00 | ||
140 | datetest 3.11.6 {strftime('%W','2004-01-05')} 01 | ||
141 | datetest 3.11.7 {strftime('%W','2004-01-06')} 01 | ||
142 | datetest 3.11.8 {strftime('%W','2004-01-07')} 01 | ||
143 | datetest 3.11.9 {strftime('%W','2004-01-08')} 01 | ||
144 | datetest 3.11.10 {strftime('%W','2004-01-09')} 01 | ||
145 | datetest 3.11.11 {strftime('%W','2004-07-18')} 28 | ||
146 | datetest 3.11.12 {strftime('%W','2004-12-31')} 52 | ||
147 | datetest 3.11.13 {strftime('%W','2007-12-31')} 53 | ||
148 | datetest 3.11.14 {strftime('%W','2007-01-01')} 01 | ||
149 | datetest 3.11.15 {strftime('%W %j',2454109.04140970)} {02 008} | ||
150 | datetest 3.11.16 {strftime('%W %j',2454109.04140971)} {02 008} | ||
151 | datetest 3.11.17 {strftime('%W %j',2454109.04140972)} {02 008} | ||
152 | datetest 3.11.18 {strftime('%W %j',2454109.04140973)} {02 008} | ||
153 | datetest 3.11.19 {strftime('%W %j',2454109.04140974)} {02 008} | ||
154 | datetest 3.11.20 {strftime('%W %j',2454109.04140975)} {02 008} | ||
155 | datetest 3.11.21 {strftime('%W %j',2454109.04140976)} {02 008} | ||
156 | datetest 3.11.22 {strftime('%W %j',2454109.04140977)} {02 008} | ||
157 | datetest 3.11.22 {strftime('%W %j',2454109.04140978)} {02 008} | ||
158 | datetest 3.11.22 {strftime('%W %j',2454109.04140979)} {02 008} | ||
159 | datetest 3.11.22 {strftime('%W %j',2454109.04140980)} {02 008} | ||
160 | datetest 3.12 {strftime('%Y','2003-10-31 12:34:56.432')} 2003 | ||
161 | datetest 3.13 {strftime('%%','2003-10-31 12:34:56.432')} % | ||
162 | datetest 3.14 {strftime('%_','2003-10-31 12:34:56.432')} NULL | ||
163 | datetest 3.15 {strftime('%Y-%m-%d','2003-10-31')} 2003-10-31 | ||
164 | proc repeat {n txt} { | ||
165 | set x {} | ||
166 | while {$n>0} { | ||
167 | append x $txt | ||
168 | incr n -1 | ||
169 | } | ||
170 | return $x | ||
171 | } | ||
172 | datetest 3.16 "strftime('[repeat 200 %Y]','2003-10-31')" [repeat 200 2003] | ||
173 | datetest 3.17 "strftime('[repeat 200 abc%m123]','2003-10-31')" \ | ||
174 | [repeat 200 abc10123] | ||
175 | |||
176 | # Ticket #2276. Make sure leading zeros are inserted where appropriate. | ||
177 | # | ||
178 | datetest 3.20 \ | ||
179 | {strftime('%d/%f/%H/%W/%j/%m/%M/%S/%Y','0421-01-02 03:04:05.006')} \ | ||
180 | 02/05.006/03/00/002/01/04/05/0421 | ||
181 | |||
182 | set sqlite_current_time 1157124367 | ||
183 | datetest 4.1 {date('now')} {2006-09-01} | ||
184 | set sqlite_current_time 0 | ||
185 | |||
186 | datetest 5.1 {datetime('1994-04-16 14:00:00 +05:00')} {1994-04-16 09:00:00} | ||
187 | datetest 5.2 {datetime('1994-04-16 14:00:00 -05:15')} {1994-04-16 19:15:00} | ||
188 | datetest 5.3 {datetime('1994-04-16 05:00:00 +08:30')} {1994-04-15 20:30:00} | ||
189 | datetest 5.4 {datetime('1994-04-16 14:00:00 -11:55')} {1994-04-17 01:55:00} | ||
190 | datetest 5.5 {datetime('1994-04-16 14:00:00 -11:60')} NULL | ||
191 | datetest 5.4 {datetime('1994-04-16 14:00:00 -11:55 ')} {1994-04-17 01:55:00} | ||
192 | datetest 5.4 {datetime('1994-04-16 14:00:00 -11:55 x')} NULL | ||
193 | |||
194 | # localtime->utc and utc->localtime conversions. These tests only work | ||
195 | # if the localtime is in the US Eastern Time (the time in Charlotte, NC | ||
196 | # and in New York.) | ||
197 | # | ||
198 | set tzoffset [db one { | ||
199 | SELECT CAST(24*(julianday('2006-09-01') - | ||
200 | julianday('2006-09-01','localtime'))+0.5 | ||
201 | AS INT) | ||
202 | }] | ||
203 | if {$tzoffset==4} { | ||
204 | datetest 6.1 {datetime('2000-10-29 05:59:00','localtime')}\ | ||
205 | {2000-10-29 01:59:00} | ||
206 | datetest 6.2 {datetime('2000-10-29 06:00:00','localtime')}\ | ||
207 | {2000-10-29 01:00:00} | ||
208 | datetest 6.3 {datetime('2000-04-02 06:59:00','localtime')}\ | ||
209 | {2000-04-02 01:59:00} | ||
210 | datetest 6.4 {datetime('2000-04-02 07:00:00','localtime')}\ | ||
211 | {2000-04-02 03:00:00} | ||
212 | datetest 6.5 {datetime('2000-10-29 01:59:00','utc')} {2000-10-29 05:59:00} | ||
213 | datetest 6.6 {datetime('2000-10-29 02:00:00','utc')} {2000-10-29 07:00:00} | ||
214 | datetest 6.7 {datetime('2000-04-02 01:59:00','utc')} {2000-04-02 06:59:00} | ||
215 | datetest 6.8 {datetime('2000-04-02 02:00:00','utc')} {2000-04-02 06:00:00} | ||
216 | |||
217 | datetest 6.10 {datetime('2000-01-01 12:00:00','localtime')} \ | ||
218 | {2000-01-01 07:00:00} | ||
219 | datetest 6.11 {datetime('1969-01-01 12:00:00','localtime')} \ | ||
220 | {1969-01-01 07:00:00} | ||
221 | datetest 6.12 {datetime('2039-01-01 12:00:00','localtime')} \ | ||
222 | {2039-01-01 07:00:00} | ||
223 | datetest 6.13 {datetime('2000-07-01 12:00:00','localtime')} \ | ||
224 | {2000-07-01 08:00:00} | ||
225 | datetest 6.14 {datetime('1969-07-01 12:00:00','localtime')} \ | ||
226 | {1969-07-01 07:00:00} | ||
227 | datetest 6.15 {datetime('2039-07-01 12:00:00','localtime')} \ | ||
228 | {2039-07-01 07:00:00} | ||
229 | set sqlite_current_time \ | ||
230 | [db eval {SELECT strftime('%s','2000-07-01 12:34:56')}] | ||
231 | datetest 6.16 {datetime('now','localtime')} {2000-07-01 08:34:56} | ||
232 | datetest 6.17 {datetime('now','localtimex')} NULL | ||
233 | datetest 6.18 {datetime('now','localtim')} NULL | ||
234 | set sqlite_current_time 0 | ||
235 | } | ||
236 | |||
237 | # These two are a bit of a scam. They are added to ensure that 100% of | ||
238 | # the date.c file is covered by testing, even when the time-zone | ||
239 | # is not -0400 (the condition for running of the block of tests above). | ||
240 | # | ||
241 | datetest 6.19 {datetime('2039-07-01 12:00:00','localtime',null)} NULL | ||
242 | datetest 6.20 {datetime('2039-07-01 12:00:00','utc',null)} NULL | ||
243 | |||
244 | # Date-time functions that contain NULL arguments return a NULL | ||
245 | # result. | ||
246 | # | ||
247 | datetest 7.1 {datetime(null)} NULL | ||
248 | datetest 7.2 {datetime('now',null)} NULL | ||
249 | datetest 7.3 {datetime('now','localtime',null)} NULL | ||
250 | datetest 7.4 {time(null)} NULL | ||
251 | datetest 7.5 {time('now',null)} NULL | ||
252 | datetest 7.6 {time('now','localtime',null)} NULL | ||
253 | datetest 7.7 {date(null)} NULL | ||
254 | datetest 7.8 {date('now',null)} NULL | ||
255 | datetest 7.9 {date('now','localtime',null)} NULL | ||
256 | datetest 7.10 {julianday(null)} NULL | ||
257 | datetest 7.11 {julianday('now',null)} NULL | ||
258 | datetest 7.12 {julianday('now','localtime',null)} NULL | ||
259 | datetest 7.13 {strftime(null,'now')} NULL | ||
260 | datetest 7.14 {strftime('%s',null)} NULL | ||
261 | datetest 7.15 {strftime('%s','now',null)} NULL | ||
262 | datetest 7.16 {strftime('%s','now','localtime',null)} NULL | ||
263 | |||
264 | # Test modifiers when the date begins as a julian day number - to | ||
265 | # make sure the HH:MM:SS is preserved. Ticket #551. | ||
266 | # | ||
267 | set sqlite_current_time [db eval {SELECT strftime('%s','2003-10-22 12:34:00')}] | ||
268 | datetest 8.1 {datetime('now','weekday 0')} {2003-10-26 12:34:00} | ||
269 | datetest 8.2 {datetime('now','weekday 1')} {2003-10-27 12:34:00} | ||
270 | datetest 8.3 {datetime('now','weekday 2')} {2003-10-28 12:34:00} | ||
271 | datetest 8.4 {datetime('now','weekday 3')} {2003-10-22 12:34:00} | ||
272 | datetest 8.5 {datetime('now','start of month')} {2003-10-01 00:00:00} | ||
273 | datetest 8.6 {datetime('now','start of year')} {2003-01-01 00:00:00} | ||
274 | datetest 8.7 {datetime('now','start of day')} {2003-10-22 00:00:00} | ||
275 | datetest 8.8 {datetime('now','1 day')} {2003-10-23 12:34:00} | ||
276 | datetest 8.9 {datetime('now','+1 day')} {2003-10-23 12:34:00} | ||
277 | datetest 8.10 {datetime('now','+1.25 day')} {2003-10-23 18:34:00} | ||
278 | datetest 8.11 {datetime('now','-1.0 day')} {2003-10-21 12:34:00} | ||
279 | datetest 8.12 {datetime('now','1 month')} {2003-11-22 12:34:00} | ||
280 | datetest 8.13 {datetime('now','11 month')} {2004-09-22 12:34:00} | ||
281 | datetest 8.14 {datetime('now','-13 month')} {2002-09-22 12:34:00} | ||
282 | datetest 8.15 {datetime('now','1.5 months')} {2003-12-07 12:34:00} | ||
283 | datetest 8.16 {datetime('now','-5 years')} {1998-10-22 12:34:00} | ||
284 | datetest 8.17 {datetime('now','+10.5 minutes')} {2003-10-22 12:44:30} | ||
285 | datetest 8.18 {datetime('now','-1.25 hours')} {2003-10-22 11:19:00} | ||
286 | datetest 8.19 {datetime('now','11.25 seconds')} {2003-10-22 12:34:11} | ||
287 | datetest 8.90 {datetime('now','abcdefghijklmnopqrstuvwyxzABCDEFGHIJLMNOP')} NULL | ||
288 | set sqlite_current_time 0 | ||
289 | |||
290 | # Negative years work. Example: '-4713-11-26' is JD 1.5. | ||
291 | # | ||
292 | datetest 9.1 {julianday('-4713-11-24 12:00:00')} {0.0} | ||
293 | datetest 9.2 {julianday(datetime(5))} {5.0} | ||
294 | datetest 9.3 {julianday(datetime(10))} {10.0} | ||
295 | datetest 9.4 {julianday(datetime(100))} {100.0} | ||
296 | datetest 9.5 {julianday(datetime(1000))} {1000.0} | ||
297 | datetest 9.6 {julianday(datetime(10000))} {10000.0} | ||
298 | datetest 9.7 {julianday(datetime(100000))} {100000.0} | ||
299 | |||
300 | # datetime() with just an HH:MM:SS correctly inserts the date 2000-01-01. | ||
301 | # | ||
302 | datetest 10.1 {datetime('01:02:03')} {2000-01-01 01:02:03} | ||
303 | datetest 10.2 {date('01:02:03')} {2000-01-01} | ||
304 | datetest 10.3 {strftime('%Y-%m-%d %H:%M','01:02:03')} {2000-01-01 01:02} | ||
305 | |||
306 | # Test the new HH:MM:SS modifier | ||
307 | # | ||
308 | datetest 11.1 {datetime('2004-02-28 20:00:00', '-01:20:30')} \ | ||
309 | {2004-02-28 18:39:30} | ||
310 | datetest 11.2 {datetime('2004-02-28 20:00:00', '+12:30:00')} \ | ||
311 | {2004-02-29 08:30:00} | ||
312 | datetest 11.3 {datetime('2004-02-28 20:00:00', '+12:30')} \ | ||
313 | {2004-02-29 08:30:00} | ||
314 | datetest 11.4 {datetime('2004-02-28 20:00:00', '12:30')} \ | ||
315 | {2004-02-29 08:30:00} | ||
316 | datetest 11.5 {datetime('2004-02-28 20:00:00', '-12:00')} \ | ||
317 | {2004-02-28 08:00:00} | ||
318 | datetest 11.6 {datetime('2004-02-28 20:00:00', '-12:01')} \ | ||
319 | {2004-02-28 07:59:00} | ||
320 | datetest 11.7 {datetime('2004-02-28 20:00:00', '-11:59')} \ | ||
321 | {2004-02-28 08:01:00} | ||
322 | datetest 11.8 {datetime('2004-02-28 20:00:00', '11:59')} \ | ||
323 | {2004-02-29 07:59:00} | ||
324 | datetest 11.9 {datetime('2004-02-28 20:00:00', '12:01')} \ | ||
325 | {2004-02-29 08:01:00} | ||
326 | datetest 11.10 {datetime('2004-02-28 20:00:00', '12:60')} NULL | ||
327 | |||
328 | # Ticket #1964 | ||
329 | datetest 12.1 {datetime('2005-09-01')} {2005-09-01 00:00:00} | ||
330 | datetest 12.2 {datetime('2005-09-01','+0 hours')} {2005-09-01 00:00:00} | ||
331 | |||
332 | # Ticket #1991 | ||
333 | do_test date-13.1 { | ||
334 | execsql { | ||
335 | SELECT strftime('%Y-%m-%d %H:%M:%f', julianday('2006-09-24T10:50:26.047')) | ||
336 | } | ||
337 | } {{2006-09-24 10:50:26.047}} | ||
338 | |||
339 | # Ticket #2153 | ||
340 | datetest 13.2 {strftime('%Y-%m-%d %H:%M:%S', '2007-01-01 12:34:59.6')} \ | ||
341 | {2007-01-01 12:34:59} | ||
342 | datetest 13.3 {strftime('%Y-%m-%d %H:%M:%f', '2007-01-01 12:34:59.6')} \ | ||
343 | {2007-01-01 12:34:59.600} | ||
344 | datetest 13.4 {strftime('%Y-%m-%d %H:%M:%S', '2007-01-01 12:59:59.6')} \ | ||
345 | {2007-01-01 12:59:59} | ||
346 | datetest 13.5 {strftime('%Y-%m-%d %H:%M:%f', '2007-01-01 12:59:59.6')} \ | ||
347 | {2007-01-01 12:59:59.600} | ||
348 | datetest 13.6 {strftime('%Y-%m-%d %H:%M:%S', '2007-01-01 23:59:59.6')} \ | ||
349 | {2007-01-01 23:59:59} | ||
350 | datetest 13.7 {strftime('%Y-%m-%d %H:%M:%f', '2007-01-01 23:59:59.6')} \ | ||
351 | {2007-01-01 23:59:59.600} | ||
352 | |||
353 | |||
354 | finish_test | ||