~drizzle-trunk/drizzle/development

813.1.12 by Jay Pipes
Fixes for SECOND() function to use new Temporal system. Because
1
SELECT SECOND(NULL);
2
SECOND(NULL)
3
NULL
4
SELECT SECOND();
5
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your Drizzle server version for the right syntax to use near ')' at line 1
6
SELECT SECOND(1, 0);
7
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your Drizzle server version for the right syntax to use near ' 0)' at line 1
8
SELECT SECOND("xxx");
9
ERROR HY000: Received an invalid datetime value 'xxx'.
10
SELECT SECOND("0000-00-00");
11
ERROR HY000: Received an invalid datetime value '0000-00-00'.
12
SELECT SECOND("0000-01-01");
13
ERROR HY000: Received an invalid datetime value '0000-01-01'.
14
SELECT SECOND("0001-00-01");
15
ERROR HY000: Received an invalid datetime value '0001-00-01'.
16
SELECT SECOND("0001-01-00");
17
ERROR HY000: Received an invalid datetime value '0001-01-00'.
18
SELECT SECOND("2000-02-30");
19
ERROR HY000: Received an invalid datetime value '2000-02-30'.
20
SELECT SECOND("1900-02-29");
21
ERROR HY000: Received an invalid datetime value '1900-02-29'.
22
SELECT SECOND('1976-15-15');
23
ERROR HY000: Received an invalid datetime value '1976-15-15'.
24
SELECT SECOND('23:59:70');
25
ERROR HY000: Received an invalid datetime value '23:59:70'.
26
SELECT SECOND('23:70:59');
27
ERROR HY000: Received an invalid datetime value '23:70:59'.
28
SELECT SECOND('26:00:00');
29
ERROR HY000: Received an invalid datetime value '26:00:00'.
30
SELECT SECOND("2009-01-12");
31
SECOND("2009-01-12")
32
0
33
SELECT SECOND("70-12-31");
34
SECOND("70-12-31")
35
0
36
SELECT SECOND('07/31/2009');
37
SECOND('07/31/2009')
38
0
39
SELECT SECOND("2008-11-30 03:30:15");
40
SECOND("2008-11-30 03:30:15")
41
15
42
SELECT SECOND("2008-11-30T03:30:15");
43
SECOND("2008-11-30T03:30:15")
44
15
45
SELECT SECOND("20081130033015");
46
SECOND("20081130033015")
47
15
48
SELECT SECOND(20081130033015);
49
SECOND(20081130033015)
50
15
813.1.19 by Jay Pipes
To remain in compatibility with MySQL, added ability to interpret
51
SELECT SECOND(20081130033015.01);
52
SECOND(20081130033015.01)
53
15
813.1.12 by Jay Pipes
Fixes for SECOND() function to use new Temporal system. Because
54
SELECT SECOND(231115);
55
SECOND(231115)
56
15
57
SELECT SECOND("231115");
58
SECOND("231115")
59
15
60
SELECT SECOND("23:59:59");
61
SECOND("23:59:59")
62
59
63
USE test;
64
DROP TABLE IF EXISTS t1;
65
CREATE TABLE t1 (
66
int_fld INT NOT NULL
67
, date_fld DATE NOT NULL
68
, datetime_fld DATETIME NOT NULL
69
, timestamp_fld TIMESTAMP NOT NULL
70
, char_fld CHAR(22) NOT NULL
71
, varchar_fld VARCHAR(22) NOT NULL
72
, text_fld TEXT NOT NULL
73
, blob_fld BLOB NOT NULL
74
);
75
INSERT INTO t1 VALUES (
76
20071130
77
, "2007-11-30"
78
, "2007-11-30 16:30:19"
79
, "2007-11-30T16:30:19"
80
, "2007-11-30 16:30:19"
81
, "2007-11-30 16:30:19"
82
, "2007-11-30T16:30:19"
83
, "2007-11-30T16:30:19"
84
);
85
SELECT SECOND(int_fld) FROM t1;
86
SECOND(int_fld)
87
0
88
SELECT SECOND(date_fld) FROM t1;
89
SECOND(date_fld)
90
0
91
SELECT SECOND(datetime_fld) FROM t1;
92
SECOND(datetime_fld)
93
19
94
SELECT SECOND(timestamp_fld) FROM t1;
95
SECOND(timestamp_fld)
96
19
97
SELECT SECOND(char_fld) FROM t1;
98
SECOND(char_fld)
99
19
100
SELECT SECOND(varchar_fld) FROM t1;
101
SECOND(varchar_fld)
102
19
103
SELECT SECOND(text_fld) FROM t1;
104
SECOND(text_fld)
105
19
106
SELECT SECOND(blob_fld) FROM t1;
107
SECOND(blob_fld)
108
19
109
DROP TABLE t1;