~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/t/func_time.test

  • Committer: Brian Aker
  • Date: 2009-02-04 18:28:00 UTC
  • mfrom: (813.1.26 new-temporal)
  • Revision ID: brian@tangent.org-20090204182800-ra3p8rlu4zrs9fvn
Merge from Monty.

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
select month("1997-01-02"),year("98-02-03"),dayofyear("1997-12-31");
24
24
--error 1686 # No more bad dates!
25
25
select month("2001-02-00"),year("2001-01-01");
26
 
select DAYOFYEAR("1997-03-03"), WEEK("1998-03-03"), QUARTER(980303);
 
26
select DAYOFYEAR("1997-03-03"), QUARTER(980303);
27
27
select HOUR("1997-03-03 23:03:22"), MINUTE("23:03:22"), SECOND(230322);
28
28
 
29
 
# Test of week and yearweek
30
 
select week(19980101),week(19970101),week(19980101,1),week(19970101,1);
31
 
select week(19981231),week(19971231),week(19981231,1),week(19971231,1);
32
 
select week(19950101),week(19950101,1);
33
 
select yearweek('1981-12-31',1),yearweek('1982-01-01',1),yearweek('1982-12-31',1),yearweek('1983-01-01',1);
34
 
select yearweek('1987-01-01',1),yearweek('1987-01-01');
35
 
select week("2000-01-01",0) as '2000', week("2001-01-01",0) as '2001', week("2002-01-01",0) as '2002',week("2003-01-01",0) as '2003', week("2004-01-01",0) as '2004', week("2005-01-01",0) as '2005', week("2006-01-01",0) as '2006';
36
 
select week("2000-01-06",0) as '2000', week("2001-01-06",0) as '2001', week("2002-01-06",0) as '2002',week("2003-01-06",0) as '2003', week("2004-01-06",0) as '2004', week("2005-01-06",0) as '2005', week("2006-01-06",0) as '2006';
37
 
select week("2000-01-01",1) as '2000', week("2001-01-01",1) as '2001', week("2002-01-01",1) as '2002',week("2003-01-01",1) as '2003', week("2004-01-01",1) as '2004', week("2005-01-01",1) as '2005', week("2006-01-01",1) as '2006';
38
 
select week("2000-01-06",1) as '2000', week("2001-01-06",1) as '2001', week("2002-01-06",1) as '2002',week("2003-01-06",1) as '2003', week("2004-01-06",1) as '2004', week("2005-01-06",1) as '2005', week("2006-01-06",1) as '2006';
39
 
select yearweek("2000-01-01",0) as '2000', yearweek("2001-01-01",0) as '2001', yearweek("2002-01-01",0) as '2002',yearweek("2003-01-01",0) as '2003', yearweek("2004-01-01",0) as '2004', yearweek("2005-01-01",0) as '2005', yearweek("2006-01-01",0) as '2006';
40
 
select yearweek("2000-01-06",0) as '2000', yearweek("2001-01-06",0) as '2001', yearweek("2002-01-06",0) as '2002',yearweek("2003-01-06",0) as '2003', yearweek("2004-01-06",0) as '2004', yearweek("2005-01-06",0) as '2005', yearweek("2006-01-06",0) as '2006';
41
 
select yearweek("2000-01-01",1) as '2000', yearweek("2001-01-01",1) as '2001', yearweek("2002-01-01",1) as '2002',yearweek("2003-01-01",1) as '2003', yearweek("2004-01-01",1) as '2004', yearweek("2005-01-01",1) as '2005', yearweek("2006-01-01",1) as '2006';
42
 
select yearweek("2000-01-06",1) as '2000', yearweek("2001-01-06",1) as '2001', yearweek("2002-01-06",1) as '2002',yearweek("2003-01-06",1) as '2003', yearweek("2004-01-06",1) as '2004', yearweek("2005-01-06",1) as '2005', yearweek("2006-01-06",1) as '2006';
43
 
select week(19981231,2), week(19981231,3), week(20000101,2), week(20000101,3);
44
 
