~stewart/drizzle/embedded-innodb-create-select-transaction-arrgh

« back to all changes in this revision

Viewing changes to mysql-test/r/type_timestamp.result

  • Committer: brian
  • Date: 2008-06-25 05:29:13 UTC
  • Revision ID: brian@localhost.localdomain-20080625052913-6upwo0jsrl4lnapl
clean slate

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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);
 
5
SET TIMESTAMP=1234;
 
6
insert into t1 values(1,NULL);
 
7
insert into t1 values(2,"2002-03-03");
 
8
SET TIMESTAMP=1235;
 
9
insert into t1 values(3,NULL);
 
10
SET TIMESTAMP=1236;
 
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");
 
13
SET TIMESTAMP=1237;
 
14
insert into t1 select * from t2;
 
15
SET TIMESTAMP=1238;
 
16
insert into t1 (a) select a+1 from t2 where a=8;
 
17
select * from t1;
 
18
a       t
 
19
1       1970-01-01 03:20:34
 
20
2       2002-03-03 00:00:00
 
21
3       1970-01-01 03:20:35
 
22
4       1970-01-01 03:20:36
 
23
5       2002-03-04 00:00:00
 
24
6       1970-01-01 03:20:37
 
25
7       2002-03-05 00:00:00
 
26
8       0000-00-00 00:00:00
 
27
9       1970-01-01 03:20:38
 
28
drop table t1,t2;
 
29
SET TIMESTAMP=1234;
 
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";
 
33
stamp
 
34
1999-04-02 00:00:00
 
35
UPDATE t1 SET value="my value" WHERE id="myKey";
 
36
SELECT stamp FROM t1 WHERE id="myKey";
 
37
stamp
 
38
1999-04-02 00:00:00
 
39
UPDATE t1 SET id="myKey" WHERE value="my value";
 
40
SELECT stamp FROM t1 WHERE id="myKey";
 
41
stamp
 
42
1999-04-02 00:00:00
 
43
drop table t1;
 
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())
 
48
1970 70 1970    1970
 
49
drop table t1;
 
50
create table t1 (ix timestamp);
 
51
insert into t1 values (19991101000000),(19990102030405),(19990630232922),(19990601000000),(19990930232922),(19990531232922),(19990501000000),(19991101000000),(19990501000000);
 
52
select ix+0 from t1;
 
53
ix+0
 
54
19991101000000
 
55
19990102030405
 
56
19990630232922
 
57
19990601000000
 
58
19990930232922
 
59
19990531232922
 
60
19990501000000
 
61
19991101000000
 
62
19990501000000
 
63
truncate table t1;
 
64
insert into t1 values ("19991101000000"),("19990102030405"),("19990630232922"),("19990601000000");
 
65
select ix+0 from t1;
 
66
ix+0
 
67
19991101000000
 
68
19990102030405
 
69
19990630232922
 
70
19990601000000
 
71
drop table t1;
 
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);
 
85
SELECT * FROM t1;
 
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
 
99
drop table t1;
 
100
create table t1 (t2 timestamp, t4 timestamp, t6 timestamp,
 
101
t8 timestamp, t10 timestamp, t12 timestamp,
 
102
t14 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");
 
107
select * from t1;
 
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
 
111
select * from t1;
 
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
 
115
drop table t1;
 
116
create table t1 (ix timestamp);
 
117
insert into t1 values (0),(20030101010160),(20030101016001),(20030101240101),(20030132010101),(20031301010101),(20031200000000),(20030000000000);
 
118
Warnings:
 
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
 
126
select ix+0 from t1;
 
127
ix+0
 
128
0
 
129
0
 
130
0
 
131
0
 
132
0
 
133
0
 
134
0
 
135
0
 
136
truncate table t1;
 
137
insert into t1 values ("00000000000000"),("20030101010160"),("20030101016001"),("20030101240101"),("20030132010101"),("20031301010101"),("20031200000000"),("20030000000000");
 
138
Warnings:
 
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
 
146
select ix+0 from t1;
 
147
ix+0
 
148
0
 
149
0
 
150
0
 
151
0
 
152
0
 
153
0
 
154
0
 
155
0
 
156
truncate table t1;
 
157
insert into t1 values ("0000-00-00 00:00:00 some trailer"),("2003-01-01 00:00:00 some trailer");
 
158
Warnings:
 
159
Warning 1265    Data truncated for column 'ix' at row 1
 
160
Warning 1265    Data truncated for column 'ix' at row 2
 
161
select ix+0 from t1;
 
162
ix+0
 
163
0
 
164
20030101000000
 
165
drop table t1;
 
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);
 
183
select * from t1;
 
184
t1      t2      t3
 
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;
 
188
Table   Create Table
 
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     
 
197
t2      datetime        YES             NULL    
 
198
t3      timestamp       NO              0000-00-00 00:00:00     
 
199
drop table t1;
 
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);
 
207
select * from t1;
 
208
t1      t2      t3
 
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;
 
