1
drop table if exists t1,t2,t3;
2
select from_days(to_days("960101")),to_days(960201)-to_days("19960101"),to_days(date_add(curdate(), interval 1 day))-to_days(curdate()),weekday("1997-11-29");
3
from_days(to_days("960101")) to_days(960201)-to_days("19960101") to_days(date_add(curdate(), interval 1 day))-to_days(curdate()) weekday("1997-11-29")
5
select period_add("9602",-12),period_diff(199505,"9404") ;
6
period_add("9602",-12) period_diff(199505,"9404")
8
select now()-now(),weekday(curdate())-weekday(now()),unix_timestamp()-unix_timestamp(now());
9
now()-now() weekday(curdate())-weekday(now()) unix_timestamp()-unix_timestamp(now())
11
select from_unixtime(unix_timestamp("1994-03-02 10:11:12")),from_unixtime(unix_timestamp("1994-03-02 10:11:12"),"%Y-%m-%d %h:%i:%s"),from_unixtime(unix_timestamp("1994-03-02 10:11:12"))+0;
12
from_unixtime(unix_timestamp("1994-03-02 10:11:12")) from_unixtime(unix_timestamp("1994-03-02 10:11:12"),"%Y-%m-%d %h:%i:%s") from_unixtime(unix_timestamp("1994-03-02 10:11:12"))+0
13
1994-03-02 10:11:12 1994-03-02 10:11:12 19940302101112.000000
14
select sec_to_time(9001),sec_to_time(9001)+0,time_to_sec("15:12:22"),
15
sec_to_time(time_to_sec("0:30:47")/6.21);
16
sec_to_time(9001) sec_to_time(9001)+0 time_to_sec("15:12:22") sec_to_time(time_to_sec("0:30:47")/6.21)
17
02:30:01 23001.000000 54742 00:04:57
18
select sec_to_time(time_to_sec('-838:59:59'));
19
sec_to_time(time_to_sec('-838:59:59'))
21
select now()-curdate()*1000000-curtime();
22
now()-curdate()*1000000-curtime()
24
select strcmp(current_timestamp(),concat(current_date()," ",current_time()));
25
strcmp(current_timestamp(),concat(current_date()," ",current_time()))
27
select strcmp(localtime(),concat(current_date()," ",current_time()));
28
strcmp(localtime(),concat(current_date()," ",current_time()))
30
select strcmp(localtimestamp(),concat(current_date()," ",current_time()));
31
strcmp(localtimestamp(),concat(current_date()," ",current_time()))
33
select date_format("1997-01-02 03:04:05", "%M %W %D %Y %y %m %d %h %i %s %w");
34
date_format("1997-01-02 03:04:05", "%M %W %D %Y %y %m %d %h %i %s %w")
35
January Thursday 2nd 1997 97 01 02 03 04 05 4
36
select date_format("1997-01-02", concat("%M %W %D ","%Y %y %m %d %h %i %s %w"));
37
date_format("1997-01-02", concat("%M %W %D ","%Y %y %m %d %h %i %s %w"))
38
January Thursday 2nd 1997 97 01 02 12 00 00 4
39
select dayofmonth("1997-01-02"),dayofmonth(19970323);
40
dayofmonth("1997-01-02") dayofmonth(19970323)
42
select month("1997-01-02"),year("98-02-03"),dayofyear("1997-12-31");
43
month("1997-01-02") year("98-02-03") dayofyear("1997-12-31")
45
select month("2001-02-00"),year("2001-00-00");
46
month("2001-02-00") year("2001-00-00")
48
select DAYOFYEAR("1997-03-03"), WEEK("1998-03-03"), QUARTER(980303);
49
DAYOFYEAR("1997-03-03") WEEK("1998-03-03") QUARTER(980303)
51
select HOUR("1997-03-03 23:03:22"), MINUTE("23:03:22"), SECOND(230322);
52
HOUR("1997-03-03 23:03:22") MINUTE("23:03:22") SECOND(230322)
54
select week(19980101),week(19970101),week(19980101,1),week(19970101,1);
55
week(19980101) week(19970101) week(19980101,1) week(19970101,1)
57
select week(19981231),week(19971231),week(19981231,1),week(19971231,1);
58
week(19981231) week(19971231) week(19981231,1) week(19971231,1)
60
select week(19950101),week(19950101,1);
61
week(19950101) week(19950101,1)
63
select yearweek('1981-12-31',1),yearweek('1982-01-01',1),yearweek('1982-12-31',1),yearweek('1983-01-01',1);
64
yearweek('1981-12-31',1) yearweek('1982-01-01',1) yearweek('1982-12-31',1) yearweek('1983-01-01',1)
65
198153 198153 198252 198252
66
select yearweek('1987-01-01',1),yearweek('1987-01-01');
67
yearweek('1987-01-01',1) yearweek('1987-01-01')
69
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';
70
2000 2001 2002 2003 2004 2005 2006
72
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';
73
2000 2001 2002 2003 2004 2005 2006
75
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';
76
2000 2001 2002 2003 2004 2005 2006
78
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';
79
2000 2001 2002 2003 2004 2005 2006
81
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';
82
2000 2001 2002 2003 2004 2005 2006
83
199952 200053 200152 200252 200352 200452 200601
84
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';
85
2000 2001 2002 2003 2004 2005 2006
86
200001 200053 200201 200301 200401 200501 200601
87
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';
88
2000 2001 2002 2003 2004 2005 2006
89
199952 200101 200201 200301 200401 200453 200552
90
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';
91
2000 2001 2002 2003 2004 2005 2006
92
200001 200101 200201 200302 200402 200501 200601
93
select week(19981231,2), week(19981231,3), week(20000101,2), week(20000101,3);
94
week(19981231,2) week(19981231,3) week(20000101,2) week(20000101,3)
96
select week(20001231,2),week(20001231,3);
97
week(20001231,2) week(20001231,3)
99
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';
101
52 53 52 53 52 52 52 52
102
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';
105
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';
108
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';
110
53 52 53 52 53 52 1 52
111
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';
114
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);
115
yearweek(20001231,0) yearweek(20001231,1) yearweek(20001231,2) yearweek(20001231,3) yearweek(20001231,4) yearweek(20001231,5) yearweek(20001231,6) yearweek(20001231,7)
116
200053 200052 200053 200052 200101 200052 200101 200052
117
set default_week_format = 6;
118
select week(20001231), week(20001231,6);
119
week(20001231) week(20001231,6)
121
set default_week_format = 0;
122
set default_week_format = 2;
123
select week(20001231),week(20001231,2),week(20001231,0);
124
week(20001231) week(20001231,2) week(20001231,0)
126
set default_week_format = 0;
127
select date_format('1998-12-31','%x-%v'),date_format('1999-01-01','%x-%v');
128
date_format('1998-12-31','%x-%v') date_format('1999-01-01','%x-%v')
130
select date_format('1999-12-31','%x-%v'),date_format('2000-01-01','%x-%v');
131
date_format('1999-12-31','%x-%v') date_format('2000-01-01','%x-%v')
133
select dayname("1962-03-03"),dayname("1962-03-03")+0;
134
dayname("1962-03-03") dayname("1962-03-03")+0
136
select monthname("1972-03-04"),monthname("1972-03-04")+0;
137
monthname("1972-03-04") monthname("1972-03-04")+0
139
select time_format(19980131000000,'%H|%I|%k|%l|%i|%p|%r|%S|%T');
140
time_format(19980131000000,'%H|%I|%k|%l|%i|%p|%r|%S|%T')
141
00|12|0|12|00|AM|12:00:00 AM|00|00:00:00
142
select time_format(19980131010203,'%H|%I|%k|%l|%i|%p|%r|%S|%T');
143
time_format(19980131010203,'%H|%I|%k|%l|%i|%p|%r|%S|%T')
144
01|01|1|1|02|AM|01:02:03 AM|03|01:02:03
145
select time_format(19980131131415,'%H|%I|%k|%l|%i|%p|%r|%S|%T');
146
time_format(19980131131415,'%H|%I|%k|%l|%i|%p|%r|%S|%T')
147
13|01|13|1|14|PM|01:14:15 PM|15|13:14:15
148
select time_format(19980131010015,'%H|%I|%k|%l|%i|%p|%r|%S|%T');
149
time_format(19980131010015,'%H|%I|%k|%l|%i|%p|%r|%S|%T')
150
01|01|1|1|00|AM|01:00:15 AM|15|01:00:15
151
select date_format(concat('19980131',131415),'%H|%I|%k|%l|%i|%p|%r|%S|%T| %M|%W|%D|%Y|%y|%a|%b|%j|%m|%d|%h|%s|%w');
152
date_format(concat('19980131',131415),'%H|%I|%k|%l|%i|%p|%r|%S|%T| %M|%W|%D|%Y|%y|%a|%b|%j|%m|%d|%h|%s|%w')
153
13|01|13|1|14|PM|01:14:15 PM|15|13:14:15| January|Saturday|31st|1998|98|Sat|Jan|031|01|31|01|15|6
154
select date_format(19980021000000,'%H|%I|%k|%l|%i|%p|%r|%S|%T| %M|%W|%D|%Y|%y|%a|%b|%j|%m|%d|%h|%s|%w');
155
date_format(19980021000000,'%H|%I|%k|%l|%i|%p|%r|%S|%T| %M|%W|%D|%Y|%y|%a|%b|%j|%m|%d|%h|%s|%w')
157
select date_add("1997-12-31 23:59:59",INTERVAL 1 SECOND);
158
date_add("1997-12-31 23:59:59",INTERVAL 1 SECOND)
160
select date_add("1997-12-31 23:59:59",INTERVAL 1 MINUTE);
161
date_add("1997-12-31 23:59:59",INTERVAL 1 MINUTE)
163
select date_add("1997-12-31 23:59:59",INTERVAL 1 HOUR);
164
date_add("1997-12-31 23:59:59",INTERVAL 1 HOUR)
166
select date_add("1997-12-31 23:59:59",INTERVAL 1 DAY);
167
date_add("1997-12-31 23:59:59",INTERVAL 1 DAY)
169
select date_add("1997-12-31 23:59:59",INTERVAL 1 MONTH);
170
date_add("1997-12-31 23:59:59",INTERVAL 1 MONTH)
172
select date_add("1997-12-31 23:59:59",INTERVAL 1 YEAR);
173
date_add("1997-12-31 23:59:59",INTERVAL 1 YEAR)
175
select date_add("1997-12-31 23:59:59",INTERVAL "1:1" MINUTE_SECOND);
176
date_add("1997-12-31 23:59:59",INTERVAL "1:1" MINUTE_SECOND)
178
select date_add("1997-12-31 23:59:59",INTERVAL "1:1" HOUR_MINUTE);
179
date_add("1997-12-31 23:59:59",INTERVAL "1:1" HOUR_MINUTE)
181
select date_add("1997-12-31 23:59:59",INTERVAL "1:1" DAY_HOUR);
182
date_add("1997-12-31 23:59:59",INTERVAL "1:1" DAY_HOUR)
184
select date_add("1997-12-31 23:59:59",INTERVAL "1 1" YEAR_MONTH);
185
date_add("1997-12-31 23:59:59",INTERVAL "1 1" YEAR_MONTH)
187
select date_add("1997-12-31 23:59:59",INTERVAL "1:1:1" HOUR_SECOND);
188
date_add("1997-12-31 23:59:59",INTERVAL "1:1:1" HOUR_SECOND)
190
select date_add("1997-12-31 23:59:59",INTERVAL "1 1:1" DAY_MINUTE);
191
date_add("1997-12-31 23:59:59",INTERVAL "1 1:1" DAY_MINUTE)
193
select date_add("1997-12-31 23:59:59",INTERVAL "1 1:1:1" DAY_SECOND);
194
date_add("1997-12-31 23:59:59",INTERVAL "1 1:1:1" DAY_SECOND)
196
select date_sub("1998-01-01 00:00:00",INTERVAL 1 SECOND);
197
date_sub("1998-01-01 00:00:00",INTERVAL 1 SECOND)
199
select date_sub("1998-01-01 00:00:00",INTERVAL 1 MINUTE);
200
date_sub("1998-01-01 00:00:00",INTERVAL 1 MINUTE)
202
select date_sub("1998-01-01 00:00:00",INTERVAL 1 HOUR);
203
date_sub("1998-01-01 00:00:00",INTERVAL 1 HOUR)
205
select date_sub("1998-01-01 00:00:00",INTERVAL 1 DAY);
206
date_sub("1998-01-01 00:00:00",INTERVAL 1 DAY)
208
select date_sub("1998-01-01 00:00:00",INTERVAL 1 MONTH);
209
date_sub("1998-01-01 00:00:00",INTERVAL 1 MONTH)
211
select date_sub("1998-01-01 00:00:00",INTERVAL 1 YEAR);
212
date_sub("1998-01-01 00:00:00",INTERVAL 1 YEAR)
214
select date_sub("1998-01-01 00:00:00",INTERVAL "1:1" MINUTE_SECOND);
215
date_sub("1998-01-01 00:00:00",INTERVAL "1:1" MINUTE_SECOND)
217
select date_sub("1998-01-01 00:00:00",INTERVAL "1:1" HOUR_MINUTE);
218
date_sub("1998-01-01 00:00:00",INTERVAL "1:1" HOUR_MINUTE)
220
select date_sub("1998-01-01 00:00:00",INTERVAL "1:1" DAY_HOUR);
221
date_sub("1998-01-01 00:00:00",INTERVAL "1:1" DAY_HOUR)
223
select date_sub("1998-01-01 00:00:00",INTERVAL "1 1" YEAR_MONTH);
224
date_sub("1998-01-01 00:00:00",INTERVAL "1 1" YEAR_MONTH)
226
select date_sub("1998-01-01 00:00:00",INTERVAL "1:1:1" HOUR_SECOND);
227
date_sub("1998-01-01 00:00:00",INTERVAL "1:1:1" HOUR_SECOND)
229
select date_sub("1998-01-01 00:00:00",INTERVAL "1 1:1" DAY_MINUTE);
230
date_sub("1998-01-01 00:00:00",INTERVAL "1 1:1" DAY_MINUTE)
232
select date_sub("1998-01-01 00:00:00",INTERVAL "1 1:1:1" DAY_SECOND);
233
date_sub("1998-01-01 00:00:00",INTERVAL "1 1:1:1" DAY_SECOND)
235
select date_add("1997-12-31 23:59:59",INTERVAL 100000 SECOND);
236
date_add("1997-12-31 23:59:59",INTERVAL 100000 SECOND)
238
select date_add("1997-12-31 23:59:59",INTERVAL -100000 MINUTE);
239
date_add("1997-12-31 23:59:59",INTERVAL -100000 MINUTE)
241
select date_add("1997-12-31 23:59:59",INTERVAL 100000 HOUR);
242
date_add("1997-12-31 23:59:59",INTERVAL 100000 HOUR)
244
select date_add("1997-12-31 23:59:59",INTERVAL -100000 DAY);
245
date_add("1997-12-31 23:59:59",INTERVAL -100000 DAY)
247
select date_add("1997-12-31 23:59:59",INTERVAL 100000 MONTH);
248
date_add("1997-12-31 23:59:59",INTERVAL 100000 MONTH)
251
Warning 1441 Datetime function: datetime field overflow
252
select date_add("1997-12-31 23:59:59",INTERVAL -100000 YEAR);
253
date_add("1997-12-31 23:59:59",INTERVAL -100000 YEAR)
256
Warning 1441 Datetime function: datetime field overflow
257
select date_add("1997-12-31 23:59:59",INTERVAL "10000:1" MINUTE_SECOND);
258
date_add("1997-12-31 23:59:59",INTERVAL "10000:1" MINUTE_SECOND)
260
select date_add("1997-12-31 23:59:59",INTERVAL "-10000:1" HOUR_MINUTE);
261
date_add("1997-12-31 23:59:59",INTERVAL "-10000:1" HOUR_MINUTE)
263
select date_add("1997-12-31 23:59:59",INTERVAL "10000:1" DAY_HOUR);
264
date_add("1997-12-31 23:59:59",INTERVAL "10000:1" DAY_HOUR)
266
select date_add("1997-12-31 23:59:59",INTERVAL "-100 1" YEAR_MONTH);
267
date_add("1997-12-31 23:59:59",INTERVAL "-100 1" YEAR_MONTH)
269
select date_add("1997-12-31 23:59:59",INTERVAL "10000:99:99" HOUR_SECOND);
270
date_add("1997-12-31 23:59:59",INTERVAL "10000:99:99" HOUR_SECOND)
272
select date_add("1997-12-31 23:59:59",INTERVAL " -10000 99:99" DAY_MINUTE);
273
date_add("1997-12-31 23:59:59",INTERVAL " -10000 99:99" DAY_MINUTE)
275
select date_add("1997-12-31 23:59:59",INTERVAL "10000 99:99:99" DAY_SECOND);
276
date_add("1997-12-31 23:59:59",INTERVAL "10000 99:99:99" DAY_SECOND)
278
select "1997-12-31 23:59:59" + INTERVAL 1 SECOND;
279
"1997-12-31 23:59:59" + INTERVAL 1 SECOND
281
select INTERVAL 1 DAY + "1997-12-31";
282
INTERVAL 1 DAY + "1997-12-31"
284
select "1998-01-01 00:00:00" - INTERVAL 1 SECOND;
285
"1998-01-01 00:00:00" - INTERVAL 1 SECOND
287
select date_sub("1998-01-02",INTERVAL 31 DAY);
288
date_sub("1998-01-02",INTERVAL 31 DAY)
290
select date_add("1997-12-31",INTERVAL 1 SECOND);
291
date_add("1997-12-31",INTERVAL 1 SECOND)
293
select date_add("1997-12-31",INTERVAL 1 DAY);
294
date_add("1997-12-31",INTERVAL 1 DAY)
296
select date_add(NULL,INTERVAL 100000 SECOND);
297
date_add(NULL,INTERVAL 100000 SECOND)
299
select date_add("1997-12-31 23:59:59",INTERVAL NULL SECOND);
300
date_add("1997-12-31 23:59:59",INTERVAL NULL SECOND)
302
select date_add("1997-12-31 23:59:59",INTERVAL NULL MINUTE_SECOND);
303
date_add("1997-12-31 23:59:59",INTERVAL NULL MINUTE_SECOND)
305
select date_add("9999-12-31 23:59:59",INTERVAL 1 SECOND);
306
date_add("9999-12-31 23:59:59",INTERVAL 1 SECOND)
309
Warning 1441 Datetime function: datetime field overflow
310
select date_sub("0000-00-00 00:00:00",INTERVAL 1 SECOND);
311
date_sub("0000-00-00 00:00:00",INTERVAL 1 SECOND)
314
Warning 1292 Incorrect datetime value: '0000-00-00 00:00:00'
315
select date_add('1998-01-30',Interval 1 month);
316
date_add('1998-01-30',Interval 1 month)
318
select date_add('1998-01-30',Interval '2:1' year_month);
319
date_add('1998-01-30',Interval '2:1' year_month)
321
select date_add('1996-02-29',Interval '1' year);
322
date_add('1996-02-29',Interval '1' year)
324
select extract(YEAR FROM "1999-01-02 10:11:12");
325
extract(YEAR FROM "1999-01-02 10:11:12")
327
select extract(YEAR_MONTH FROM "1999-01-02");
328
extract(YEAR_MONTH FROM "1999-01-02")
330
select extract(DAY FROM "1999-01-02");
331
extract(DAY FROM "1999-01-02")
333
select extract(DAY_HOUR FROM "1999-01-02 10:11:12");
334
extract(DAY_HOUR FROM "1999-01-02 10:11:12")
336
select extract(DAY_MINUTE FROM "02 10:11:12");
337
extract(DAY_MINUTE FROM "02 10:11:12")
339
select extract(DAY_SECOND FROM "225 10:11:12");
340
extract(DAY_SECOND FROM "225 10:11:12")
343
Warning 1292 Truncated incorrect time value: '225 10:11:12'
344
select extract(HOUR FROM "1999-01-02 10:11:12");
345
extract(HOUR FROM "1999-01-02 10:11:12")
347
select extract(HOUR_MINUTE FROM "10:11:12");
348
extract(HOUR_MINUTE FROM "10:11:12")
350
select extract(HOUR_SECOND FROM "10:11:12");
351
extract(HOUR_SECOND FROM "10:11:12")
353
select extract(MINUTE FROM "10:11:12");
354
extract(MINUTE FROM "10:11:12")
356
select extract(MINUTE_SECOND FROM "10:11:12");
357
extract(MINUTE_SECOND FROM "10:11:12")
359
select extract(SECOND FROM "1999-01-02 10:11:12");
360
extract(SECOND FROM "1999-01-02 10:11:12")
362
select extract(MONTH FROM "2001-02-00");
363
extract(MONTH FROM "2001-02-00")
365
SELECT EXTRACT(QUARTER FROM '2004-01-15') AS quarter;
368
SELECT EXTRACT(QUARTER FROM '2004-02-15') AS quarter;
371
SELECT EXTRACT(QUARTER FROM '2004-03-15') AS quarter;
374
SELECT EXTRACT(QUARTER FROM '2004-04-15') AS quarter;
377
SELECT EXTRACT(QUARTER FROM '2004-05-15') AS quarter;
380
SELECT EXTRACT(QUARTER FROM '2004-06-15') AS quarter;
383
SELECT EXTRACT(QUARTER FROM '2004-07-15') AS quarter;
386
SELECT EXTRACT(QUARTER FROM '2004-08-15') AS quarter;
389
SELECT EXTRACT(QUARTER FROM '2004-09-15') AS quarter;
392
SELECT EXTRACT(QUARTER FROM '2004-10-15') AS quarter;
395
SELECT EXTRACT(QUARTER FROM '2004-11-15') AS quarter;
398
SELECT EXTRACT(QUARTER FROM '2004-12-15') AS quarter;
401
SELECT DATE_SUB(str_to_date('9999-12-31 00:01:00','%Y-%m-%d %H:%i:%s'), INTERVAL 1 MINUTE);
402
DATE_SUB(str_to_date('9999-12-31 00:01:00','%Y-%m-%d %H:%i:%s'), INTERVAL 1 MINUTE)
404
SELECT DATE_ADD(str_to_date('9999-12-30 23:59:00','%Y-%m-%d %H:%i:%s'), INTERVAL 1 MINUTE);
405
DATE_ADD(str_to_date('9999-12-30 23:59:00','%Y-%m-%d %H:%i:%s'), INTERVAL 1 MINUTE)
407
SELECT "1900-01-01 00:00:00" + INTERVAL 2147483648 SECOND;
408
"1900-01-01 00:00:00" + INTERVAL 2147483648 SECOND
410
SELECT "1900-01-01 00:00:00" + INTERVAL "1:2147483647" MINUTE_SECOND;
411
"1900-01-01 00:00:00" + INTERVAL "1:2147483647" MINUTE_SECOND
413
SELECT "1900-01-01 00:00:00" + INTERVAL "100000000:214748364700" MINUTE_SECOND;
414
"1900-01-01 00:00:00" + INTERVAL "100000000:214748364700" MINUTE_SECOND
416
SELECT "1900-01-01 00:00:00" + INTERVAL "1000000000:214748364700" MINUTE_SECOND;
417
"1900-01-01 00:00:00" + INTERVAL "1000000000:214748364700" MINUTE_SECOND
420
Warning 1441 Datetime function: datetime field overflow
421
create table t1 (ctime varchar(20));
422
insert into t1 values ('2001-01-12 12:23:40');
423
select ctime, hour(ctime) from t1;
425
2001-01-12 12:23:40 12
426
select ctime from t1 where extract(MONTH FROM ctime) = 1 AND extract(YEAR FROM ctime) = 2001;
430
create table t1 (id int);
431
create table t2 (id int, date date);
432
insert into t1 values (1);
433
insert into t2 values (1, "0000-00-00");
434
insert into t1 values (2);
435
insert into t2 values (2, "2000-01-01");
436
select monthname(date) from t1 inner join t2 on t1.id = t2.id;
440
select monthname(date) from t1 inner join t2 on t1.id = t2.id order by t1.id;
445
CREATE TABLE t1 (updated text) ENGINE=MyISAM;
446
INSERT INTO t1 VALUES ('');
447
SELECT month(updated) from t1;
451
Warning 1292 Incorrect datetime value: ''
452
SELECT year(updated) from t1;
456
Warning 1292 Incorrect datetime value: ''
458
create table t1 (d date, dt datetime, t timestamp, c char(10));
459
insert into t1 values ("0000-00-00", "0000-00-00", "0000-00-00", "0000-00-00");
460
select dayofyear("0000-00-00"),dayofyear(d),dayofyear(dt),dayofyear(t),dayofyear(c) from t1;
461
dayofyear("0000-00-00") dayofyear(d) dayofyear(dt) dayofyear(t) dayofyear(c)
462
NULL NULL NULL NULL NULL
464
Warning 1292 Incorrect datetime value: '0000-00-00'
465
Warning 1292 Incorrect datetime value: '0000-00-00'
466
select dayofmonth("0000-00-00"),dayofmonth(d),dayofmonth(dt),dayofmonth(t),dayofmonth(c) from t1;
467
dayofmonth("0000-00-00") dayofmonth(d) dayofmonth(dt) dayofmonth(t) dayofmonth(c)
469
select month("0000-00-00"),month(d),month(dt),month(t),month(c) from t1;
470
month("0000-00-00") month(d) month(dt) month(t) month(c)
472
select quarter("0000-00-00"),quarter(d),quarter(dt),quarter(t),quarter(c) from t1;
473
quarter("0000-00-00") quarter(d) quarter(dt) quarter(t) quarter(c)
475
select week("0000-00-00"),week(d),week(dt),week(t),week(c) from t1;
476
week("0000-00-00") week(d) week(dt) week(t) week(c)
477
NULL NULL NULL NULL NULL
479
Warning 1292 Incorrect datetime value: '0000-00-00'
480
Warning 1292 Incorrect datetime value: '0000-00-00'
481
select year("0000-00-00"),year(d),year(dt),year(t),year(c) from t1;
482
year("0000-00-00") year(d) year(dt) year(t) year(c)
484
select yearweek("0000-00-00"),yearweek(d),yearweek(dt),yearweek(t),yearweek(c) from t1;
485
yearweek("0000-00-00") yearweek(d) yearweek(dt) yearweek(t) yearweek(c)
486
NULL NULL NULL NULL NULL
488
Warning 1292 Incorrect datetime value: '0000-00-00'
489
Warning 1292 Incorrect datetime value: '0000-00-00'
490
select to_days("0000-00-00"),to_days(d),to_days(dt),to_days(t),to_days(c) from t1;
491
to_days("0000-00-00") to_days(d) to_days(dt) to_days(t) to_days(c)
492
NULL NULL NULL NULL NULL
494
Warning 1292 Incorrect datetime value: '0000-00-00'
495
Warning 1292 Incorrect datetime value: '0000-00-00'
496
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;
497
extract(MONTH FROM "0000-00-00") extract(MONTH FROM d) extract(MONTH FROM dt) extract(MONTH FROM t) extract(MONTH FROM c)
500
CREATE TABLE t1 ( start datetime default NULL);
501
INSERT INTO t1 VALUES ('2002-10-21 00:00:00'),('2002-10-28 00:00:00'),('2002-11-04 00:00:00');
502
CREATE TABLE t2 ( ctime1 timestamp NOT NULL, ctime2 timestamp NOT NULL);
503
INSERT INTO t2 VALUES (20021029165106,20021105164731);
504
CREATE TABLE t3 (ctime1 char(19) NOT NULL, ctime2 char(19) NOT NULL);
505
INSERT INTO t3 VALUES ("2002-10-29 16:51:06","2002-11-05 16:47:31");
506
select * from t1, t2 where t1.start between t2.ctime1 and t2.ctime2;
508
2002-11-04 00:00:00 2002-10-29 16:51:06 2002-11-05 16:47:31
509
select * from t1, t2 where t1.start >= t2.ctime1 and t1.start <= t2.ctime2;
511
2002-11-04 00:00:00 2002-10-29 16:51:06 2002-11-05 16:47:31
512
select * from t1, t3 where t1.start between t3.ctime1 and t3.ctime2;
514
2002-11-04 00:00:00 2002-10-29 16:51:06 2002-11-05 16:47:31
516
select @a:=FROM_UNIXTIME(1);
519
select unix_timestamp(@a);
522
select unix_timestamp('1969-12-01 19:00:01');
523
unix_timestamp('1969-12-01 19:00:01')
525
select from_unixtime(-1);
528
select from_unixtime(2147483647);
529
from_unixtime(2147483647)
531
select from_unixtime(2147483648);
532
from_unixtime(2147483648)
534
select from_unixtime(0);
537
select unix_timestamp(from_unixtime(2147483647));
538
unix_timestamp(from_unixtime(2147483647))
540
select unix_timestamp(from_unixtime(2147483648));
541
unix_timestamp(from_unixtime(2147483648))
543
select unix_timestamp('2039-01-20 01:00:00');
544
unix_timestamp('2039-01-20 01:00:00')
546
select unix_timestamp('1968-01-20 01:00:00');
547
unix_timestamp('1968-01-20 01:00:00')
549
select unix_timestamp('2038-02-10 01:00:00');
550
unix_timestamp('2038-02-10 01:00:00')
552
select unix_timestamp('1969-11-20 01:00:00');
553
unix_timestamp('1969-11-20 01:00:00')
555
select unix_timestamp('2038-01-20 01:00:00');
556
unix_timestamp('2038-01-20 01:00:00')
558
select unix_timestamp('1969-12-30 01:00:00');
559
unix_timestamp('1969-12-30 01:00:00')
561
select unix_timestamp('2038-01-17 12:00:00');
562
unix_timestamp('2038-01-17 12:00:00')
564
select unix_timestamp('1970-01-01 03:00:01');
565
unix_timestamp('1970-01-01 03:00:01')
567
select unix_timestamp('2038-01-19 07:14:07');
568
unix_timestamp('2038-01-19 07:14:07')
570
CREATE TABLE t1 (datetime datetime, timestamp timestamp, date date, time time);
571
INSERT INTO t1 values ("2001-01-02 03:04:05", "2002-01-02 03:04:05", "2003-01-02", "06:07:08");
573
datetime timestamp date time
574
2001-01-02 03:04:05 2002-01-02 03:04:05 2003-01-02 06:07:08
575
select date_add("1997-12-31",INTERVAL 1 SECOND);
576
date_add("1997-12-31",INTERVAL 1 SECOND)
578
select date_add("1997-12-31",INTERVAL "1 1" YEAR_MONTH);
579
date_add("1997-12-31",INTERVAL "1 1" YEAR_MONTH)
581
select date_add(datetime, INTERVAL 1 SECOND) from t1;
582
date_add(datetime, INTERVAL 1 SECOND)
584
select date_add(datetime, INTERVAL 1 YEAR) from t1;
585
date_add(datetime, INTERVAL 1 YEAR)
587
select date_add(date,INTERVAL 1 SECOND) from t1;
588
date_add(date,INTERVAL 1 SECOND)
590
select date_add(date,INTERVAL 1 MINUTE) from t1;
591
date_add(date,INTERVAL 1 MINUTE)
593
select date_add(date,INTERVAL 1 HOUR) from t1;
594
date_add(date,INTERVAL 1 HOUR)
596
select date_add(date,INTERVAL 1 DAY) from t1;
597
date_add(date,INTERVAL 1 DAY)
599
select date_add(date,INTERVAL 1 MONTH) from t1;
600
date_add(date,INTERVAL 1 MONTH)
602
select date_add(date,INTERVAL 1 YEAR) from t1;
603
date_add(date,INTERVAL 1 YEAR)
605
select date_add(date,INTERVAL "1:1" MINUTE_SECOND) from t1;
606
date_add(date,INTERVAL "1:1" MINUTE_SECOND)
608
select date_add(date,INTERVAL "1:1" HOUR_MINUTE) from t1;
609
date_add(date,INTERVAL "1:1" HOUR_MINUTE)
611
select date_add(date,INTERVAL "1:1" DAY_HOUR) from t1;
612
date_add(date,INTERVAL "1:1" DAY_HOUR)
614
select date_add(date,INTERVAL "1 1" YEAR_MONTH) from t1;
615
date_add(date,INTERVAL "1 1" YEAR_MONTH)
617
select date_add(date,INTERVAL "1:1:1" HOUR_SECOND) from t1;
618
date_add(date,INTERVAL "1:1:1" HOUR_SECOND)
620
select date_add(date,INTERVAL "1 1:1" DAY_MINUTE) from t1;
621
date_add(date,INTERVAL "1 1:1" DAY_MINUTE)
623
select date_add(date,INTERVAL "1 1:1:1" DAY_SECOND) from t1;
624
date_add(date,INTERVAL "1 1:1:1" DAY_SECOND)
626
select date_add(date,INTERVAL "1" WEEK) from t1;
627
date_add(date,INTERVAL "1" WEEK)
629
select date_add(date,INTERVAL "1" QUARTER) from t1;
630
date_add(date,INTERVAL "1" QUARTER)
632
select timestampadd(MINUTE, 1, date) from t1;
633
timestampadd(MINUTE, 1, date)
635
select timestampadd(WEEK, 1, date) from t1;
636
timestampadd(WEEK, 1, date)
638
select timestampadd(SQL_TSI_SECOND, 1, date) from t1;
639
timestampadd(SQL_TSI_SECOND, 1, date)
641
select timestampadd(SQL_TSI_FRAC_SECOND, 1, date) from t1;
642
timestampadd(SQL_TSI_FRAC_SECOND, 1, date)
643
2003-01-02 00:00:00.000001
644
select timestampdiff(MONTH, '2001-02-01', '2001-05-01') as a;
647
select timestampdiff(YEAR, '2002-05-01', '2001-01-01') as a;
650
select timestampdiff(QUARTER, '2002-05-01', '2001-01-01') as a;
653
select timestampdiff(MONTH, '2000-03-28', '2000-02-29') as a;
656
select timestampdiff(MONTH, '1991-03-28', '2000-02-29') as a;
659
select timestampdiff(SQL_TSI_WEEK, '2001-02-01', '2001-05-01') as a;
662
select timestampdiff(SQL_TSI_HOUR, '2001-02-01', '2001-05-01') as a;
665
select timestampdiff(SQL_TSI_DAY, '2001-02-01', '2001-05-01') as a;
668
select timestampdiff(SQL_TSI_MINUTE, '2001-02-01 12:59:59', '2001-05-01 12:58:59') as a;
671
select timestampdiff(SQL_TSI_SECOND, '2001-02-01 12:59:59', '2001-05-01 12:58:58') as a;
674
select timestampdiff(SQL_TSI_FRAC_SECOND, '2001-02-01 12:59:59.120000', '2001-05-01 12:58:58.119999') as a;
677
select timestampdiff(SQL_TSI_DAY, '1986-02-01', '1986-03-01') as a1,
678
timestampdiff(SQL_TSI_DAY, '1900-02-01', '1900-03-01') as a2,
679
timestampdiff(SQL_TSI_DAY, '1996-02-01', '1996-03-01') as a3,
680
timestampdiff(SQL_TSI_DAY, '2000-02-01', '2000-03-01') as a4;
683
SELECT TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-11 14:30:27');
684
TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-11 14:30:27')
686
SELECT TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-11 14:30:28');
687
TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-11 14:30:28')
689
SELECT TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-11 14:30:29');
690
TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-11 14:30:29')
692
SELECT TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-12 14:30:27');
693
TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-12 14:30:27')
695
SELECT TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-12 14:30:28');
696
TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-12 14:30:28')
698
SELECT TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-12 14:30:29');
699
TIMESTAMPDIFF(day,'2006-01-10 14:30:28','2006-01-12 14:30:29')
701
SELECT TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-17 14:30:27');
702
TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-17 14:30:27')
704
SELECT TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-17 14:30:28');
705
TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-17 14:30:28')
707
SELECT TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-17 14:30:29');
708
TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-17 14:30:29')
710
SELECT TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-24 14:30:27');
711
TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-24 14:30:27')
713
SELECT TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-24 14:30:28');
714
TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-24 14:30:28')
716
SELECT TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-24 14:30:29');
717
TIMESTAMPDIFF(week,'2006-01-10 14:30:28','2006-01-24 14:30:29')
719
SELECT TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-02-10 14:30:27');
720
TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-02-10 14:30:27')
722
SELECT TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-02-10 14:30:28');
723
TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-02-10 14:30:28')
725
SELECT TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-02-10 14:30:29');
726
TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-02-10 14:30:29')
728
SELECT TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-03-10 14:30:27');
729
TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-03-10 14:30:27')
731
SELECT TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-03-10 14:30:28');
732
TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-03-10 14:30:28')
734
SELECT TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-03-10 14:30:29');
735
TIMESTAMPDIFF(month,'2006-01-10 14:30:28','2006-03-10 14:30:29')
737
SELECT TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2007-01-10 14:30:27');
738
TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2007-01-10 14:30:27')
740
SELECT TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2007-01-10 14:30:28');
741
TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2007-01-10 14:30:28')
743
SELECT TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2007-01-10 14:30:29');
744
TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2007-01-10 14:30:29')
746
SELECT TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2008-01-10 14:30:27');
747
TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2008-01-10 14:30:27')
749
SELECT TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2008-01-10 14:30:28');
750
TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2008-01-10 14:30:28')
752
SELECT TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2008-01-10 14:30:29');
753
TIMESTAMPDIFF(year,'2006-01-10 14:30:28','2008-01-10 14:30:29')
755
select date_add(time,INTERVAL 1 SECOND) from t1;
756
date_add(time,INTERVAL 1 SECOND)
759
Warning 1264 Out of range value for column 'time' at row 1
761
select last_day('2000-02-05') as f1, last_day('2002-12-31') as f2,
762
last_day('2003-03-32') as f3, last_day('2003-04-01') as f4,
763
last_day('2001-01-01 01:01:01') as f5, last_day(NULL),
764
last_day('2001-02-12');
765
f1 f2 f3 f4 f5 last_day(NULL) last_day('2001-02-12')
766
2000-02-29 2002-12-31 NULL 2003-04-30 2001-01-31 NULL 2001-02-28
768
Warning 1292 Incorrect datetime value: '2003-03-32'
769
create table t1 select last_day('2000-02-05') as a,
770
from_days(to_days("960101")) as b;
772
Field Type Null Key Default Extra
777
2000-02-29 1996-01-01
779
select last_day('2000-02-05') as a,
780
from_days(to_days("960101")) as b;
782
2000-02-29 1996-01-01
783
select date_add(last_day("1997-12-1"), INTERVAL 1 DAY);
784
date_add(last_day("1997-12-1"), INTERVAL 1 DAY)
786
select length(last_day("1997-12-1"));
787
length(last_day("1997-12-1"))
789
select last_day("1997-12-1")+0;
790
last_day("1997-12-1")+0
792
select last_day("1997-12-1")+0.0;
793
last_day("1997-12-1")+0.0
795
select strcmp(date_sub(localtimestamp(), interval 3 hour), utc_timestamp())=0;
796
strcmp(date_sub(localtimestamp(), interval 3 hour), utc_timestamp())=0
798
select strcmp(date_format(date_sub(localtimestamp(), interval 3 hour),"%T"), utc_time())=0;
799
strcmp(date_format(date_sub(localtimestamp(), interval 3 hour),"%T"), utc_time())=0
801
select strcmp(date_format(date_sub(localtimestamp(), interval 3 hour),"%Y-%m-%d"), utc_date())=0;
802
strcmp(date_format(date_sub(localtimestamp(), interval 3 hour),"%Y-%m-%d"), utc_date())=0
804
select strcmp(date_format(utc_timestamp(),"%T"), utc_time())=0;
805
strcmp(date_format(utc_timestamp(),"%T"), utc_time())=0
807
select strcmp(date_format(utc_timestamp(),"%Y-%m-%d"), utc_date())=0;
808
strcmp(date_format(utc_timestamp(),"%Y-%m-%d"), utc_date())=0
810
select strcmp(concat(utc_date(),' ',utc_time()),utc_timestamp())=0;
811
strcmp(concat(utc_date(),' ',utc_time()),utc_timestamp())=0
813
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);
814
id select_type table type possible_keys key key_len ref rows filtered Extra
815
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
817
Note 1003 select period_add('9602',-(12)) AS `period_add("9602",-12)`,period_diff(199505,'9404') AS `period_diff(199505,"9404")`,from_days(to_days('960101')) AS `from_days(to_days("960101"))`,dayofmonth('1997-01-02') AS `dayofmonth("1997-01-02")`,month('1997-01-02') AS `month("1997-01-02")`,monthname('1972-03-04') AS `monthname("1972-03-04")`,dayofyear('0000-00-00') AS `dayofyear("0000-00-00")`,hour('1997-03-03 23:03:22') AS `HOUR("1997-03-03 23:03:22")`,minute('23:03:22') AS `MINUTE("23:03:22")`,second(230322) AS `SECOND(230322)`,quarter(980303) AS `QUARTER(980303)`,week('1998-03-03',0) AS `WEEK("1998-03-03")`,yearweek('2000-01-01',1) AS `yearweek("2000-01-01",1)`,week(19950101,1) AS `week(19950101,1)`,year('98-02-03') AS `year("98-02-03")`,(weekday(curdate()) - weekday(now())) AS `weekday(curdate())-weekday(now())`,dayname('1962-03-03') AS `dayname("1962-03-03")`,unix_timestamp() AS `unix_timestamp()`,sec_to_time((time_to_sec('0:30:47') / 6.21)) AS `sec_to_time(time_to_sec("0:30:47")/6.21)`,curtime() AS `curtime()`,utc_time() AS `utc_time()`,curdate() AS `curdate()`,utc_date() AS `utc_date()`,utc_timestamp() AS `utc_timestamp()`,date_format('1997-01-02 03:04:05','%M %W %D %Y %y %m %d %h %i %s %w') AS `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')) AS `from_unixtime(unix_timestamp("1994-03-02 10:11:12"))`,('1997-12-31 23:59:59' + interval 1 second) AS `"1997-12-31 23:59:59" + INTERVAL 1 SECOND`,('1998-01-01 00:00:00' - interval 1 second) AS `"1998-01-01 00:00:00" - INTERVAL 1 SECOND`,('1997-12-31' + interval 1 day) AS `INTERVAL 1 DAY + "1997-12-31"`,extract(year from '1999-01-02 10:11:12') AS `extract(YEAR FROM "1999-01-02 10:11:12")`,('1997-12-31 23:59:59' + interval 1 second) AS `date_add("1997-12-31 23:59:59",INTERVAL 1 SECOND)`
818
SET @TMP='2007-08-01 12:22:49';
819
CREATE TABLE t1 (d DATETIME);
820
INSERT INTO t1 VALUES ('2007-08-01 12:22:59');
821
INSERT INTO t1 VALUES ('2007-08-01 12:23:01');
822
INSERT INTO t1 VALUES ('2007-08-01 12:23:20');
823
SELECT count(*) FROM t1 WHERE d>FROM_DAYS(TO_DAYS(@TMP)) AND d<=FROM_DAYS(TO_DAYS(@TMP)+1);
827
select last_day('2005-00-00');
828
last_day('2005-00-00')
831
Warning 1292 Incorrect datetime value: '2005-00-00'
832
select last_day('2005-00-01');
833
last_day('2005-00-01')
836
Warning 1292 Incorrect datetime value: '2005-00-01'
837
select last_day('2005-01-00');
838
last_day('2005-01-00')
841
Warning 1292 Incorrect datetime value: '2005-01-00'
842
select monthname(str_to_date(null, '%m')), monthname(str_to_date(null, '%m')),
843
monthname(str_to_date(1, '%m')), monthname(str_to_date(0, '%m'));
844
monthname(str_to_date(null, '%m')) monthname(str_to_date(null, '%m')) monthname(str_to_date(1, '%m')) monthname(str_to_date(0, '%m'))
845
NULL NULL January NULL
846
create table t1(f1 date, f2 time, f3 datetime);
847
insert into t1 values ("2006-01-01", "12:01:01", "2006-01-01 12:01:01");
848
insert into t1 values ("2006-01-02", "12:01:02", "2006-01-02 12:01:02");
849
select f1 from t1 where f1 between CAST("2006-1-1" as date) and CAST(20060101 as date);
852
select f1 from t1 where f1 between cast("2006-1-1" as date) and cast("2006.1.1" as date);
855
select f1 from t1 where date(f1) between cast("2006-1-1" as date) and cast("2006.1.1" as date);
858
select f2 from t1 where f2 between cast("12:1:2" as time) and cast("12:2:2" as time);
861
select f2 from t1 where time(f2) between cast("12:1:2" as time) and cast("12:2:2" as time);
864
select f3 from t1 where f3 between cast("2006-1-1 12:1:1" as datetime) and cast("2006-1-1 12:1:2" as datetime);
867
select f3 from t1 where timestamp(f3) between cast("2006-1-1 12:1:1" as datetime) and cast("2006-1-1 12:1:2" as datetime);
870
select f1 from t1 where cast("2006-1-1" as date) between f1 and f3;
873
select f1 from t1 where cast("2006-1-1" as date) between date(f1) and date(f3);
876
select f1 from t1 where cast("2006-1-1" as date) between f1 and cast('zzz' as date);
879
Warning 1292 Incorrect datetime value: 'zzz'
880
Warning 1292 Incorrect datetime value: 'zzz'
881
select f1 from t1 where makedate(2006,1) between date(f1) and date(f3);
884
select f1 from t1 where makedate(2006,2) between date(f1) and date(f3);
888
create table t1 select now() - now(), curtime() - curtime(),
889
sec_to_time(1) + 0, from_unixtime(1) + 0;
890
show create table t1;
892
t1 CREATE TABLE `t1` (
893
`now() - now()` double(23,6),
894
`curtime() - curtime()` double(23,6),
895
`sec_to_time(1) + 0` double(23,6),
896
`from_unixtime(1) + 0` double(23,6)
899
SELECT SEC_TO_TIME(3300000);
903
Warning 1292 Truncated incorrect time value: '3300000'
904
SELECT SEC_TO_TIME(3300000)+0;
905
SEC_TO_TIME(3300000)+0
908
Warning 1292 Truncated incorrect time value: '3300000'
909
SELECT SEC_TO_TIME(3600 * 4294967296);
910
SEC_TO_TIME(3600 * 4294967296)
913
Warning 1292 Truncated incorrect time value: '15461882265600'
914
SELECT TIME_TO_SEC('916:40:00');
915
TIME_TO_SEC('916:40:00')
918
Warning 1292 Truncated incorrect time value: '916:40:00'
919
SELECT ADDTIME('500:00:00', '416:40:00');
920
ADDTIME('500:00:00', '416:40:00')
923
Warning 1292 Truncated incorrect time value: '916:40:00'
924
SELECT ADDTIME('916:40:00', '416:40:00');
925
ADDTIME('916:40:00', '416:40:00')
928
Warning 1292 Truncated incorrect time value: '916:40:00'
929
Warning 1292 Truncated incorrect time value: '1255:39:59'
930
SELECT SUBTIME('916:40:00', '416:40:00');
931
SUBTIME('916:40:00', '416:40:00')
934
Warning 1292 Truncated incorrect time value: '916:40:00'
935
SELECT SUBTIME('-916:40:00', '416:40:00');
936
SUBTIME('-916:40:00', '416:40:00')
939
Warning 1292 Truncated incorrect time value: '-916:40:00'
940
Warning 1292 Truncated incorrect time value: '-1255:39:59'
941
SELECT MAKETIME(916,0,0);
945
Warning 1292 Truncated incorrect time value: '916:00:00'
946
SELECT MAKETIME(4294967296, 0, 0);
947
MAKETIME(4294967296, 0, 0)
950
Warning 1292 Truncated incorrect time value: '4294967296:00:00'
951
SELECT MAKETIME(-4294967296, 0, 0);
952
MAKETIME(-4294967296, 0, 0)
955
Warning 1292 Truncated incorrect time value: '-4294967296:00:00'
956
SELECT MAKETIME(0, 4294967296, 0);
957
MAKETIME(0, 4294967296, 0)
959
SELECT MAKETIME(0, 0, 4294967296);
960
MAKETIME(0, 0, 4294967296)
962
SELECT EXTRACT(HOUR FROM '100000:02:03');
963
EXTRACT(HOUR FROM '100000:02:03')
966
Warning 1292 Truncated incorrect time value: '100000:02:03'
967
CREATE TABLE t1(f1 TIME);
968
INSERT INTO t1 VALUES('916:00:00 a');
969
ERROR 22007: Incorrect time value: '916:00:00 a' for column 'f1' at row 1
973
SHOW VARIABLES LIKE 'character_set_results';
975
CREATE TABLE testBug8868 (field1 DATE, field2 VARCHAR(32));
976
INSERT INTO testBug8868 VALUES ('2006-09-04', 'abcd');
977
SELECT DATE_FORMAT(field1,'%b-%e %l:%i%p') as fmtddate, field2 FROM testBug8868;
980
DROP TABLE testBug8868;
984
INSERT INTO t1 VALUES (now()), (now());
985
SELECT 1 FROM t1 ORDER BY MAKETIME(1, 1, a);
990
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 DAY)),'%H') As H)
992
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 DAY)),'%H') As H);
995
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 DAY)),'%k') As H)
997
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 DAY)),'%k') As H);
1000
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 HOUR)),'%H') As H)
1002
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 HOUR)),'%H') As H);
1005
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 HOUR)),'%k') As H)
1007
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 HOUR)),'%k') As H);
1010
select last_day('0000-00-00');
1011
last_day('0000-00-00')
1013
select isnull(week(now() + 0)), isnull(week(now() + 0.2)),
1014
week(20061108), week(20061108.01), week(20061108085411.000002);
1015
isnull(week(now() + 0)) isnull(week(now() + 0.2)) week(20061108) week(20061108.01) week(20061108085411.000002)
1018
explain extended select timestampdiff(SQL_TSI_WEEK, '2001-02-01', '2001-05-01') as a1,
1019
timestampdiff(SQL_TSI_FRAC_SECOND, '2001-02-01 12:59:59.120000', '2001-05-01 12:58:58.119999') as a2;
1020
id select_type table type possible_keys key key_len ref rows filtered Extra
1021
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used
1023
Note 1003 select timestampdiff(WEEK,'2001-02-01','2001-05-01') AS `a1`,timestampdiff(SECOND_FRAC,'2001-02-01 12:59:59.120000','2001-05-01 12:58:58.119999') AS `a2`
1024
select time_format('100:00:00', '%H %k %h %I %l');
1025
time_format('100:00:00', '%H %k %h %I %l')
1027
select timestampdiff(month,'2004-09-11','2004-09-11');
1028
timestampdiff(month,'2004-09-11','2004-09-11')
1030
select timestampdiff(month,'2004-09-11','2005-09-11');
1031
timestampdiff(month,'2004-09-11','2005-09-11')
1033
select timestampdiff(month,'2004-09-11','2006-09-11');
1034
timestampdiff(month,'2004-09-11','2006-09-11')
1036
select timestampdiff(month,'2004-09-11','2007-09-11');
1037
timestampdiff(month,'2004-09-11','2007-09-11')
1039
select timestampdiff(month,'2005-09-11','2004-09-11');
1040
timestampdiff(month,'2005-09-11','2004-09-11')
1042
select timestampdiff(month,'2005-09-11','2003-09-11');
1043
timestampdiff(month,'2005-09-11','2003-09-11')
1045
select timestampdiff(month,'2004-02-28','2005-02-28');
1046
timestampdiff(month,'2004-02-28','2005-02-28')
1048
select timestampdiff(month,'2004-02-29','2005-02-28');
1049
timestampdiff(month,'2004-02-29','2005-02-28')
1051
select timestampdiff(month,'2004-02-28','2005-02-28');
1052
timestampdiff(month,'2004-02-28','2005-02-28')
1054
select timestampdiff(month,'2004-03-29','2005-03-28');
1055
timestampdiff(month,'2004-03-29','2005-03-28')
1057
select timestampdiff(month,'2003-02-28','2004-02-29');
1058
timestampdiff(month,'2003-02-28','2004-02-29')
1060
select timestampdiff(month,'2003-02-28','2005-02-28');
1061
timestampdiff(month,'2003-02-28','2005-02-28')
1063
select timestampdiff(month,'1999-09-11','2001-10-10');
1064
timestampdiff(month,'1999-09-11','2001-10-10')
1066
select timestampdiff(month,'1999-09-11','2001-9-11');
1067
timestampdiff(month,'1999-09-11','2001-9-11')
1069
select timestampdiff(year,'1999-09-11','2001-9-11');
1070
timestampdiff(year,'1999-09-11','2001-9-11')
1072
select timestampdiff(year,'2004-02-28','2005-02-28');
1073
timestampdiff(year,'2004-02-28','2005-02-28')
1075
select timestampdiff(year,'2004-02-29','2005-02-28');
1076
timestampdiff(year,'2004-02-29','2005-02-28')
1078
CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, day date);
1079
CREATE TABLE t2 (id int NOT NULL PRIMARY KEY, day date);
1080
INSERT INTO t1 VALUES
1081
(1, '2005-06-01'), (2, '2005-02-01'), (3, '2005-07-01');
1082
INSERT INTO t2 VALUES
1083
(1, '2005-08-01'), (2, '2005-06-15'), (3, '2005-07-15');
1084
SELECT * FROM t1, t2
1085
WHERE t1.day BETWEEN
1086
'2005.09.01' - INTERVAL 6 MONTH AND t2.day;
1088
1 2005-06-01 1 2005-08-01
1089
3 2005-07-01 1 2005-08-01
1090
1 2005-06-01 2 2005-06-15
1091
1 2005-06-01 3 2005-07-15
1092
3 2005-07-01 3 2005-07-15
1093
SELECT * FROM t1, t2
1094
WHERE CAST(t1.day AS DATE) BETWEEN
1095
'2005.09.01' - INTERVAL 6 MONTH AND t2.day;
1097
1 2005-06-01 1 2005-08-01
1098
3 2005-07-01 1 2005-08-01
1099
1 2005-06-01 2 2005-06-15
1100
1 2005-06-01 3 2005-07-15
1101
3 2005-07-01 3 2005-07-15
1103
select str_to_date('10:00 PM', '%h:%i %p') + INTERVAL 10 MINUTE;
1104
str_to_date('10:00 PM', '%h:%i %p') + INTERVAL 10 MINUTE
1106
create table t1 (field DATE);
1107
insert into t1 values ('2006-11-06');
1108
select * from t1 where field < '2006-11-06 04:08:36.0';
1111
select * from t1 where field = '2006-11-06 04:08:36.0';
1113
select * from t1 where field = '2006-11-06';
1116
select * from t1 where CAST(field as DATETIME) < '2006-11-06 04:08:36.0';
1119
select * from t1 where CAST(field as DATE) < '2006-11-06 04:08:36.0';
1123
CREATE TABLE t1 (a int, t1 time, t2 time, d date, PRIMARY KEY (a));
1124
INSERT INTO t1 VALUES (1, '10:00:00', NULL, NULL),
1125
(2, '11:00:00', '11:15:00', '1972-02-06');
1126
SELECT t1, t2, SEC_TO_TIME( TIME_TO_SEC( t2 ) - TIME_TO_SEC( t1 ) ), QUARTER(d)
1128
t1 t2 SEC_TO_TIME( TIME_TO_SEC( t2 ) - TIME_TO_SEC( t1 ) ) QUARTER(d)
1129
10:00:00 NULL NULL NULL
1130
11:00:00 11:15:00 00:15:00 1
1131
SELECT t1, t2, SEC_TO_TIME( TIME_TO_SEC( t2 ) - TIME_TO_SEC( t1 ) ), QUARTER(d)
1132
FROM t1 ORDER BY a DESC;
1133
t1 t2 SEC_TO_TIME( TIME_TO_SEC( t2 ) - TIME_TO_SEC( t1 ) ) QUARTER(d)
1134
11:00:00 11:15:00 00:15:00 1
1135
10:00:00 NULL NULL NULL
1137
SELECT TIME_FORMAT(SEC_TO_TIME(a),"%H:%i:%s") FROM (SELECT 3020399 AS a UNION SELECT 3020398 ) x GROUP BY 1;
1138
TIME_FORMAT(SEC_TO_TIME(a),"%H:%i:%s")
1141
select DATE_ADD('20071108181000', INTERVAL 1 DAY);
1142
DATE_ADD('20071108181000', INTERVAL 1 DAY)
1144
select DATE_ADD(20071108181000, INTERVAL 1 DAY);
1145
DATE_ADD(20071108181000, INTERVAL 1 DAY)
1147
select DATE_ADD('20071108', INTERVAL 1 DAY);
1148
DATE_ADD('20071108', INTERVAL 1 DAY)
1150
select DATE_ADD(20071108, INTERVAL 1 DAY);
1151
DATE_ADD(20071108, INTERVAL 1 DAY)
1153
select LAST_DAY('2007-12-06 08:59:19.05') - INTERVAL 1 SECOND;
1154
LAST_DAY('2007-12-06 08:59:19.05') - INTERVAL 1 SECOND
1156
SELECT TIMESTAMPADD(FRAC_SECOND, 1, '2008-02-18');
1157
TIMESTAMPADD(FRAC_SECOND, 1, '2008-02-18')
1158
2008-02-18 00:00:00.000001
1159
SELECT TIMESTAMPDIFF(FRAC_SECOND, '2008-02-17', '2008-02-18');
1160
TIMESTAMPDIFF(FRAC_SECOND, '2008-02-17', '2008-02-18')
1162
SELECT DATE_ADD('2008-02-18', INTERVAL 1 FRAC_SECOND);
1163
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FRAC_SECOND)' at line 1
1164
SELECT DATE_SUB('2008-02-18', INTERVAL 1 FRAC_SECOND);
1165
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FRAC_SECOND)' at line 1
1166
SELECT '2008-02-18' + INTERVAL 1 FRAC_SECOND;
1167
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FRAC_SECOND' at line 1
1168
SELECT '2008-02-18' - INTERVAL 1 FRAC_SECOND;
1169
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FRAC_SECOND' at line 1
1171
select date_sub("0050-01-01 00:00:01",INTERVAL 2 SECOND);
1172
date_sub("0050-01-01 00:00:01",INTERVAL 2 SECOND)
1174
select date_sub("0199-01-01 00:00:01",INTERVAL 2 SECOND);
1175
date_sub("0199-01-01 00:00:01",INTERVAL 2 SECOND)
1177
select date_add("0199-12-31 23:59:59",INTERVAL 2 SECOND);
1178
date_add("0199-12-31 23:59:59",INTERVAL 2 SECOND)
1180
select date_sub("0200-01-01 00:00:01",INTERVAL 2 SECOND);
1181
date_sub("0200-01-01 00:00:01",INTERVAL 2 SECOND)
1183
select date_sub("0200-01-01 00:00:01",INTERVAL 1 SECOND);
1184
date_sub("0200-01-01 00:00:01",INTERVAL 1 SECOND)
1186
select date_sub("0200-01-01 00:00:01",INTERVAL 2 SECOND);
1187
date_sub("0200-01-01 00:00:01",INTERVAL 2 SECOND)
1189
select date_add("2001-01-01 23:59:59",INTERVAL -2000 YEAR);
1190
date_add("2001-01-01 23:59:59",INTERVAL -2000 YEAR)
1192
select date_sub("50-01-01 00:00:01",INTERVAL 2 SECOND);
1193
date_sub("50-01-01 00:00:01",INTERVAL 2 SECOND)
1195
select date_sub("90-01-01 00:00:01",INTERVAL 2 SECOND);
1196
date_sub("90-01-01 00:00:01",INTERVAL 2 SECOND)
1198
select date_sub("0069-01-01 00:00:01",INTERVAL 2 SECOND);
1199
date_sub("0069-01-01 00:00:01",INTERVAL 2 SECOND)
1201
select date_sub("0169-01-01 00:00:01",INTERVAL 2 SECOND);
1202
date_sub("0169-01-01 00:00:01",INTERVAL 2 SECOND)