select week(20001231,2),week(20001231,3);
45
 
 
46
 
select week(19981231,0) as '0', week(19981231,1) as '1', week(19981231,2) as '2', week(19981231,3) as '3', week(19981231,4) as '4', week(19981231,5) as '5', week(19981231,6) as '6', week(19981231,7) as '7';
47
 
select week(20000101,0) as '0', week(20000101,1) as '1', week(20000101,2) as '2', week(20000101,3) as '3', week(20000101,4) as '4', week(20000101,5) as '5', week(20000101,6) as '6', week(20000101,7) as '7';
48
 
select week(20000106,0) as '0', week(20000106,1) as '1', week(20000106,2) as '2', week(20000106,3) as '3', week(20000106,4) as '4', week(20000106,5) as '5', week(20000106,6) as '6', week(20000106,7) as '7';
49
 
select week(20001231,0) as '0', week(20001231,1) as '1', week(20001231,2) as '2', week(20001231,3) as '3', week(20001231,4) as '4', week(20001231,5) as '5', week(20001231,6) as '6', week(20001231,7) as '7';
50
 
select week(20010101,0) as '0', week(20010101,1) as '1', week(20010101,2) as '2', week(20010101,3) as '3', week(20010101,4) as '4', week(20010101,5) as '5', week(20010101,6) as '6', week(20010101,7) as '7';
51
 
 
52
 
select yearweek(20001231,0), yearweek(20001231,1), yearweek(20001231,2), yearweek(20001231,3), yearweek(20001231,4), yearweek(20001231,5), yearweek(20001231,6), yearweek(20001231,7);
53
 
 
54
 
set default_week_format = 6;
55
 
select week(20001231), week(20001231,6);
56
 
set default_week_format = 0;
57
 
 
58
 
set default_week_format = 2;
59
 
select week(20001231),week(20001231,2),week(20001231,0);
60
 
set default_week_format = 0;
61
29
 
62
30
select date_format('1998-12-31','%x-%v'),date_format('1999-01-01','%x-%v');
63
31
select date_format('1999-12-31','%x-%v'),date_format('2000-01-01','%x-%v');
130
98
select extract(YEAR_MONTH FROM "1999-01-02");
131
99
select extract(DAY FROM "1999-01-02");
132
100
select extract(DAY_HOUR FROM "1999-01-02 10:11:12");
 
101
# The following is an interval, not a time!
 
102
--error 1686 # Bad datetime
133
103
select extract(DAY_MINUTE FROM "02 10:11:12");
 
104
# The following is an interval, not a time!
 
105
--error 1686 # Bad datetime
134
106
select extract(DAY_SECOND FROM "225 10:11:12");
135
107
select extract(HOUR FROM "1999-01-02 10:11:12");
136
108
select extract(HOUR_MINUTE FROM "10:11:12");
138
110
select extract(MINUTE FROM "10:11:12");
139
111
select extract(MINUTE_SECOND FROM "10:11:12");
140
112
select extract(SECOND FROM "1999-01-02 10:11:12");
 
113
--error 1686 # Bad datetime
141
114
select extract(MONTH FROM "2001-02-00");
142
115
 
143
116
#
218
191
select dayofmonth("0000-00-00"),dayofmonth(d),dayofmonth(dt),dayofmonth(t),dayofmonth(c) from t1;
219
192
--error 1686 # 0000-00-00 is not a damn date.
220
193
select month("0000-00-00"),month(d),month(dt),month(t),month(c) from t1;
 
194
--error 1686 # 0000-00-00 not a date
221
195
select quarter("0000-00-00"),quarter(d),quarter(dt),quarter(t),quarter(c) from t1;
222
 
select week("0000-00-00"),week(d),week(dt),week(t),week(c) from t1;
223
196
--error 1686 # Argh.  0000-00-00 is not a date.
224
197
select year("0000-00-00"),year(d),year(dt),year(t),year(c) from t1;
225
 