212
Table   Create Table
 
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       
 
221
t2      datetime        YES             NULL    
 
222
t3      timestamp       NO              0000-00-00 00:00:00     
 
223
drop table t1;
 
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 ();
 
227
select * from t1;
 
228
t1      t2
 
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);
 
234
select * from t1;
 
235
t1      t2
 
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;
 
239
Table   Create Table
 
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
 
247
t2      datetime        YES             NULL    
 
248
drop table t1;
 
249
create table t1 (t1 timestamp default now() on update now(), t2 datetime);
 
250
SET TIMESTAMP=1000000006;
 
251
insert into t1 values ();
 
252
select * from t1;
 
253
t1      t2
 
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);
 
259
select * from t1;
 
260
t1      t2
 
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;
 
264
Table   Create Table
 
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
 
272
t2      datetime        YES             NULL    
 
273
drop table t1;
 
274
create table t1 (t1 timestamp, t2 datetime, t3 timestamp);
 
275
SET TIMESTAMP=1000000007;
 
276
insert into t1 values ();
 
277
select * from t1;
 
278
t1      t2      t3
 
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);
 
284
select * from t1;
 
285
t1      t2      t3
 
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;
 
289
Table   Create Table
 
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
 
298
t2      datetime        YES             NULL    
 
299
t3      timestamp       NO              0000-00-00 00:00:00     
 
300
drop table t1;
 
301
create table t1 (t1 timestamp default current_timestamp on update current_timestamp, t2 datetime);
 
302
SET TIMESTAMP=1000000009;
 
303
insert into t1 values ();
 
304
select * from t1;
 
305
t1      t2
 
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);
 
311
select * from t1;
 
312
t1      t2
 
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;
 
316
Table   Create Table
 
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
 
324
t2      datetime        YES             NULL    
 
325
truncate table t1;
 
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';
 
329
select * from t1;
 
330
t1      t2
 
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';
 
333
select * from t1;
 
334
t1      t2
 
335
2004-04-03 00:00:00     2004-04-01 00:00:00
 
336
drop table t1;
 
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;
 
341
select * from t1;
 
342
pk      t1      bulk
 
343
1       2001-09-09 04:46:53     20
 
344
drop table t1;
 
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;
 
349
select * from t1;
 
350
pk      t1      bulk
 
351
1       2003-01-01 00:00:00     20
 
352
drop table t1;
 
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;
 
357
select * from t1;
 
358
pk      t1      bulk
 
359
1       2001-09-09 04:46:55     20
 
360
drop table t1;
 
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;
 
365
select * from t1;
 
366
t1      i
 
367
2004-04-01 00:00:00     10
 
368
drop table t1;
 
369
create table t1 (a timestamp null, b timestamp null);
 
370
show create table t1;
 
371
Table   Create Table
 
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 ();
 
379
select * from t1;
 
380
a       b
 
381
NULL    NULL
 
382
NULL    NULL
 
383
drop table t1;
 
384
create table t1 (a timestamp null default current_timestamp on update current_timestamp, b timestamp null);
 
385
show create table t1;
 
386
Table   Create Table
 
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 ();
 
394
select * from t1;
 
395
a       b
 
396
NULL    NULL
 
397
2001-09-09 04:46:58     NULL
 
398
drop table t1;
 
399
create table t1 (a timestamp null default null, b timestamp null default '2003-01-01 00:00:00');
 
400
show create table t1;
 
401
Table   Create Table
 
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);
 
408
select * from t1;
 
409
a       b
 
410
NULL    NULL
 
411
NULL    2003-01-01 00:00:00
 
412
drop table t1;
 
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;
 
417
select * from t1;
 
418
a       b
 
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
 
421
drop table t1;
 
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;
 
426
max(t)
 
427
2004-01-01 01:00:00
 
428
2004-02-01 00:00:00
 
429
drop table t1;
 
430
set sql_mode='maxdb';
 
431
create table t1 (a timestamp, b timestamp);
 
432
show create table t1;
 
433
Table   Create Table
 
434
t1      CREATE TABLE "t1" (
 
435
  "a" datetime DEFAULT NULL,
 
436
  "b" datetime DEFAULT NULL
 
437
)
 
438
set sql_mode='';
 
439
drop table t1;
 
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');
 
443
select * from t1;
 
444
a       b       c
 
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;
 
449
select * from t1;
 
450
a       b       c
 
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);
 
455
select * from t1;
 
456
a       b       c
 
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;
 
462
select * from t1;
 
463
a       b       c
 
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;
 
469
select * from t1;
 
470
a       b       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;
 
478
select * from t1;
 
479
a       b       c
 
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
 
486
drop table t1;
 
487
set time_zone= @@global.time_zone;
 
488
CREATE TABLE t1 (
 
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',
 
492
PRIMARY KEY (`id`)
 
493
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
 
494
show fields from t1;
 
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';
 
500
is_nullable
 
501
NO
 
502
drop table t1;