1
drop table if exists t1,t2;
2
set time_zone="+03:00";
3
CREATE TABLE t1 (a int, t timestamp);
4
CREATE TABLE t2 (a int, t datetime);
6
insert into t1 values(1,NULL);
7
insert into t1 values(2,"2002-03-03");
9
insert into t1 values(3,NULL);
11
insert into t1 (a) values(4);
12
insert into t2 values(5,"2002-03-04"),(6,NULL),(7,"2002-03-05"),(8,"00-00-00");
14
insert into t1 select * from t2;
16
insert into t1 (a) select a+1 from t2 where a=8;
30
CREATE TABLE t1 (value TEXT NOT NULL, id VARCHAR(32) NOT NULL, stamp timestamp, PRIMARY KEY (id));
31
INSERT INTO t1 VALUES ("my value", "myKey","1999-04-02 00:00:00");
32
SELECT stamp FROM t1 WHERE id="myKey";
35
UPDATE t1 SET value="my value" WHERE id="myKey";
36
SELECT stamp FROM t1 WHERE id="myKey";
39
UPDATE t1 SET id="myKey" WHERE value="my value";
40
SELECT stamp FROM t1 WHERE id="myKey";
44
create table t1 (a timestamp);
45
insert into t1 values (now());
46
select date_format(a,"%Y %y"),year(a),year(now()) from t1;
47
date_format(a,"%Y %y") year(a) year(now())
50
create table t1 (ix timestamp);
51
insert into t1 values (19991101000000),(19990102030405),(19990630232922),(19990601000000),(19990930232922),(19990531232922),(19990501000000),(19991101000000),(19990501000000);
64
insert into t1 values ("19991101000000"),("19990102030405"),("19990630232922"),("19990601000000");
72
CREATE TABLE t1 (date date, date_time datetime, time_stamp timestamp);
73
INSERT INTO t1 VALUES ("1998-12-31","1998-12-31 23:59:59",19981231235959);
74
INSERT INTO t1 VALUES ("1999-01-01","1999-01-01 00:00:00",19990101000000);
75
INSERT INTO t1 VALUES ("1999-09-09","1999-09-09 23:59:59",19990909235959);
76
INSERT INTO t1 VALUES ("2000-01-01","2000-01-01 00:00:00",20000101000000);
77
INSERT INTO t1 VALUES ("2000-02-28","2000-02-28 00:00:00",20000228000000);
78
INSERT INTO t1 VALUES ("2000-02-29","2000-02-29 00:00:00",20000229000000);
79
INSERT INTO t1 VALUES ("2000-03-01","2000-03-01 00:00:00",20000301000000);
80
INSERT INTO t1 VALUES ("2000-12-31","2000-12-31 23:59:59",20001231235959);
81
INSERT INTO t1 VALUES ("2001-01-01","2001-01-01 00:00:00",20010101000000);
82
INSERT INTO t1 VALUES ("2004-12-31","2004-12-31 23:59:59",20041231235959);
83
INSERT INTO t1 VALUES ("2005-01-01","2005-01-01 00:00:00",20050101000000);
84
INSERT INTO t1 VALUES ("2030-01-01","2030-01-01 00:00:00",20300101000000);
86
date date_time time_stamp
87
1998-12-31 1998-12-31 23:59:59 1998-12-31 23:59:59
88
1999-01-01 1999-01-01 00:00:00 1999-01-01 00:00:00
89
1999-09-09 1999-09-09 23:59:59 1999-09-09 23:59:59
90
2000-01-01 2000-01-01 00:00:00 2000-01-01 00:00:00
91
2000-02-28 2000-02-28 00:00:00 2000-02-28 00:00:00
92
2000-02-29 2000-02-29 00:00:00 2000-02-29 00:00:00
93
2000-03-01 2000-03-01 00:00:00 2000-03-01 00:00:00
94
2000-12-31 2000-12-31 23:59:59 2000-12-31 23:59:59
95
2001-01-01 2001-01-01 00:00:00 2001-01-01 00:00:00
96
2004-12-31 2004-12-31 23:59:59 2004-12-31 23:59:59
97
2005-01-01 2005-01-01 00:00:00 2005-01-01 00:00:00
98
2030-01-01 2030-01-01 00:00:00 2030-01-01 00:00:00
100
create table t1 (t2 timestamp, t4 timestamp, t6 timestamp,
101
t8 timestamp, t10 timestamp, t12 timestamp,
103
insert t1 values (0,0,0,0,0,0,0),
104
("1997-12-31 23:47:59", "1997-12-31 23:47:59", "1997-12-31 23:47:59",
105
"1997-12-31 23:47:59", "1997-12-31 23:47:59", "1997-12-31 23:47:59",
106
"1997-12-31 23:47:59");
108
t2 t4 t6 t8 t10 t12 t14
109
0000-00-00 00:00:00 0000-00-00 00:00:00 0000-00-00 00:00:00 0000-00-00 00:00:00 0000-00-00 00:00:00 0000-00-00 00:00:00 0000-00-00 00:00:00
110
1997-12-31 23:47:59 1997-12-31 23:47:59 1997-12-31 23:47:59 1997-12-31 23:47:59 1997-12-31 23:47:59 1997-12-31 23:47:59 1997-12-31 23:47:59
112
t2 t4 t6 t8 t10 t12 t14
113
0000-00-00 00:00:00 0000-00-00 00:00:00 0000-00-00 00:00:00 0000-00-00 00:00:00 0000-00-00 00:00:00 0000-00-00 00:00:00 0000-00-00 00:00:00
114
1997-12-31 23:47:59 1997-12-31 23:47:59 1997-12-31 23:47:59 1997-12-31 23:47:59 1997-12-31 23:47:59 1997-12-31 23:47:59 1997-12-31 23:47:59
116
create table t1 (ix timestamp);
117
insert into t1 values (0),(20030101010160),(20030101016001),(20030101240101),(20030132010101),(20031301010101),(20031200000000),(20030000000000);
119
Warning 1265 Data truncated for column 'ix' at row 2
120
Warning 1265 Data truncated for column 'ix' at row 3
121
Warning 1265 Data truncated for column 'ix' at row 4
122
Warning 1265 Data truncated for column 'ix' at row 5
123
Warning 1265 Data truncated for column 'ix' at row 6
124
Warning 1265 Data truncated for column 'ix' at row 7
125
Warning 1265 Data truncated for column 'ix' at row 8
137
insert into t1 values ("00000000000000"),("20030101010160"),("20030101016001"),("20030101240101"),("20030132010101"),("20031301010101"),("20031200000000"),("20030000000000");
139
Warning 1265 Data truncated for column 'ix' at row 2
140
Warning 1265 Data truncated for column 'ix' at row 3
141
Warning 1265 Data truncated for column 'ix' at row 4
142
Warning 1265 Data truncated for column 'ix' at row 5
143
Warning 1265 Data truncated for column 'ix' at row 6
144
Warning 1265 Data truncated for column 'ix' at row 7
145
Warning 1265 Data truncated for column 'ix' at row 8
157
insert into t1 values ("0000-00-00 00:00:00 some trailer"),("2003-01-01 00:00:00 some trailer");
159
Warning 1265 Data truncated for column 'ix' at row 1
160
Warning 1265 Data truncated for column 'ix' at row 2
166
create table t1 (t1 timestamp, t2 timestamp default now());
167
ERROR HY000: Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
168
create table t1 (t1 timestamp, t2 timestamp on update now());
169
ERROR HY000: Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
170
create table t1 (t1 timestamp, t2 timestamp default now() on update now());
171
ERROR HY000: Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
172
create table t1 (t1 timestamp default now(), t2 timestamp on update now());
173
ERROR HY000: Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
174
create table t1 (t1 timestamp on update now(), t2 timestamp default now() on update now());
175
ERROR HY000: Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
176
create table t1 (t1 timestamp default '2003-01-01 00:00:00', t2 datetime, t3 timestamp);
177
SET TIMESTAMP=1000000000;
178
insert into t1 values ();
179
SET TIMESTAMP=1000000001;
180
update t1 set t2=now();
181
SET TIMESTAMP=1000000002;
182
insert into t1 (t1,t3) values (default, default);
185
2003-01-01 00:00:00 2001-09-09 04:46:41 0000-00-00 00:00:00
186
2003-01-01 00:00:00 NULL 0000-00-00 00:00:00
187
show create table t1;
189
t1 CREATE TABLE `t1` (
190
`t1` timestamp NOT NULL DEFAULT '2003-01-01 00:00:00',
191
`t2` datetime DEFAULT NULL,
192
`t3` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
193
) ENGINE=MyISAM DEFAULT CHARSET=latin1
194
show columns from t1;
195
Field Type Null Key Default Extra
196
t1 timestamp NO 2003-01-01 00:00:00
198
t3 timestamp NO 0000-00-00 00:00:00
200
create table t1 (t1 timestamp default now(), t2 datetime, t3 timestamp);
201
SET TIMESTAMP=1000000002;
202
insert into t1 values ();
203
SET TIMESTAMP=1000000003;
204
update t1 set t2=now();
205
SET TIMESTAMP=1000000003;
206
insert into t1 (t1,t3) values (default, default);
209
2001-09-09 04:46:42 2001-09-09 04:46:43 0000-00-00 00:00:00
210
2001-09-09 04:46:43 NULL 0000-00-00 00:00:00
211
show create table t1;
213
t1 CREATE TABLE `t1` (
214
`t1` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
215
`t2` datetime DEFAULT NULL,
216
`t3` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
217
) ENGINE=MyISAM DEFAULT CHARSET=latin1
218
show columns from t1;
219
Field Type Null Key Default Extra
220
t1 timestamp NO CURRENT_TIMESTAMP
222
t3 timestamp NO 0000-00-00 00:00:00
224
create table t1 (t1 timestamp default '2003-01-01 00:00:00' on update now(), t2 datetime);
225
SET TIMESTAMP=1000000004;
226
insert into t1 values ();
229
2003-01-01 00:00:00 NULL
230
SET TIMESTAMP=1000000005;
231
update t1 set t2=now();
232
SET TIMESTAMP=1000000005;
233
insert into t1 (t1) values (default);
236
2001-09-09 04:46:45 2001-09-09 04:46:45
237
2003-01-01 00:00:00 NULL
238
show create table t1;
240
t1 CREATE TABLE `t1` (
241
`t1` timestamp NOT NULL DEFAULT '2003-01-01 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
242
`t2` datetime DEFAULT NULL
243
) ENGINE=MyISAM DEFAULT CHARSET=latin1
244
show columns from t1;
245
Field Type Null Key Default Extra
246
t1 timestamp NO 2003-01-01 00:00:00 on update CURRENT_TIMESTAMP
249
create table t1 (t1 timestamp default now() on update now(), t2 datetime);
250
SET TIMESTAMP=1000000006;
251
insert into t1 values ();
254
2001-09-09 04:46:46 NULL
255
SET TIMESTAMP=1000000007;
256
update t1 set t2=now();
257
SET TIMESTAMP=1000000007;
258
insert into t1 (t1) values (default);
261
2001-09-09 04:46:47 2001-09-09 04:46:47
262
2001-09-09 04:46:47 NULL
263
show create table t1;
265
t1 CREATE TABLE `t1` (
266
`t1` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
267
`t2` datetime DEFAULT NULL
268
) ENGINE=MyISAM DEFAULT CHARSET=latin1
269
show columns from t1;
270
Field Type Null Key Default Extra
271
t1 timestamp NO CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP
274
create table t1 (t1 timestamp, t2 datetime, t3 timestamp);
275
SET TIMESTAMP=1000000007;
276
insert into t1 values ();
279
2001-09-09 04:46:47 NULL 0000-00-00 00:00:00
280
SET TIMESTAMP=1000000008;
281
update t1 set t2=now();
282
SET TIMESTAMP=1000000008;
283
insert into t1 (t1,t3) values (default, default);
286
2001-09-09 04:46:48 2001-09-09 04:46:48 0000-00-00 00:00:00
287
2001-09-09 04:46:48 NULL 0000-00-00 00:00:00
288
show create table t1;
290
t1 CREATE TABLE `t1` (
291
`t1` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
292
`t2` datetime DEFAULT NULL,
293
`t3` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
294
) ENGINE=MyISAM DEFAULT CHARSET=latin1
295
show columns from t1;
296
Field Type Null Key Default Extra
297
t1 timestamp NO CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP
299
t3 timestamp NO 0000-00-00 00:00:00
301
create table t1 (t1 timestamp default current_timestamp on update current_timestamp, t2 datetime);
302
SET TIMESTAMP=1000000009;
303
insert into t1 values ();
306
2001-09-09 04:46:49 NULL
307
SET TIMESTAMP=1000000010;
308
update t1 set t2=now();
309
SET TIMESTAMP=1000000011;
310
insert into t1 (t1) values (default);
313
2001-09-09 04:46:50 2001-09-09 04:46:50
314
2001-09-09 04:46:51 NULL
315
show create table t1;
317
t1 CREATE TABLE `t1` (
318
`t1` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
319
`t2` datetime DEFAULT NULL
320
) ENGINE=MyISAM DEFAULT CHARSET=latin1
321
show columns from t1;
322
Field Type Null Key Default Extra
323
t1 timestamp NO CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP
326
insert into t1 values ('2004-04-01 00:00:00', '2004-04-01 00:00:00');
327
SET TIMESTAMP=1000000012;
328
update t1 set t1= '2004-04-02 00:00:00';
331
2004-04-02 00:00:00 2004-04-01 00:00:00
332
update t1 as ta, t1 as tb set tb.t1= '2004-04-03 00:00:00';
335
2004-04-03 00:00:00 2004-04-01 00:00:00
337
create table t1 (pk int primary key, t1 timestamp default current_timestamp on update current_timestamp, bulk int);
338
insert into t1 values (1, '2004-04-01 00:00:00', 10);
339
SET TIMESTAMP=1000000013;
340
replace into t1 set pk = 1, bulk= 20;
343
1 2001-09-09 04:46:53 20
345
create table t1 (pk int primary key, t1 timestamp default '2003-01-01 00:00:00' on update current_timestamp, bulk int);
346
insert into t1 values (1, '2004-04-01 00:00:00', 10);
347
SET TIMESTAMP=1000000014;
348
replace into t1 set pk = 1, bulk= 20;
351
1 2003-01-01 00:00:00 20
353
create table t1 (pk int primary key, t1 timestamp default current_timestamp, bulk int);
354
insert into t1 values (1, '2004-04-01 00:00:00', 10);
355
SET TIMESTAMP=1000000015;
356
replace into t1 set pk = 1, bulk= 20;
359
1 2001-09-09 04:46:55 20
361
create table t1 (t1 timestamp default current_timestamp on update current_timestamp);
362
insert into t1 values ('2004-04-01 00:00:00');
363
SET TIMESTAMP=1000000016;
364
alter table t1 add i int default 10;
367
2004-04-01 00:00:00 10
369
create table t1 (a timestamp null, b timestamp null);
370
show create table t1;
372
t1 CREATE TABLE `t1` (
373
`a` timestamp NULL DEFAULT NULL,
374
`b` timestamp NULL DEFAULT NULL
375
) ENGINE=MyISAM DEFAULT CHARSET=latin1
376
insert into t1 values (NULL, NULL);
377
SET TIMESTAMP=1000000017;
378
insert into t1 values ();
384
create table t1 (a timestamp null default current_timestamp on update current_timestamp, b timestamp null);
385
show create table t1;
387
t1 CREATE TABLE `t1` (
388
`a` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
389
`b` timestamp NULL DEFAULT NULL
390
) ENGINE=MyISAM DEFAULT CHARSET=latin1
391
insert into t1 values (NULL, NULL);
392
SET TIMESTAMP=1000000018;
393
insert into t1 values ();
397
2001-09-09 04:46:58 NULL
399
create table t1 (a timestamp null default null, b timestamp null default '2003-01-01 00:00:00');
400
show create table t1;
402
t1 CREATE TABLE `t1` (
403
`a` timestamp NULL DEFAULT NULL,
404
`b` timestamp NULL DEFAULT '2003-01-01 00:00:00'
405
) ENGINE=MyISAM DEFAULT CHARSET=latin1
406
insert into t1 values (NULL, NULL);
407
insert into t1 values (DEFAULT, DEFAULT);
411
NULL 2003-01-01 00:00:00
413
create table t1 (a bigint, b bigint);
414
insert into t1 values (NULL, NULL), (20030101000000, 20030102000000);
415
set timestamp=1000000019;
416
alter table t1 modify a timestamp, modify b timestamp;
419
2001-09-09 04:46:59 2001-09-09 04:46:59
420
2003-01-01 00:00:00 2003-01-02 00:00:00
422
create table t1 (a char(2), t timestamp);
423
insert into t1 values ('a', '2004-01-01 00:00:00'), ('a', '2004-01-01 01:00:00'),
424
('b', '2004-02-01 00:00:00');
425
select max(t) from t1 group by a;
430
set sql_mode='maxdb';
431
create table t1 (a timestamp, b timestamp);
432
show create table t1;
434
t1 CREATE TABLE "t1" (
435
"a" datetime DEFAULT NULL,
436
"b" datetime DEFAULT NULL
440
create table t1 (a int auto_increment primary key, b int, c timestamp);
441
insert into t1 (a, b, c) values (1, 0, '2001-01-01 01:01:01'),
442
(2, 0, '2002-02-02 02:02:02'), (3, 0, '2003-03-03 03:03:03');
445
1 0 2001-01-01 01:01:01
446
2 0 2002-02-02 02:02:02
447
3 0 2003-03-03 03:03:03
448
update t1 set b = 2, c = c where a = 2;
451
1 0 2001-01-01 01:01:01
452
2 2 2002-02-02 02:02:02
453
3 0 2003-03-03 03:03:03
454
insert into t1 (a) values (4);
457
1 0 2001-01-01 01:01:01
458
2 2 2002-02-02 02:02:02
459
3 0 2003-03-03 03:03:03
460
4 NULL 2001-09-09 04:46:59
461
update t1 set c = '2004-04-04 04:04:04' where a = 4;
464
1 0 2001-01-01 01:01:01
465
2 2 2002-02-02 02:02:02
466
3 0 2003-03-03 03:03:03
467
4 NULL 2004-04-04 04:04:04
468
insert into t1 (a) values (3), (5) on duplicate key update b = 3, c = c;
471
1 0 2001-01-01 01:01:01
472
2 2 2002-02-02 02:02:02
473
3 3 2003-03-03 03:03:03
474
4 NULL 2004-04-04 04:04:04
475
5 NULL 2001-09-09 04:46:59
476
insert into t1 (a, c) values (4, '2004-04-04 00:00:00'),
477
(6, '2006-06-06 06:06:06') on duplicate key update b = 4;
480
1 0 2001-01-01 01:01:01
481
2 2 2002-02-02 02:02:02
482
3 3 2003-03-03 03:03:03
483
4 4 2001-09-09 04:46:59
484
5 NULL 2001-09-09 04:46:59
485
6 NULL 2006-06-06 06:06:06
487
set time_zone= @@global.time_zone;
489
`id` int(11) NOT NULL auto_increment,
490
`username` varchar(80) NOT NULL default '',
491
`posted_on` timestamp NOT NULL default '0000-00-00 00:00:00',
493
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
495
Field Type Null Key Default Extra
496
id int(11) NO PRI NULL auto_increment
497
username varchar(80) NO
498
posted_on timestamp NO 0000-00-00 00:00:00
499
select is_nullable from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='t1' and COLUMN_NAME='posted_on';