select yearweek("0000-00-00"),yearweek(d),yearweek(dt),yearweek(t),yearweek(c) from t1;
226
198
select to_days("0000-00-00"),to_days(d),to_days(dt),to_days(t),to_days(c) from t1;
 
199
--error 1686 # Ugh. bad datetime
227
200
select extract(MONTH FROM "0000-00-00"),extract(MONTH FROM d),extract(MONTH FROM dt),extract(MONTH FROM t),extract(MONTH FROM c) from t1;
228
201
drop table t1;
229
202
 
422
395
select strcmp(date_format(utc_timestamp(),"%Y-%m-%d"), utc_date())=0;
423
396
select strcmp(concat(utc_date(),' ',utc_time()),utc_timestamp())=0;
424
397
 
425
 
explain extended select period_add("9602",-12),period_diff(199505,"9404"),from_days(to_days("960101")),dayofmonth("1997-01-02"), month("1997-01-02"), monthname("1972-03-04"),dayofyear("0000-00-00"),HOUR("1997-03-03 23:03:22"),MINUTE("23:03:22"),SECOND(230322),QUARTER(980303),WEEK("1998-03-03"),yearweek("2000-01-01",1),week(19950101,1),year("98-02-03"),weekday(curdate())-weekday(now()),dayname("1962-03-03"),unix_timestamp(),sec_to_time(time_to_sec("0:30:47")/6.21),curtime(),utc_time(),curdate(),utc_date(),utc_timestamp(),date_format("1997-01-02 03:04:05", "%M %W %D %Y %y %m %d %h %i %s %w"),from_unixtime(unix_timestamp("1994-03-02 10:11:12")),"1997-12-31 23:59:59" + INTERVAL 1 SECOND,"1998-01-01 00:00:00" - INTERVAL 1 SECOND,INTERVAL 1 DAY + "1997-12-31", extract(YEAR FROM "1999-01-02 10:11:12"),date_add("1997-12-31 23:59:59",INTERVAL 1 SECOND);
 
398
explain extended select period_add("9602",-12),period_diff(199505,"9404"),from_days(to_days("960101")),dayofmonth("1997-01-02"), month("1997-01-02"), monthname("1972-03-04"),dayofyear("0000-00-00"),HOUR("1997-03-03 23:03:22"),MINUTE("23:03:22"),SECOND(230322),QUARTER(980303),weekday(curdate())-weekday(now()),dayname("1962-03-03"),unix_timestamp(),sec_to_time(time_to_sec("0:30:47")/6.21),curtime(),utc_time(),curdate(),utc_date(),utc_timestamp(),date_format("1997-01-02 03:04:05", "%M %W %D %Y %y %m %d %h %i %s %w"),from_unixtime(unix_timestamp("1994-03-02 10:11:12")),"1997-12-31 23:59:59" + INTERVAL 1 SECOND,"1998-01-01 00:00:00" - INTERVAL 1 SECOND,INTERVAL 1 DAY + "1997-12-31", extract(YEAR FROM "1999-01-02 10:11:12"),date_add("1997-12-31 23:59:59",INTERVAL 1 SECOND);
426
399
 
427
400
SET @TMP='2007-08-01 12:22:49';
428
401
CREATE TABLE t1 (d DATETIME);
505
478
SELECT MAKETIME(0, 0, 4294967296);
506
479
 
507
480
# check if EXTRACT() handles out-of-range values correctly
 
481
--error 1686 # Bad datetime
508
482
SELECT EXTRACT(HOUR FROM '100000:02:03');
509
483
 
510
484
# check if we get proper warnings if both input string truncation
563
537
 
564
538
select last_day('0000-00-00');
565
539
 
566
 
#
567
 
# Bug 23616: datetime functions with double argumets
568
 
#
569
 
 
570
 
select isnull(week(now() + 0)), isnull(week(now() + 0.2)),
571
 
  week(20061108), week(20061108.01), week(20061108085411.000002);
572
 
 
573
540
--echo End of 4.1 tests
574
541
 
575
542
explain extended select timestampdiff(SQL_TSI_WEEK, '2001-02-01', '2001-05-01') as a1,