813.1.17
by Jay Pipes
Fixes MICROSECOND() to use new Temporal system and throw appropriate errors on bad datetimes. Adds new microsecond.test case. Still to do: don't have microseconds thrown away by DATETIME type... :) |
1 |
SELECT MICROSECOND(NULL);
|
2 |
MICROSECOND(NULL)
|
|
3 |
NULL
|
|
4 |
SELECT MICROSECOND();
|
|
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 MICROSECOND(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 MICROSECOND("xxx");
|
|
9 |
ERROR HY000: Received an invalid datetime value 'xxx'.
|
|
10 |
SELECT MICROSECOND("0000-00-00");
|
|
11 |
ERROR HY000: Received an invalid datetime value '0000-00-00'.
|
|
12 |
SELECT MICROSECOND("0000-01-01");
|
|
13 |
ERROR HY000: Received an invalid datetime value '0000-01-01'.
|
|
14 |
SELECT MICROSECOND("0001-00-01");
|
|
15 |
ERROR HY000: Received an invalid datetime value '0001-00-01'.
|
|
16 |
SELECT MICROSECOND("0001-01-00");
|
|
17 |
ERROR HY000: Received an invalid datetime value '0001-01-00'.
|
|
18 |
SELECT MICROSECOND("2000-02-30");
|
|
19 |
ERROR HY000: Received an invalid datetime value '2000-02-30'.
|
|
20 |
SELECT MICROSECOND("1900-02-29");
|
|
21 |
ERROR HY000: Received an invalid datetime value '1900-02-29'.
|
|
22 |
SELECT MICROSECOND('1976-15-15');
|
|
23 |
ERROR HY000: Received an invalid datetime value '1976-15-15'.
|
|
24 |
SELECT MICROSECOND('23:59:70');
|
|
25 |
ERROR HY000: Received an invalid datetime value '23:59:70'.
|
|
26 |
SELECT MICROSECOND('23:70:59');
|
|
27 |
ERROR HY000: Received an invalid datetime value '23:70:59'.
|
|
28 |
SELECT MICROSECOND('26:00:00');
|
|
29 |
ERROR HY000: Received an invalid datetime value '26:00:00'.
|
|
30 |
SELECT MICROSECOND('26:00:00.9999999');
|
|
31 |
ERROR HY000: Received an invalid datetime value '26:00:00.9999999'.
|
|
32 |
SELECT MICROSECOND("2009-01-12");
|
|
33 |
MICROSECOND("2009-01-12")
|
|
34 |
0
|
|
35 |
SELECT MICROSECOND("70-12-31");
|
|
36 |
MICROSECOND("70-12-31")
|
|
37 |
0
|
|
38 |
SELECT MICROSECOND('07/31/2009');
|
|
39 |
MICROSECOND('07/31/2009')
|
|
40 |
0
|
|
41 |
SELECT MICROSECOND("2008-11-30 03:30:15");
|
|
42 |
MICROSECOND("2008-11-30 03:30:15")
|
|
43 |
0
|
|
44 |
SELECT MICROSECOND("2008-11-30T03:30:15");
|
|
45 |
MICROSECOND("2008-11-30T03:30:15")
|
|
46 |
0
|
|
47 |
SELECT MICROSECOND("2008-11-30T03:30:15.123456");
|
|
48 |
MICROSECOND("2008-11-30T03:30:15.123456")
|
|
49 |
123456
|
|
50 |
SELECT MICROSECOND("20081130033015");
|
|
51 |
MICROSECOND("20081130033015")
|
|
52 |
0
|
|
53 |
SELECT MICROSECOND("20081130033015.123456");
|
|
54 |
MICROSECOND("20081130033015.123456")
|
|
55 |
123456
|
|
813.1.19
by Jay Pipes
To remain in compatibility with MySQL, added ability to interpret |
56 |
SELECT MICROSECOND("20081130033015.12345");
|
57 |
MICROSECOND("20081130033015.12345")
|
|
58 |
123450
|
|
59 |
SELECT MICROSECOND("20081130033015.1234");
|
|
60 |
MICROSECOND("20081130033015.1234")
|
|
61 |
123400
|
|
62 |
SELECT MICROSECOND("20081130033015.123");
|
|
63 |
MICROSECOND("20081130033015.123")
|
|
64 |
123000
|
|
65 |
SELECT MICROSECOND("20081130033015.12");
|
|
66 |
MICROSECOND("20081130033015.12")
|
|
67 |
120000
|
|
68 |
SELECT MICROSECOND("20081130033015.1");
|
|
69 |
MICROSECOND("20081130033015.1")
|
|
70 |
100000
|
|
813.1.17
by Jay Pipes
Fixes MICROSECOND() to use new Temporal system and throw appropriate errors on bad datetimes. Adds new microsecond.test case. Still to do: don't have microseconds thrown away by DATETIME type... :) |
71 |
SELECT MICROSECOND(20081130033015);
|
72 |
MICROSECOND(20081130033015)
|
|
73 |
0
|
|
813.1.19
by Jay Pipes
To remain in compatibility with MySQL, added ability to interpret |
74 |
SELECT MICROSECOND(20081130033015.123456);
|
75 |
MICROSECOND(20081130033015.123456)
|
|
76 |
123456
|
|
77 |
SELECT MICROSECOND(20081130033015.12345);
|
|
78 |
MICROSECOND(20081130033015.12345)
|
|
79 |
123450
|
|
80 |
SELECT MICROSECOND(20081130033015.1234);
|
|
81 |
MICROSECOND(20081130033015.1234)
|
|
82 |
123400
|
|
83 |
SELECT MICROSECOND(20081130033015.123);
|
|
84 |
MICROSECOND(20081130033015.123)
|
|
85 |
123000
|
|
86 |
SELECT MICROSECOND(20081130033015.12);
|
|
87 |
MICROSECOND(20081130033015.12)
|
|
88 |
120000
|
|
89 |
SELECT MICROSECOND(20081130033015.1);
|
|
90 |
MICROSECOND(20081130033015.1)
|
|
91 |
100000
|
|
813.1.17
by Jay Pipes
Fixes MICROSECOND() to use new Temporal system and throw appropriate errors on bad datetimes. Adds new microsecond.test case. Still to do: don't have microseconds thrown away by DATETIME type... :) |
92 |
SELECT MICROSECOND(231115);
|
93 |
MICROSECOND(231115)
|
|
94 |
0
|
|
95 |
SELECT MICROSECOND("231115");
|
|
96 |
MICROSECOND("231115")
|
|
97 |
0
|
|
98 |
SELECT MICROSECOND("23:59:59");
|
|
99 |
MICROSECOND("23:59:59")
|
|
100 |
0
|
|
101 |
SELECT MICROSECOND("23:59:59.123456");
|
|
102 |
MICROSECOND("23:59:59.123456")
|
|
103 |
123456
|
|
104 |
USE test;
|
|
105 |
DROP TABLE IF EXISTS t1;
|
|
106 |
CREATE TABLE t1 (
|
|
107 |
int_fld INT NOT NULL
|
|
108 |
, date_fld DATE NOT NULL
|
|
109 |
, datetime_fld DATETIME NOT NULL
|
|
110 |
, timestamp_fld TIMESTAMP NOT NULL
|
|
111 |
, char_fld CHAR(22) NOT NULL
|
|
112 |
, varchar_fld VARCHAR(22) NOT NULL
|
|
113 |
, text_fld TEXT NOT NULL
|
|
114 |
, blob_fld BLOB NOT NULL
|
|
115 |
);
|
|
116 |
INSERT INTO t1 VALUES (
|
|
117 |
20071130
|
|
118 |
, "2007-11-30"
|
|
119 |
, "2007-11-30 16:30:19"
|
|
120 |
, "2007-11-30T16:30:19"
|
|
121 |
, "2007-11-30 16:30:19"
|
|
122 |
, "2007-11-30 16:30:19"
|
|
123 |
, "2007-11-30T16:30:19"
|
|
124 |
, "2007-11-30T16:30:19"
|
|
125 |
);
|
|
126 |
SELECT MICROSECOND(int_fld) FROM t1;
|
|
127 |
MICROSECOND(int_fld)
|
|
128 |
0
|
|
129 |
SELECT MICROSECOND(date_fld) FROM t1;
|
|
130 |
MICROSECOND(date_fld)
|
|
131 |
0
|
|
132 |
SELECT MICROSECOND(datetime_fld) FROM t1;
|
|
133 |
MICROSECOND(datetime_fld)
|
|
134 |
0
|
|
135 |
SELECT MICROSECOND(timestamp_fld) FROM t1;
|
|
136 |
MICROSECOND(timestamp_fld)
|
|
137 |
0
|
|
138 |
SELECT MICROSECOND(char_fld) FROM t1;
|
|
139 |
MICROSECOND(char_fld)
|
|
140 |
0
|
|
141 |
SELECT MICROSECOND(varchar_fld) FROM t1;
|
|
142 |
MICROSECOND(varchar_fld)
|
|
143 |
0
|
|
144 |
SELECT MICROSECOND(text_fld) FROM t1;
|
|
145 |
MICROSECOND(text_fld)
|
|
146 |
0
|
|
147 |
SELECT MICROSECOND(blob_fld) FROM t1;
|
|
148 |
MICROSECOND(blob_fld)
|
|
149 |
0
|
|
150 |
DROP TABLE t1;
|