Linux ip-172-26-2-223 5.4.0-1018-aws #18-Ubuntu SMP Wed Jun 24 01:15:00 UTC 2020 x86_64
Apache
: 172.26.2.223 | : 18.191.117.103
Cant Read [ /etc/named.conf ]
8.1.13
www
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
BLACK DEFEND!
README
+ Create Folder
+ Create File
/
www /
server /
mysql /
mysql-test /
r /
[ HOME SHELL ]
Name
Size
Permission
Action
1st.result
597
B
-rw-r--r--
acl_tables_errors_debug.result
8.93
KB
-rw-r--r--
alias.result
13.58
KB
-rw-r--r--
almost_full.result
1.11
KB
-rw-r--r--
alter_table-big.result
5.45
KB
-rw-r--r--
alter_table.result
154.41
KB
-rw-r--r--
analyze.result
3.69
KB
-rw-r--r--
ansi.result
1.92
KB
-rw-r--r--
archive-big.result
616
B
-rw-r--r--
archive.result
525.18
KB
-rw-r--r--
archive_bitfield.result
4.26
KB
-rw-r--r--
archive_debug.result
355
B
-rw-r--r--
archive_gis.result
25.98
KB
-rw-r--r--
archive_no_symlink.result
882
B
-rw-r--r--
archive_plugin.result
531
B
-rw-r--r--
archive_symlink.result
2.3
KB
-rw-r--r--
auth_rpl.result
1.85
KB
-rw-r--r--
auto_increment.result
12.11
KB
-rw-r--r--
backup.result
4.29
KB
-rw-r--r--
bench_count_distinct.result
557
B
-rw-r--r--
big_test.require
17
B
-rw-r--r--
bigint.result
23.33
KB
-rw-r--r--
binary.result
6.09
KB
-rw-r--r--
binary_to_hex.result
5.87
KB
-rw-r--r--
binlog_tx_isolation.result
1.71
KB
-rw-r--r--
blackhole.result
613
B
-rw-r--r--
blackhole_plugin.result
565
B
-rw-r--r--
bool.result
2.67
KB
-rw-r--r--
bootstrap.result
525
B
-rw-r--r--
bug12368203.result
2.77
KB
-rw-r--r--
bug12427262.result
1.86
KB
-rw-r--r--
bug12969156.result
952
B
-rw-r--r--
bug17076131.result
322
B
-rw-r--r--
bug33509.result
2.31
KB
-rw-r--r--
bug39022.result
1.2
KB
-rw-r--r--
bug46080.result
669
B
-rw-r--r--
bug46261.result
353
B
-rw-r--r--
bug46760.result
1.26
KB
-rw-r--r--
bug47671.result
287
B
-rw-r--r--
bug58669.result
480
B
-rw-r--r--
bulk_replace.result
281
B
-rw-r--r--
cache_innodb.result
6.96
KB
-rw-r--r--
case.result
10.63
KB
-rw-r--r--
case_insensitive_file_system.r...
46
B
-rw-r--r--
case_sensitive_file_system.req...
47
B
-rw-r--r--
cast.result
16.27
KB
-rw-r--r--
change_user.result
2.82
KB
-rw-r--r--
charset.result
2.14
KB
-rw-r--r--
check.result
2.05
KB
-rw-r--r--
check_auto_permission.result
261
B
-rw-r--r--
check_var_limit.require
8
B
-rw-r--r--
client_xml.result
2.38
KB
-rw-r--r--
comment_column.result
141.21
KB
-rw-r--r--
comment_column2.result
355.68
KB
-rw-r--r--
comment_index.result
173.32
KB
-rw-r--r--
comment_table.result
28.95
KB
-rw-r--r--
comments.result
2.34
KB
-rw-r--r--
commit.result
14.83
KB
-rw-r--r--
commit_1innodb.result
19.59
KB
-rw-r--r--
compare.result
5.07
KB
-rw-r--r--
compress.result
66.24
KB
-rw-r--r--
concurrent_innodb_safelog.resu...
32.01
KB
-rw-r--r--
concurrent_innodb_unsafelog.re...
31.74
KB
-rw-r--r--
condition_filter.result
2.17
KB
-rw-r--r--
connect.result
11.02
KB
-rw-r--r--
connect_debug.result
1.46
KB
-rw-r--r--
consistent_snapshot.result
1.14
KB
-rw-r--r--
constraints.result
2.56
KB
-rw-r--r--
count_distinct.result
8.04
KB
-rw-r--r--
count_distinct2.result
2.21
KB
-rw-r--r--
count_distinct3.result
278
B
-rw-r--r--
create-big.result
7.6
KB
-rw-r--r--
create.result
71.42
KB
-rw-r--r--
create_not_windows.result
961
B
-rw-r--r--
create_select_tmp.result
846
B
-rw-r--r--
create_w_max_indexes_64.result
84.46
KB
-rw-r--r--
csv.result
59.08
KB
-rw-r--r--
csv_alter_table.result
1.17
KB
-rw-r--r--
csv_not_null.result
1.93
KB
-rw-r--r--
ctype_ascii.result
2.5
KB
-rw-r--r--
ctype_big5.result
34.28
KB
-rw-r--r--
ctype_binary.result
82.78
KB
-rw-r--r--
ctype_collate.result
18.3
KB
-rw-r--r--
ctype_cp1250_ch.result
22.29
KB
-rw-r--r--
ctype_cp1251.result
96.48
KB
-rw-r--r--
ctype_cp932.result
996
B
-rw-r--r--
ctype_cp932_binlog_row.result
734
B
-rw-r--r--
ctype_cp932_binlog_stm.result
251.36
KB
-rw-r--r--
ctype_create.result
3.12
KB
-rw-r--r--
ctype_errors.result
1.66
KB
-rw-r--r--
ctype_eucjpms.result
400.48
KB
-rw-r--r--
ctype_euckr.result
435.54
KB
-rw-r--r--
ctype_filename.result
324
B
-rw-r--r--
ctype_filesystem.result
341
B
-rw-r--r--
ctype_gb18030.result
69.33
KB
-rw-r--r--
ctype_gb18030_binlog.result
909
B
-rw-r--r--
ctype_gb18030_conversion.resul...
1.17
MB
-rw-r--r--
ctype_gb18030_encoding_cn.resu...
41.39
KB
-rw-r--r--
ctype_gb18030_encoding_utf8.re...
40.64
KB
-rw-r--r--
ctype_gb18030_ligatures.result
24.81
KB
-rw-r--r--
ctype_gb2312.result
33.73
KB
-rw-r--r--
ctype_gbk.result
50.07
KB
-rw-r--r--
ctype_gbk_binlog.result
633
B
-rw-r--r--
ctype_hebrew.result
254
B
-rw-r--r--
ctype_latin1.result
119.29
KB
-rw-r--r--
ctype_latin1_de.result
15.74
KB
-rw-r--r--
ctype_latin2.result
13.71
KB
-rw-r--r--
ctype_latin2_ch.result
25.11
KB
-rw-r--r--
ctype_ldml.result
28.13
KB
-rw-r--r--
ctype_like_range.result
80.89
KB
-rw-r--r--
ctype_many.result
41.87
KB
-rw-r--r--
ctype_mb.result
2.13
KB
-rw-r--r--
ctype_recoding.result
9.6
KB
-rw-r--r--
ctype_sjis.result
195.81
KB
-rw-r--r--
ctype_tis620.result
101.02
KB
-rw-r--r--
ctype_uca.result
155.4
KB
-rw-r--r--
ctype_ucs.result
143.96
KB
-rw-r--r--
ctype_ucs2_def.result
1.05
KB
-rw-r--r--
ctype_ujis.result
365.3
KB
-rw-r--r--
ctype_ujis_ucs2.result
548.6
KB
-rw-r--r--
ctype_utf16.result
47.3
KB
-rw-r--r--
ctype_utf16_def.result
273
B
-rw-r--r--
ctype_utf16_uca.result
72.47
KB
-rw-r--r--
ctype_utf16le.result
52.96
KB
-rw-r--r--
ctype_utf32.result
50.55
KB
-rw-r--r--
ctype_utf32_uca.result
75.29
KB
-rw-r--r--
ctype_utf8.result
169.69
KB
-rw-r--r--
ctype_utf8mb4.result
83.57
KB
-rw-r--r--
ctype_utf8mb4_heap.result
75.01
KB
-rw-r--r--
ctype_utf8mb4_innodb.result
77.85
KB
-rw-r--r--
ctype_utf8mb4_myisam.result
77.43
KB
-rw-r--r--
ctype_utf8mb4_uca.result
38.82
KB
-rw-r--r--
daemonize_opt.result
14
B
-rw-r--r--
datadir_permission.result
1.09
KB
-rw-r--r--
date_formats.result
28.69
KB
-rw-r--r--
ddl_i18n_koi8r.result
123.56
KB
-rw-r--r--
ddl_i18n_utf8.result
126.58
KB
-rw-r--r--
deadlock_innodb.result
2.35
KB
-rw-r--r--
debug_sync.result
12.18
KB
-rw-r--r--
debug_sync2.result
1.15
KB
-rw-r--r--
default.result
8.17
KB
-rw-r--r--
delete.result
22.7
KB
-rw-r--r--
delete_all_rows.result
2.26
KB
-rw-r--r--
deprecate_eof.result
8
KB
-rw-r--r--
deprecated_features.result
2.03
KB
-rw-r--r--
derived.result
172.18
KB
-rw-r--r--
dirty_close.result
345
B
-rw-r--r--
disabled_replication.result
4.82
KB
-rw-r--r--
disabled_storage_engines.resul...
3.28
KB
-rw-r--r--
disconnect_on_expired_password...
1.42
KB
-rw-r--r--
disconnect_on_expired_password...
1.49
KB
-rw-r--r--
distinct.result
80.43
KB
-rw-r--r--
drop-no_root.result
454
B
-rw-r--r--
drop.result
6.71
KB
-rw-r--r--
drop_debug.result
485
B
-rw-r--r--
ds_mrr-big.result
2.93
KB
-rw-r--r--
dynamic_tracing.result
813
B
-rw-r--r--
empty_table.result
229
B
-rw-r--r--
enable_cleartext_plugin.result
1.4
KB
-rw-r--r--
endspace.result
7.25
KB
-rw-r--r--
eq_range_idx_stat.result
6.56
KB
-rw-r--r--
error_simulation.result
3.17
KB
-rw-r--r--
errors.result
6.11
KB
-rw-r--r--
events_1.result
28.3
KB
-rw-r--r--
events_2.result
17.79
KB
-rw-r--r--
events_and_binlog.result
297
B
-rw-r--r--
events_bugs.result
40.94
KB
-rw-r--r--
events_embedded.result
86
B
-rw-r--r--
events_grant.result
10.33
KB
-rw-r--r--
events_logs_tests.result
2.37
KB
-rw-r--r--
events_microsec.result
810
B
-rw-r--r--
events_restart.result
4.36
KB
-rw-r--r--
events_scheduling.result
3.11
KB
-rw-r--r--
events_stress.result
2.39
KB
-rw-r--r--
events_time_zone.result
5.4
KB
-rw-r--r--
events_trans.result
3.61
KB
-rw-r--r--
events_trans_notembedded.resul...
1.88
KB
-rw-r--r--
examined_rows.result
6.73
KB
-rw-r--r--
execution_constants.result
1.03
KB
-rw-r--r--
explain.result
39.39
KB
-rw-r--r--
explain_for_connection_crash.r...
1004
B
-rw-r--r--
explain_for_connection_rqg_jso...
87.48
KB
-rw-r--r--
explain_for_connection_rqg_tra...
35.98
KB
-rw-r--r--
explain_for_connection_small_j...
25.46
KB
-rw-r--r--
explain_for_connection_small_t...
10.3
KB
-rw-r--r--
explain_json_all.result
98.36
KB
-rw-r--r--
explain_json_none.result
102.18
KB
-rw-r--r--
explain_other.result
42.23
KB
-rw-r--r--
file_contents.result
181
B
-rw-r--r--
filesort_debug.result
4.59
KB
-rw-r--r--
filesort_merge.result
2.02
KB
-rw-r--r--
filesort_pack.result
675
B
-rw-r--r--
filter_single_col_idx_big.resu...
38.05
KB
-rw-r--r--
filter_single_col_idx_small.re...
42.99
KB
-rw-r--r--
fix_priv_tables.result
1.96
KB
-rw-r--r--
flush.result
13.78
KB
-rw-r--r--
flush2.result
1.06
KB
-rw-r--r--
flush_block_commit.result
1.47
KB
-rw-r--r--
flush_block_commit_notembedded...
872
B
-rw-r--r--
flush_read_lock.result
73.94
KB
-rw-r--r--
flush_read_lock_kill.result
1.12
KB
-rw-r--r--
flush_table.result
12.33
KB
-rw-r--r--
foreign_key.result
4.84
KB
-rw-r--r--
fulltext.result
32.93
KB
-rw-r--r--
fulltext2.result
7.54
KB
-rw-r--r--
fulltext3.result
815
B
-rw-r--r--
fulltext_cache.result
2.67
KB
-rw-r--r--
fulltext_distinct.result
1.45
KB
-rw-r--r--
fulltext_left_join.result
4
KB
-rw-r--r--
fulltext_multi.result
766
B
-rw-r--r--
fulltext_order_by.result
6.05
KB
-rw-r--r--
fulltext_plugin.result
229
B
-rw-r--r--
fulltext_update.result
1.11
KB
-rw-r--r--
fulltext_var.result
1.3
KB
-rw-r--r--
func_aes.result
12.97
KB
-rw-r--r--
func_aes_cfb1.result
4.5
KB
-rw-r--r--
func_aes_cfb128.result
4.57
KB
-rw-r--r--
func_aes_cfb8.result
4.5
KB
-rw-r--r--
func_aes_kdf_hkdf.result
3.94
KB
-rw-r--r--
func_aes_kdf_pbkdf2_hmac.resul...
6.79
KB
-rw-r--r--
func_aes_misc.result
8.46
KB
-rw-r--r--
func_aes_ofb.result
4.47
KB
-rw-r--r--
func_analyse.result
23.09
KB
-rw-r--r--
func_bitwise_ops.result
80.6
KB
-rw-r--r--
func_compress.result
5.46
KB
-rw-r--r--
func_concat.result
4.37
KB
-rw-r--r--
func_crypt.result
2.05
KB
-rw-r--r--
func_date_add.result
3.74
KB
-rw-r--r--
func_default.result
1.45
KB
-rw-r--r--
func_des_encrypt.result
2.68
KB
-rw-r--r--
func_digest.result
122.35
KB
-rw-r--r--
func_encrypt.result
19.82
KB
-rw-r--r--
func_encrypt_nossl.result
7.75
KB
-rw-r--r--
func_encrypt_ucs2.result
1.21
KB
-rw-r--r--
func_equal.result
1.27
KB
-rw-r--r--
func_found_rows.result
285
B
-rw-r--r--
func_gconcat.result
49.9
KB
-rw-r--r--
func_group.result
66.46
KB
-rw-r--r--
func_group_innodb.result
6.07
KB
-rw-r--r--
func_group_innodb_16k.result
693
B
-rw-r--r--
func_if.result
6.29
KB
-rw-r--r--
func_in_all.result
49.27
KB
-rw-r--r--
func_in_icp.result
48.91
KB
-rw-r--r--
func_in_icp_mrr.result
49.21
KB
-rw-r--r--
func_in_mrr.result
48.93
KB
-rw-r--r--
func_in_mrr_cost.result
48.65
KB
-rw-r--r--
func_in_none.result
48.6
KB
-rw-r--r--
func_isnull.result
827
B
-rw-r--r--
func_like.result
7.78
KB
-rw-r--r--
func_math.result
42.22
KB
-rw-r--r--
func_misc.result
36.8
KB
-rw-r--r--
func_op.result
2.12
KB
-rw-r--r--
func_regexp.result
4.47
KB
-rw-r--r--
func_rollback.result
13.02
KB
-rw-r--r--
func_sapdb.result
12.49
KB
-rw-r--r--
func_set.result
8.9
KB
-rw-r--r--
func_str.result
174.94
KB
-rw-r--r--
func_str_debug.result
349
B
-rw-r--r--
func_str_no_ps.result
1.3
KB
-rw-r--r--
func_system.result
2.9
KB
-rw-r--r--
func_test.result
14.47
KB
-rw-r--r--
func_time.result
71.47
KB
-rw-r--r--
func_timestamp.result
518
B
-rw-r--r--
func_weight_string.result
11.56
KB
-rw-r--r--
function_defaults.result
109.58
KB
-rw-r--r--
gcc296.result
528
B
-rw-r--r--
get_diagnostics.result
28.42
KB
-rw-r--r--
get_table_share.result
20.56
KB
-rw-r--r--
gis-debug.result
10.1
KB
-rw-r--r--
gis-precise.result
162.17
KB
-rw-r--r--
gis-rt-precise.result
2.42
KB
-rw-r--r--
gis-rtree.result
102.08
KB
-rw-r--r--
gis.result
131.8
KB
-rw-r--r--
grant.result
121.17
KB
-rw-r--r--
grant2.result
36.52
KB
-rw-r--r--
grant3.result
8.41
KB
-rw-r--r--
grant4.result
9.36
KB
-rw-r--r--
grant_alter_user.result
40.96
KB
-rw-r--r--
grant_alter_user_qa.result
98.38
KB
-rw-r--r--
grant_cache.result
6.71
KB
-rw-r--r--
grant_debug.result
8.5
KB
-rw-r--r--
grant_explain_non_select.resul...
10.27
KB
-rw-r--r--
grant_lowercase_fs.result
1.2
KB
-rw-r--r--
grant_user_lock.result
16.9
KB
-rw-r--r--
grant_user_lock_qa.result
41.4
KB
-rw-r--r--
greedy_optimizer.result
632.59
KB
-rw-r--r--
greedy_search.result
31.05
KB
-rw-r--r--
group_by.result
120.07
KB
-rw-r--r--
group_by_fd_no_prot.result
81.15
KB
-rw-r--r--
group_by_fd_ps_prot.result
61.28
KB
-rw-r--r--
group_min_max.result
189.52
KB
-rw-r--r--
group_min_max_innodb.result
25.09
KB
-rw-r--r--
gtid_next_xa_binlog_off.result
30.9
KB
-rw-r--r--
gtids_anonymous_trxs_violation...
687
B
-rw-r--r--
handler_innodb.result
41.58
KB
-rw-r--r--
handler_myisam.result
45.48
KB
-rw-r--r--
handler_read_last.result
1.15
KB
-rw-r--r--
have_big5.require
79
B
-rw-r--r--
have_binlog_format_mixed.requi...
40
B
-rw-r--r--
have_binlog_format_row.require
38
B
-rw-r--r--
have_binlog_format_statement.r...
44
B
-rw-r--r--
have_compress.require
38
B
-rw-r--r--
have_cp1250_ch.require
79
B
-rw-r--r--
have_cp1251.require
84
B
-rw-r--r--
have_cp866.require
82
B
-rw-r--r--
have_cp932.require
83
B
-rw-r--r--
have_crypt.require
35
B
-rw-r--r--
have_debug.require
8
B
-rw-r--r--
have_debug_sync.require
13
B
-rw-r--r--
have_eucjpms.require
87
B
-rw-r--r--
have_euckr.require
81
B
-rw-r--r--
have_gb18030.require
87
B
-rw-r--r--
have_gb2312.require
84
B
-rw-r--r--
have_gbk.require
78
B
-rw-r--r--
have_geometry.require
38
B
-rw-r--r--
have_koi8r.require
81
B
-rw-r--r--
have_latin2_ch.require
78
B
-rw-r--r--
have_local_infile.require
36
B
-rw-r--r--
have_log_bin.require
31
B
-rw-r--r--
have_met_timezone.require
43
B
-rw-r--r--
have_moscow_leap_timezone.requ...
46
B
-rw-r--r--
have_mysql_upgrade.result
21
B
-rw-r--r--
have_ndb_debug.require
17
B
-rw-r--r--
have_ndb_extra.require
14
B
-rw-r--r--
have_ndbapi_examples.require
19
B
-rw-r--r--
have_nodebug.require
8
B
-rw-r--r--
have_optimizer_switch.require
19
B
-rw-r--r--
have_outfile.require
55
B
-rw-r--r--
have_partition.require
42
B
-rw-r--r--
have_perror.require
14
B
-rw-r--r--
have_profiling.require
39
B
-rw-r--r--
have_query_cache.require
41
B
-rw-r--r--
have_sjis.require
81
B
-rw-r--r--
have_ssl.require
33
B
-rw-r--r--
have_ssl_is_yes_or_disabled_on...
43
B
-rw-r--r--
have_statement_timeout.require
47
B
-rw-r--r--
have_symlink.require
37
B
-rw-r--r--
have_tis620.require
81
B
-rw-r--r--
have_ucs2.require
80
B
-rw-r--r--
have_ujis.require
81
B
-rw-r--r--
have_utf16.require
82
B
-rw-r--r--
have_utf32.require
82
B
-rw-r--r--
have_utf8.require
80
B
-rw-r--r--
have_utf8mb4.require
86
B
-rw-r--r--
having.result
24.34
KB
-rw-r--r--
heap.result
24.75
KB
-rw-r--r--
heap_auto_increment.result
894
B
-rw-r--r--
heap_btree.result
11.76
KB
-rw-r--r--
heap_hash.result
20.83
KB
-rw-r--r--
help.result
6.64
KB
-rw-r--r--
help_verbose.result
326
B
-rw-r--r--
host_cache_size_functionality....
3.32
KB
-rw-r--r--
ignore_strict.result
30.82
KB
-rw-r--r--
implicit_char_to_num_conversio...
6.44
KB
-rw-r--r--
implicit_commit.result
18.33
KB
-rw-r--r--
import_schema_mismatch.result
478
B
-rw-r--r--
index_merge_delete.result
25.04
KB
-rw-r--r--
index_merge_innodb.result
124.56
KB
-rw-r--r--
index_merge_insert-and-replace...
14.54
KB
-rw-r--r--
index_merge_intersect_dml.resu...
5.85
KB
-rw-r--r--
index_merge_myisam.result
144.52
KB
-rw-r--r--
index_merge_update.result
17.22
KB
-rw-r--r--
information_schema-big.result
2.81
KB
-rw-r--r--
information_schema.result
107.92
KB
-rw-r--r--
information_schema_chmod.resul...
182
B
-rw-r--r--
information_schema_db.result
9.98
KB
-rw-r--r--
information_schema_inno.result
4.33
KB
-rw-r--r--
information_schema_parameters....
22.49
KB
-rw-r--r--
information_schema_part.result
11.97
KB
-rw-r--r--
information_schema_routines.re...
30.81
KB
-rw-r--r--
init_connect.result
3.57
KB
-rw-r--r--
init_file.result
323
B
-rw-r--r--
initialize-bug20350099.result
1.04
KB
-rw-r--r--
initialize-bug20504142.result
1.17
KB
-rw-r--r--
initialize-bug21335821.result
895
B
-rw-r--r--
initialize-errors.result
578
B
-rw-r--r--
initialize-ignore-db.result
742
B
-rw-r--r--
initialize-init-acls.result
1.12
KB
-rw-r--r--
initialize-sha256.result
1.09
KB
-rw-r--r--
initialize.result
3.89
KB
-rw-r--r--
initialize_gtid.result
465
B
-rw-r--r--
innodb_deadlock.result
1.25
KB
-rw-r--r--
innodb_disabled.result
208
B
-rw-r--r--
innodb_explain_json_non_select...
293.06
KB
-rw-r--r--
innodb_explain_json_non_select...
299.29
KB
-rw-r--r--
innodb_explain_non_select_all....
136.52
KB
-rw-r--r--
innodb_explain_non_select_none...
136.37
KB
-rw-r--r--
innodb_icp.result
32.81
KB
-rw-r--r--
innodb_icp_all.result
32.88
KB
-rw-r--r--
innodb_icp_none.result
32.72
KB
-rw-r--r--
innodb_ignore_builtin.result
354
B
-rw-r--r--
innodb_log_file_size_functiona...
2.79
KB
-rw-r--r--
innodb_mrr.result
25.74
KB
-rw-r--r--
innodb_mrr_all.result
25.88
KB
-rw-r--r--
innodb_mrr_cost.result
25.71
KB
-rw-r--r--
innodb_mrr_cost_all.result
25.85
KB
-rw-r--r--
innodb_mrr_cost_icp.result
25.82
KB
-rw-r--r--
innodb_mrr_icp.result
25.85
KB
-rw-r--r--
innodb_mrr_none.result
25.66
KB
-rw-r--r--
innodb_mysql_lock.result
4.05
KB
-rw-r--r--
innodb_mysql_lock2.result
21.4
KB
-rw-r--r--
innodb_mysql_sync.result
25.87
KB
-rw-r--r--
innodb_pk_extension_off.result
20.33
KB
-rw-r--r--
innodb_pk_extension_on.result
20.58
KB
-rw-r--r--
innodb_recovery_with_upper_cas...
1.21
KB
-rw-r--r--
insert.result
30.75
KB
-rw-r--r--
insert_debug.result
1.29
KB
-rw-r--r--
insert_notembedded.result
5.58
KB
-rw-r--r--
insert_select.result
15.34
KB
-rw-r--r--
insert_update.result
18.89
KB
-rw-r--r--
installdb-bad-cipher.result
128
B
-rw-r--r--
internal_tmp_disk_storage_engi...
146.97
KB
-rw-r--r--
ipv4_as_ipv6.result
23.83
KB
-rw-r--r--
ipv6.result
13.89
KB
-rw-r--r--
is_debug_build.require
32
B
-rw-r--r--
is_deprecation.result
558
B
-rw-r--r--
is_embedded.require
16
B
-rw-r--r--
isam.result
15.65
KB
-rw-r--r--
join.result
55.68
KB
-rw-r--r--
join_cache_bka.result
108.89
KB
-rw-r--r--
join_cache_bka_nixbnl.result
108.17
KB
-rw-r--r--
join_cache_bkaunique.result
109.32
KB
-rw-r--r--
join_cache_bnl.result
107.23
KB
-rw-r--r--
join_cache_nojb.result
106.25
KB
-rw-r--r--
join_crash.result
4.53
KB
-rw-r--r--
join_file_handler.result
1.04
KB
-rw-r--r--
join_nested.result
86.66
KB
-rw-r--r--
join_nested_bka.result
92.75
KB
-rw-r--r--
join_nested_bka_nixbnl.result
89.71
KB
-rw-r--r--
join_optimizer.result
2.54
KB
-rw-r--r--
join_outer.result
96.52
KB
-rw-r--r--
join_outer_bka.result
96.89
KB
-rw-r--r--
join_outer_bka_nixbnl.result
94.69
KB
-rw-r--r--
join_outer_innodb.result
3.27
KB
-rw-r--r--
key.result
22.58
KB
-rw-r--r--
key_cache.result
11.88
KB
-rw-r--r--
key_diff.result
1.15
KB
-rw-r--r--
key_primary.result
890
B
-rw-r--r--
keywords.result
6.63
KB
-rw-r--r--
kill.result
8.88
KB
-rw-r--r--
kill_debug.result
1.58
KB
-rw-r--r--
limit.result
8.31
KB
-rw-r--r--
loaddata.result
20.8
KB
-rw-r--r--
loaddata_autocom_innodb.result
651
B
-rw-r--r--
loadxml.result
2.7
KB
-rw-r--r--
locale.result
5.59
KB
-rw-r--r--
lock.result
14.09
KB
-rw-r--r--
lock_multi.result
63.2
KB
-rw-r--r--
lock_multi_bug38499.result
964
B
-rw-r--r--
lock_multi_bug38691.result
812
B
-rw-r--r--
lock_sync.result
27.44
KB
-rw-r--r--
lock_tables_lost_commit.result
150
B
-rw-r--r--
locking_service.result
31.09
KB
-rw-r--r--
log_errchk.result
663
B
-rw-r--r--
log_state.result
9.66
KB
-rw-r--r--
log_state_bug33693.result
111
B
-rw-r--r--
log_tables-big.result
996
B
-rw-r--r--
log_tables.result
41.81
KB
-rw-r--r--
log_tables_debug.result
770
B
-rw-r--r--
log_tables_upgrade.result
2.35
KB
-rw-r--r--
log_timestamps.result
71
B
-rw-r--r--
long_tmpdir.result
99
B
-rw-r--r--
lowercase0.require
45
B
-rw-r--r--
lowercase1.require
45
B
-rw-r--r--
lowercase2.require
45
B
-rw-r--r--
lowercase_fs_off.result
3.46
KB
-rw-r--r--
lowercase_fs_on.result
75
B
-rw-r--r--
lowercase_mixed_tmpdir.result
162
B
-rw-r--r--
lowercase_mixed_tmpdir_innodb....
190
B
-rw-r--r--
lowercase_table.result
3.24
KB
-rw-r--r--
lowercase_table2.result
8.66
KB
-rw-r--r--
lowercase_table4.result
4.63
KB
-rw-r--r--
lowercase_table5.result
673
B
-rw-r--r--
lowercase_table_grant.result
2.01
KB
-rw-r--r--
lowercase_table_qcache.result
847
B
-rw-r--r--
lowercase_utf8.result
173
B
-rw-r--r--
lowercase_view.result
10.21
KB
-rw-r--r--
m_i_db.result
15.5
KB
-rw-r--r--
max_statement_time.result
12.81
KB
-rw-r--r--
mdl_sync.result
113.92
KB
-rw-r--r--
mdl_tablespace.result
34.72
KB
-rw-r--r--
merge-big.result
728
B
-rw-r--r--
merge.result
100.14
KB
-rw-r--r--
merge_innodb.result
1.31
KB
-rw-r--r--
merge_mmap.result
3.33
KB
-rw-r--r--
metadata.result
17.03
KB
-rw-r--r--
mix2_myisam.result
66.36
KB
-rw-r--r--
mix2_myisam_ucs2.result
15.35
KB
-rw-r--r--
multi_plugin_load.result
347
B
-rw-r--r--
multi_plugin_load_add.result
455
B
-rw-r--r--
multi_plugin_load_add2.result
455
B
-rw-r--r--
multi_statement.result
563
B
-rw-r--r--
multi_update.result
26.47
KB
-rw-r--r--
multi_update2.result
1016
B
-rw-r--r--
multi_update_innodb.result
4.52
KB
-rw-r--r--
multi_update_tiny_hash.result
1.5
KB
-rw-r--r--
myisam-blob.result
1.41
KB
-rw-r--r--
myisam-system.result
394
B
-rw-r--r--
myisam.result
96.84
KB
-rw-r--r--
myisam_crash_before_flush_keys...
1.15
KB
-rw-r--r--
myisam_debug.result
1.21
KB
-rw-r--r--
myisam_explain_json_non_select...
287.97
KB
-rw-r--r--
myisam_explain_json_non_select...
294.08
KB
-rw-r--r--
myisam_explain_non_select_all....
133.64
KB
-rw-r--r--
myisam_explain_non_select_none...
133.36
KB
-rw-r--r--
myisam_icp.result
31.96
KB
-rw-r--r--
myisam_icp_all.result
32.02
KB
-rw-r--r--
myisam_icp_none.result
31.84
KB
-rw-r--r--
myisam_mrr.result
24.26
KB
-rw-r--r--
myisam_mrr_all.result
24.43
KB
-rw-r--r--
myisam_mrr_cost.result
24.21
KB
-rw-r--r--
myisam_mrr_cost_all.result
24.38
KB
-rw-r--r--
myisam_mrr_cost_icp.result
24.35
KB
-rw-r--r--
myisam_mrr_icp.result
24.4
KB
-rw-r--r--
myisam_mrr_none.result
24.16
KB
-rw-r--r--
myisam_recover.result
4.57
KB
-rw-r--r--
myisam_row_rpl.result
2.04
KB
-rw-r--r--
myisampack.result
7.56
KB
-rw-r--r--
mysql-bug41486.result
465
B
-rw-r--r--
mysql-bug45236.result
329
B
-rw-r--r--
mysql.result
9.77
KB
-rw-r--r--
mysql_batch_mode.result
84
B
-rw-r--r--
mysql_binary_mode.result
1.52
KB
-rw-r--r--
mysql_client_test.result
8.92
KB
-rw-r--r--
mysql_client_test_embedded.res...
111
B
-rw-r--r--
mysql_client_test_qcache.resul...
500
B
-rw-r--r--
mysql_comments.result
6.68
KB
-rw-r--r--
mysql_config_editor.result
8.01
KB
-rw-r--r--
mysql_cp932.result
37
B
-rw-r--r--
mysql_embedded.result
181
B
-rw-r--r--
mysql_embedded_client_test.res...
153
B
-rw-r--r--
mysql_locale_posix.result
973
B
-rw-r--r--
mysql_not_windows.result
477
B
-rw-r--r--
mysql_plugin.result
4.92
KB
-rw-r--r--
mysql_protocols.result
208
B
-rw-r--r--
mysql_ssl.result
152
B
-rw-r--r--
mysql_ssl_default.result
889
B
-rw-r--r--
mysql_tzinfo_to_sql.result
22.11
KB
-rw-r--r--
mysql_tzinfo_to_sql_sys.result
1.28
KB
-rw-r--r--
mysql_upgrade.result
136.32
KB
-rw-r--r--
mysql_upgrade_slave_master_inf...
5
KB
-rw-r--r--
mysql_upgrade_ssl.result
5.65
KB
-rw-r--r--
mysql_upgrade_with_session_use...
2.77
KB
-rw-r--r--
mysqladmin.result
1.22
KB
-rw-r--r--
mysqladmin_shutdown.result
170
B
-rw-r--r--
mysqlbinlog.result
31.28
KB
-rw-r--r--
mysqlbinlog_base64_flag.result
3.89
KB
-rw-r--r--
mysqlbinlog_debug.result
235
B
-rw-r--r--
mysqlbinlog_hexdump.result
6.5
KB
-rw-r--r--
mysqlbinlog_mixed_or_statment....
855
B
-rw-r--r--
mysqlbinlog_raw_mode.result
8.32
KB
-rw-r--r--
mysqlbinlog_raw_mode_win.resul...
8.08
KB
-rw-r--r--
mysqlbinlog_row_big.result
2.42
KB
-rw-r--r--
mysqlcheck.result
19.17
KB
-rw-r--r--
mysqld--defaults-file.result
908
B
-rw-r--r--
mysqld--help-notwin.result
67.99
KB
-rw-r--r--
mysqld--help-win.result
68.06
KB
-rw-r--r--
mysqld_daemon.result
66
B
-rw-r--r--
mysqld_safe.result
142
B
-rw-r--r--
mysqldump-binary.result
3.51
KB
-rw-r--r--
mysqldump-compat.result
111
B
-rw-r--r--
mysqldump-max.result
11.33
KB
-rw-r--r--
mysqldump-no-binlog.result
50
B
-rw-r--r--
mysqldump.result
295.21
KB
-rw-r--r--
mysqldump_bug29998457.result
3.47
KB
-rw-r--r--
mysqldump_bug30042589.result
3.05
KB
-rw-r--r--
mysqldump_bugs.result
5.04
KB
-rw-r--r--
mysqldump_gtid_state.result
2.69
KB
-rw-r--r--
mysqldump_restore.result
4.01
KB
-rw-r--r--
mysqldumpslow.result
1.13
KB
-rw-r--r--
mysqlimport.result
833
B
-rw-r--r--
mysqlpump.result
16.38
KB
-rw-r--r--
mysqlpump_basic.result
23.91
KB
-rw-r--r--
mysqlpump_bugs.result
850
B
-rw-r--r--
mysqlpump_charset.result
15.54
KB
-rw-r--r--
mysqlpump_concurrency.result
11.41
KB
-rw-r--r--
mysqlpump_extended.result
13.01
KB
-rw-r--r--
mysqlpump_filters.result
11.34
KB
-rw-r--r--
mysqlpump_multi_thread.result
11.53
KB
-rw-r--r--
mysqlpump_partial_bkp.result
797
B
-rw-r--r--
mysqlshow.result
9.96
KB
-rw-r--r--
mysqlslap.result
7.53
KB
-rw-r--r--
mysqltest.result
33.29
KB
-rw-r--r--
named_pipe.result
65.98
KB
-rw-r--r--
negation_elimination.result
13
KB
-rw-r--r--
no-threads.result
329
B
-rw-r--r--
no_binlog.result
64
B
-rw-r--r--
no_binlog_gtid_empty_statement...
675
B
-rw-r--r--
no_binlog_gtid_empty_transacti...
683
B
-rw-r--r--
no_binlog_gtid_mode_on.result
4.75
KB
-rw-r--r--
no_binlog_gtid_mode_on_explici...
3.84
KB
-rw-r--r--
no_binlog_gtid_next_begin_caus...
1.4
KB
-rw-r--r--
no_binlog_gtid_next_partially_...
11.91
KB
-rw-r--r--
no_binlog_gtid_next_partially_...
1.13
KB
-rw-r--r--
no_binlog_gtid_next_partially_...
2.3
KB
-rw-r--r--
no_binlog_gtid_next_single_stm...
9.6
KB
-rw-r--r--
no_binlog_gtid_next_temporary_...
1.1
KB
-rw-r--r--
no_engine_substitution.result
6.01
KB
-rw-r--r--
not_asan.require
7
B
-rw-r--r--
not_embedded.require
16
B
-rw-r--r--
not_embedded_server.result
5.86
KB
-rw-r--r--
not_ndb.require
39
B
-rw-r--r--
not_openssl.require
36
B
-rw-r--r--
not_partition.result
5.75
KB
-rw-r--r--
not_ssl.require
32
B
-rw-r--r--
not_true.require
10
B
-rw-r--r--
not_valgrind.require
17
B
-rw-r--r--
not_windows.require
7
B
-rw-r--r--
null.result
16.17
KB
-rw-r--r--
null_key_all.result
27.81
KB
-rw-r--r--
null_key_icp.result
27.74
KB
-rw-r--r--
null_key_none.result
27.68
KB
-rw-r--r--
odbc.result
1.41
KB
-rw-r--r--
olap.result
20.44
KB
-rw-r--r--
one_thread_per_connection.requ...
44
B
-rw-r--r--
openssl.require
37
B
-rw-r--r--
openssl_1.result
9.65
KB
-rw-r--r--
opt_costmodel.result
11.47
KB
-rw-r--r--
opt_costmodel_downgrade.result
2.55
KB
-rw-r--r--
opt_costmodel_flush.result
27.03
KB
-rw-r--r--
opt_costmodel_pfs.result
296
B
-rw-r--r--
opt_costmodel_restart.result
7.52
KB
-rw-r--r--
opt_costmodel_tables.result
5.59
KB
-rw-r--r--
opt_costmodel_warnings.result
2.52
KB
-rw-r--r--
opt_hint_timeout.result
3.21
KB
-rw-r--r--
opt_hints.result
110.61
KB
-rw-r--r--
opt_hints_lowercase.result
1.95
KB
-rw-r--r--
opt_hints_pfs.result
1.93
KB
-rw-r--r--
opt_hints_subquery.result
135.37
KB
-rw-r--r--
optimizer_bug12837084.result
13.97
KB
-rw-r--r--
optimizer_debug_sync.result
1.32
KB
-rw-r--r--
optimizer_switch.result
30.14
KB
-rw-r--r--
order_by_all.result
78.98
KB
-rw-r--r--
order_by_icp_mrr.result
78.93
KB
-rw-r--r--
order_by_limit.result
18.46
KB
-rw-r--r--
order_by_none.result
78.59
KB
-rw-r--r--
order_by_sortkey.result
3.19
KB
-rw-r--r--
order_fill_sortbuf.result
262
B
-rw-r--r--
outfile.result
2.2
KB
-rw-r--r--
outfile_loaddata.result
11.02
KB
-rw-r--r--
overflow.result
235
B
-rw-r--r--
packet.result
9.48
KB
-rw-r--r--
parser-big-32bit.result
1.35
KB
-rw-r--r--
parser-big-64bit.result
1.35
KB
-rw-r--r--
parser.result
60.1
KB
-rw-r--r--
parser_bug21114_innodb.result
25.39
KB
-rw-r--r--
parser_not_embedded.result
4.42
KB
-rw-r--r--
parser_precedence.result
23.96
KB
-rw-r--r--
parser_stack.result
9.54
KB
-rw-r--r--
partition.result
124.74
KB
-rw-r--r--
partition_archive.result
7.74
KB
-rw-r--r--
partition_binlog.result
2.41
KB
-rw-r--r--
partition_binlog_stmt.result
955
B
-rw-r--r--
partition_blackhole.result
531
B
-rw-r--r--
partition_bug18198.result
8.07
KB
-rw-r--r--
partition_cache.result
7.16
KB
-rw-r--r--
partition_charset.result
434
B
-rw-r--r--
partition_column.result
25.2
KB
-rw-r--r--
partition_column_prune.result
4.39
KB
-rw-r--r--
partition_csv.result
2.69
KB
-rw-r--r--
partition_datatype.result
47.14
KB
-rw-r--r--
partition_debug.result
985
B
-rw-r--r--
partition_debug_sync.result
6.26
KB
-rw-r--r--
partition_debug_sync_stmt.resu...
3.65
KB
-rw-r--r--
partition_deprecation.result
4.88
KB
-rw-r--r--
partition_error.result
84.03
KB
-rw-r--r--
partition_exchange.result
65.43
KB
-rw-r--r--
partition_explicit_prune.resul...
57.97
KB
-rw-r--r--
partition_federated.result
271
B
-rw-r--r--
partition_grant.result
1.67
KB
-rw-r--r--
partition_hash.result
11.15
KB
-rw-r--r--
partition_index_innodb.result
6.16
KB
-rw-r--r--
partition_index_myisam.result
5.35
KB
-rw-r--r--
partition_innodb.result
50.73
KB
-rw-r--r--
partition_innodb_plugin.result
3.11
KB
-rw-r--r--
partition_innodb_semi_consiste...
2.92
KB
-rw-r--r--
partition_innodb_stmt.result
1.12
KB
-rw-r--r--
partition_innodb_tablespace.re...
35.12
KB
-rw-r--r--
partition_key_cache.result
22.78
KB
-rw-r--r--
partition_list.result
13.93
KB
-rw-r--r--
partition_locking.result
246.59
KB
-rw-r--r--
partition_locking_4.result
1.7
KB
-rw-r--r--
partition_mgm.result
9.83
KB
-rw-r--r--
partition_mgm_err.result
7.48
KB
-rw-r--r--
partition_mgm_err2.result
373
B
-rw-r--r--
partition_myisam.result
10.25
KB
-rw-r--r--
partition_not_blackhole.result
456
B
-rw-r--r--
partition_not_windows.result
4.27
KB
-rw-r--r--
partition_order.result
16.29
KB
-rw-r--r--
partition_plugin.result
4.48
KB
-rw-r--r--
partition_pruning.result
290.58
KB
-rw-r--r--
partition_range.result
46.69
KB
-rw-r--r--
partition_rename_longfilename....
1.91
KB
-rw-r--r--
partition_symlink.result
6.25
KB
-rw-r--r--
partition_sync.result
1.35
KB
-rw-r--r--
partition_truncate.result
675
B
-rw-r--r--
partition_utf8.result
2.01
KB
-rw-r--r--
partition_windows.result
3.3
KB
-rw-r--r--
per_thread_connection_handler....
1.45
KB
-rw-r--r--
perror-win.result
453
B
-rw-r--r--
perror.result
471
B
-rw-r--r--
plugin.result
8.52
KB
-rw-r--r--
plugin_auth.result
33.72
KB
-rw-r--r--
plugin_auth_expire.result
644
B
-rw-r--r--
plugin_auth_qa.result
24.47
KB
-rw-r--r--
plugin_auth_qa_1.result
16.11
KB
-rw-r--r--
plugin_auth_qa_2.result
11.17
KB
-rw-r--r--
plugin_auth_qa_3.result
1.29
KB
-rw-r--r--
plugin_auth_sha256.result
5.52
KB
-rw-r--r--
plugin_auth_sha256_2.result
1.96
KB
-rw-r--r--
plugin_auth_sha256_server_defa...
3.7
KB
-rw-r--r--
plugin_auth_sha256_server_defa...
4.02
KB
-rw-r--r--
plugin_auth_sha256_tls.result
2.53
KB
-rw-r--r--
plugin_auth_user_lock.result
1
KB
-rw-r--r--
plugin_load.result
76
B
-rw-r--r--
plugin_load_option.result
321
B
-rw-r--r--
plugin_not_embedded.result
995
B
-rw-r--r--
preload.result
3.84
KB
-rw-r--r--
profiling.result
16.4
KB
-rw-r--r--
ps.result
125.1
KB
-rw-r--r--
ps_10nestset.result
2.08
KB
-rw-r--r--
ps_11bugs.result
6.01
KB
-rw-r--r--
ps_1general.result
35.8
KB
-rw-r--r--
ps_2myisam.result
103.52
KB
-rw-r--r--
ps_3innodb.result
103.06
KB
-rw-r--r--
ps_4heap.result
102.98
KB
-rw-r--r--
ps_5merge.result
201.74
KB
-rw-r--r--
ps_ddl.result
53.74
KB
-rw-r--r--
ps_ddl1.result
11.06
KB
-rw-r--r--
ps_grant.result
3.99
KB
-rw-r--r--
ps_not_windows.result
516
B
-rw-r--r--
ps_w_max_indexes_64.result
189.58
KB
-rw-r--r--
python_with_json.require
27
B
-rw-r--r--
query_cache.result
89.5
KB
-rw-r--r--
query_cache_28249.result
3.58
KB
-rw-r--r--
query_cache_debug.result
11.1
KB
-rw-r--r--
query_cache_disabled.result
1.96
KB
-rw-r--r--
query_cache_merge.result
32.8
KB
-rw-r--r--
query_cache_notembedded.result
11.37
KB
-rw-r--r--
query_cache_ps_no_prot.result
12.26
KB
-rw-r--r--
query_cache_ps_ps_prot.result
11.09
KB
-rw-r--r--
query_cache_size_functionality...
7.69
KB
-rw-r--r--
query_cache_type_functionality...
9.19
KB
-rw-r--r--
query_cache_with_views.result
6.02
KB
-rw-r--r--
range_all.result
145.86
KB
-rw-r--r--
range_icp.result
145.41
KB
-rw-r--r--
range_icp_mrr.result
145.8
KB
-rw-r--r--
range_mrr.result
145.32
KB
-rw-r--r--
range_mrr_cost.result
144.95
KB
-rw-r--r--
range_none.result
144.9
KB
-rw-r--r--
range_with_memory_limit.result
190.38
KB
-rw-r--r--
read_many_rows_innodb.result
2.83
KB
-rw-r--r--
read_only.result
23.09
KB
-rw-r--r--
read_only_innodb.result
5.42
KB
-rw-r--r--
relay_log_index_variables.resu...
469
B
-rw-r--r--
relay_log_variables.result
475
B
-rw-r--r--
rename.result
1.58
KB
-rw-r--r--
renamedb.result
880
B
-rw-r--r--
repair.result
6.43
KB
-rw-r--r--
replace.result
1.27
KB
-rw-r--r--
reset_connection.result
6.46
KB
-rw-r--r--
rewrite_general_log.result
6.48
KB
-rw-r--r--
rewrite_slow_log.result
3.75
KB
-rw-r--r--
rollback.result
574
B
-rw-r--r--
round.result
6.92
KB
-rw-r--r--
row.result
23.11
KB
-rw-r--r--
rowid_order_innodb.result
3.6
KB
-rw-r--r--
rpl_colSize.result
4.39
KB
-rw-r--r--
rpl_connect_attr.result
1.21
KB
-rw-r--r--
rpl_extraColmaster_innodb.resu...
23.85
KB
-rw-r--r--
rpl_extraColmaster_myisam.resu...
23.85
KB
-rw-r--r--
rpl_multi_source_mysqldump_sla...
1.5
KB
-rw-r--r--
rpl_mysqldump_slave.result
867
B
-rw-r--r--
schema.result
2.34
KB
-rw-r--r--
secure_file_priv_win.result
1.43
KB
-rw-r--r--
select_all.result
180.1
KB
-rw-r--r--
select_all_bka.result
180.83
KB
-rw-r--r--
select_all_bka_nixbnl.result
180.1
KB
-rw-r--r--
select_for_update.result
755
B
-rw-r--r--
select_found.result
6.96
KB
-rw-r--r--
select_icp_mrr.result
180.04
KB
-rw-r--r--
select_icp_mrr_bka.result
180.77
KB
-rw-r--r--
select_icp_mrr_bka_nixbnl.resu...
180.04
KB
-rw-r--r--
select_none.result
179.38
KB
-rw-r--r--
select_none_bka.result
179.47
KB
-rw-r--r--
select_none_bka_nixbnl.result
178.64
KB
-rw-r--r--
select_safe.result
9.97
KB
-rw-r--r--
server_id.require
32
B
-rw-r--r--
server_id1.require
34
B
-rw-r--r--
server_offline_1.result
2.03
KB
-rw-r--r--
server_offline_2.result
1.28
KB
-rw-r--r--
server_offline_3.result
1.31
KB
-rw-r--r--
server_offline_4.result
958
B
-rw-r--r--
server_offline_5.result
7.23
KB
-rw-r--r--
server_offline_6.result
1.2
KB
-rw-r--r--
server_uuid.result
785
B
-rw-r--r--
server_uuid_embedded.result
325
B
-rw-r--r--
session_tracker.result
23.61
KB
-rw-r--r--
session_tracker_trx_state.resu...
38.38
KB
-rw-r--r--
shm.result
66.48
KB
-rw-r--r--
shm_server_restart.result
20
B
-rw-r--r--
show_check.result
78.63
KB
-rw-r--r--
show_processlist_state.result
150
B
-rw-r--r--
show_profile.result
491
B
-rw-r--r--
show_variables.result
372
B
-rw-r--r--
shutdown.result
325
B
-rw-r--r--
signal.result
71.01
KB
-rw-r--r--
signal_code.result
1020
B
-rw-r--r--
signal_demo1.result
6.25
KB
-rw-r--r--
signal_demo2.result
3.86
KB
-rw-r--r--
signal_demo3.result
3.33
KB
-rw-r--r--
signal_sqlmode.result
2.63
KB
-rw-r--r--
single_delete_update.result
24.5
KB
-rw-r--r--
skip_grants.result
2.7
KB
-rw-r--r--
skip_grants_flush.result
352
B
-rw-r--r--
skip_log_bin.result
167
B
-rw-r--r--
skip_name_resolve.result
2.51
KB
-rw-r--r--
slave-running.result
71
B
-rw-r--r--
slave-stopped.result
72
B
-rw-r--r--
slow_log.result
2.57
KB
-rw-r--r--
sort_buffer_size_functionality...
6.61
KB
-rw-r--r--
sp-big.result
1.47
KB
-rw-r--r--
sp-bugs.result
11.46
KB
-rw-r--r--
sp-code.result
29.86
KB
-rw-r--r--
sp-destruct.result
7.02
KB
-rw-r--r--
sp-dynamic.result
9.73
KB
-rw-r--r--
sp-error.result
84.05
KB
-rw-r--r--
sp-fib.result
656
B
-rw-r--r--
sp-lock.result
21.56
KB
-rw-r--r--
sp-no-code.result
307
B
-rw-r--r--
sp-prelocking.result
7
KB
-rw-r--r--
sp-security.result
26.42
KB
-rw-r--r--
sp-threads.result
2.01
KB
-rw-r--r--
sp-ucs2.result
5.45
KB
-rw-r--r--
sp-vars.result
30.01
KB
-rw-r--r--
sp.result
192.98
KB
-rw-r--r--
sp_debug.result
735
B
-rw-r--r--
sp_gis.result
853
B
-rw-r--r--
sp_notembedded.result
14.61
KB
-rw-r--r--
sp_stress_case.result
2.53
KB
-rw-r--r--
sp_sync.result
3.17
KB
-rw-r--r--
sp_trans.result
14.83
KB
-rw-r--r--
sp_trans_log.result
891
B
-rw-r--r--
sp_validation.result
34.85
KB
-rw-r--r--
sql_mode.result
23.42
KB
-rw-r--r--
sql_mode_default.result
3.39
KB
-rw-r--r--
ssl-big.result
69
B
-rw-r--r--
ssl-crl-revoked-crl.result
76
B
-rw-r--r--
ssl-sha512.result
636
B
-rw-r--r--
ssl.result
66.63
KB
-rw-r--r--
ssl_8k_key.result
42
B
-rw-r--r--
ssl_and_innodb.result
306
B
-rw-r--r--
ssl_auto_detect_openssl.result
361
B
-rw-r--r--
ssl_ca.result
857
B
-rw-r--r--
ssl_cipher.result
295
B
-rw-r--r--
ssl_compress.result
66.25
KB
-rw-r--r--
ssl_connect.result
10
B
-rw-r--r--
ssl_crl.result
1.21
KB
-rw-r--r--
ssl_crl_clients-valid.result
1.01
KB
-rw-r--r--
ssl_crl_clients.result
427
B
-rw-r--r--
ssl_crl_clients_valid.result
673
B
-rw-r--r--
ssl_crl_crlpath.result
808
B
-rw-r--r--
ssl_deprecated_tls_versions.re...
334
B
-rw-r--r--
ssl_verify_identity.result
1.35
KB
-rw-r--r--
status.result
11.15
KB
-rw-r--r--
status2.result
1.35
KB
-rw-r--r--
status_bug17954.result
582
B
-rw-r--r--
status_debug.result
3.48
KB
-rw-r--r--
strict.result
78.07
KB
-rw-r--r--
strict_autoinc_1myisam.result
1.05
KB
-rw-r--r--
strict_autoinc_2innodb.result
1.05
KB
-rw-r--r--
strict_autoinc_3heap.result
1.05
KB
-rw-r--r--
subquery_all.result
298.58
KB
-rw-r--r--
subquery_all_bka.result
298.82
KB
-rw-r--r--
subquery_all_bka_nixbnl.result
298.37
KB
-rw-r--r--
subquery_bugs.result
4.36
KB
-rw-r--r--
subquery_mat.result
133.51
KB
-rw-r--r--
subquery_mat_all.result
123.66
KB
-rw-r--r--
subquery_mat_none.result
122.3
KB
-rw-r--r--
subquery_nomat_nosj.result
297.96
KB
-rw-r--r--
subquery_nomat_nosj_bka.result
298.16
KB
-rw-r--r--
subquery_nomat_nosj_bka_nixbnl...
297.81
KB
-rw-r--r--
subquery_none.result
297.84
KB
-rw-r--r--
subquery_none_bka.result
297.94
KB
-rw-r--r--
subquery_none_bka_nixbnl.resul...
297.58
KB
-rw-r--r--
subquery_sj_all.result
500.49
KB
-rw-r--r--
subquery_sj_all_bka.result
502.11
KB
-rw-r--r--
subquery_sj_all_bka_nixbnl.res...
490.45
KB
-rw-r--r--
subquery_sj_all_bkaunique.resu...
498.68
KB
-rw-r--r--
subquery_sj_dupsweed.result
502.87
KB
-rw-r--r--
subquery_sj_dupsweed_bka.resul...
502.97
KB
-rw-r--r--
subquery_sj_dupsweed_bka_nixbn...
484.75
KB
-rw-r--r--
subquery_sj_dupsweed_bkaunique...
503
KB
-rw-r--r--
subquery_sj_firstmatch.result
487.96
KB
-rw-r--r--
subquery_sj_firstmatch_bka.res...
488.05
KB
-rw-r--r--
subquery_sj_firstmatch_bka_nix...
480.97
KB
-rw-r--r--
subquery_sj_firstmatch_bkauniq...
488.09
KB
-rw-r--r--
subquery_sj_innodb_all.result
6.38
KB
-rw-r--r--
subquery_sj_innodb_all_bka.res...
6.57
KB
-rw-r--r--
subquery_sj_innodb_all_bka_nix...
6.6
KB
-rw-r--r--
subquery_sj_innodb_all_bkauniq...
6.63
KB
-rw-r--r--
subquery_sj_innodb_none.result
6.66
KB
-rw-r--r--
subquery_sj_innodb_none_bka.re...
6.75
KB
-rw-r--r--
subquery_sj_innodb_none_bka_ni...
6.74
KB
-rw-r--r--
subquery_sj_innodb_none_bkauni...
6.79
KB
-rw-r--r--
subquery_sj_loosescan.result
502.69
KB
-rw-r--r--
subquery_sj_loosescan_bka.resu...
502.79
KB
-rw-r--r--
subquery_sj_loosescan_bka_nixb...
484.38
KB
-rw-r--r--
subquery_sj_loosescan_bkauniqu...
502.82
KB
-rw-r--r--
subquery_sj_mat.result
522.25
KB
-rw-r--r--
subquery_sj_mat_bka.result
522.34
KB
-rw-r--r--
subquery_sj_mat_bka_nixbnl.res...
505.5
KB
-rw-r--r--
subquery_sj_mat_bkaunique.resu...
522.38
KB
-rw-r--r--
subquery_sj_mat_nosj.result
549.88
KB
-rw-r--r--
subquery_sj_none.result
516.26
KB
-rw-r--r--
subquery_sj_none_bka.result
516.35
KB
-rw-r--r--
subquery_sj_none_bka_nixbnl.re...
509.41
KB
-rw-r--r--
subquery_sj_none_bkaunique.res...
516.38
KB
-rw-r--r--
subselect_debug.result
662
B
-rw-r--r--
subselect_gis.result
320
B
-rw-r--r--
subselect_innodb.result
28.76
KB
-rw-r--r--
subselect_notembedded.result
752
B
-rw-r--r--
sum_distinct-big.result
2
KB
-rw-r--r--
sum_distinct.result
3.14
KB
-rw-r--r--
symlink.result
8.12
KB
-rw-r--r--
synchronization.result
4.05
KB
-rw-r--r--
sysdate_is_now.result
76
B
-rw-r--r--
system_mysql_db.result
13.71
KB
-rw-r--r--
system_mysql_db_refs.result
3.14
KB
-rw-r--r--
table_definition_cache_functio...
6.9
KB
-rw-r--r--
table_open_cache_functionality...
12.92
KB
-rw-r--r--
tablelock.result
1.5
KB
-rw-r--r--
tablespace.result
10.57
KB
-rw-r--r--
temp_pool.result
646
B
-rw-r--r--
temp_table.result
8.18
KB
-rw-r--r--
temporal_literal.result
13.62
KB
-rw-r--r--
test_security_context.result
1.06
KB
-rw-r--r--
testdb_only.require
45
B
-rw-r--r--
timezone.result
2.58
KB
-rw-r--r--
timezone2.result
13.21
KB
-rw-r--r--
timezone3.result
2.21
KB
-rw-r--r--
timezone4.result
148
B
-rw-r--r--
timezone_debug.result
926
B
-rw-r--r--
timezone_grant.result
4.42
KB
-rw-r--r--
trans_read_only.result
1.38
KB
-rw-r--r--
transaction_isolation.result
4.3
KB
-rw-r--r--
transaction_read_only.result
5.39
KB
-rw-r--r--
trigger-compat.result
7.98
KB
-rw-r--r--
trigger-trans.result
6.45
KB
-rw-r--r--
trigger.result
87.73
KB
-rw-r--r--
trigger_debug.result
627
B
-rw-r--r--
trigger_notembedded.result
19.95
KB
-rw-r--r--
trigger_wl3253.result
26.27
KB
-rw-r--r--
trigger_wl6030.result
53.61
KB
-rw-r--r--
true.require
7
B
-rw-r--r--
truncate.result
3.7
KB
-rw-r--r--
truncate_coverage.result
2.4
KB
-rw-r--r--
type_binary.result
9.62
KB
-rw-r--r--
type_bit.result
18.23
KB
-rw-r--r--
type_bit_innodb.result
8.2
KB
-rw-r--r--
type_blob.result
40.47
KB
-rw-r--r--
type_date.result
21.96
KB
-rw-r--r--
type_datetime.result
34.39
KB
-rw-r--r--
type_decimal.result
36.16
KB
-rw-r--r--
type_enum.result
101.64
KB
-rw-r--r--
type_float.result
12.43
KB
-rw-r--r--
type_nchar.result
1.44
KB
-rw-r--r--
type_newdecimal-big.result
678
B
-rw-r--r--
type_newdecimal.result
68.9
KB
-rw-r--r--
type_ranges.result
17.61
KB
-rw-r--r--
type_set.result
4.58
KB
-rw-r--r--
type_string.result
139
B
-rw-r--r--
type_temporal_fractional.resul...
645.37
KB
-rw-r--r--
type_temporal_upgrade.result
13.45
KB
-rw-r--r--
type_time.result
120.35
KB
-rw-r--r--
type_timestamp.result
25.71
KB
-rw-r--r--
type_timestamp_explicit.result
31.6
KB
-rw-r--r--
type_uint.result
380
B
-rw-r--r--
type_varchar.result
22.85
KB
-rw-r--r--
type_year.result
7.16
KB
-rw-r--r--
udf.result
17.31
KB
-rw-r--r--
udf_services.result
499
B
-rw-r--r--
udf_skip_grants.result
223
B
-rw-r--r--
union.result
87.33
KB
-rw-r--r--
unsafe_binlog_innodb.result
4.36
KB
-rw-r--r--
update.result
24.32
KB
-rw-r--r--
upgrade.result
5.28
KB
-rw-r--r--
user_if_exists.result
9.13
KB
-rw-r--r--
user_limits.result
5.82
KB
-rw-r--r--
user_lock.result
23.14
KB
-rw-r--r--
user_var-binlog.result
2.21
KB
-rw-r--r--
user_var.result
18.95
KB
-rw-r--r--
utility_warnings.result
7
KB
-rw-r--r--
validate_password_plugin.resul...
12.25
KB
-rw-r--r--
validate_password_plugin_check...
3.69
KB
-rw-r--r--
varbinary.result
58
KB
-rw-r--r--
variables-big.result
972
B
-rw-r--r--
variables-notembedded.result
5.97
KB
-rw-r--r--
variables-win.result
347
B
-rw-r--r--
variables.result
63.66
KB
-rw-r--r--
variables_community.result
182
B
-rw-r--r--
variables_debug.result
2.13
KB
-rw-r--r--
version_token.result
11.29
KB
-rw-r--r--
version_token_bug21280801.resu...
2.72
KB
-rw-r--r--
version_token_errors.result
2.21
KB
-rw-r--r--
view.result
258
KB
-rw-r--r--
view_alias.result
6.19
KB
-rw-r--r--
view_grant.result
126.95
KB
-rw-r--r--
view_gtid_mode_on_debug.result
1.37
KB
-rw-r--r--
wait_timeout.result
1.07
KB
-rw-r--r--
warnings.result
11.89
KB
-rw-r--r--
warnings_engine_disabled.resul...
475
B
-rw-r--r--
windows.require
7
B
-rw-r--r--
windows.result
1.98
KB
-rw-r--r--
wl3836.result
2.71
KB
-rw-r--r--
wl5928.result
15.47
KB
-rw-r--r--
wl6219-csv.result
5.16
KB
-rw-r--r--
wl6219-innodb.result
5.18
KB
-rw-r--r--
wl6219-memory.result
5.18
KB
-rw-r--r--
wl6219-merge.result
3.87
KB
-rw-r--r--
wl6219-myisam.result
5.18
KB
-rw-r--r--
wl6219-upgrade.result
10.52
KB
-rw-r--r--
wl6301_1_not_windows.result
44
B
-rw-r--r--
wl6301_2_not_windows.result
46
B
-rw-r--r--
wl6301_3.result
89
B
-rw-r--r--
wl6443_deprecation.result
10.81
KB
-rw-r--r--
wl6661.result
6.33
KB
-rw-r--r--
wl6711_heap_to_disk.result
6.07
KB
-rw-r--r--
wl6978.result
214
B
-rw-r--r--
xa.result
13.51
KB
-rw-r--r--
xa_deadlock_binlog.result
3.08
KB
-rw-r--r--
xa_debug.result
3.18
KB
-rw-r--r--
xa_gtid.result
878
B
-rw-r--r--
xa_prepared_binlog_off.result
19.77
KB
-rw-r--r--
xml.result
41.94
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : type_temporal_fractional.result
DROP TABLE IF EXISTS t1, t2; SET NAMES latin1; # # Testing functions CURRENT_TIME and CURRENT_TIMESTAMP # SELECT CURRENT_TIME(6) RLIKE '^[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{6}$'; CURRENT_TIME(6) RLIKE '^[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{6}$' 1 SELECT CURRENT_TIMESTAMP(6) RLIKE '^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{6}$'; CURRENT_TIMESTAMP(6) RLIKE '^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{6}$' 1 SELECT LEFT(CURRENT_TIME(6), 8) = CONCAT(CURRENT_TIME); LEFT(CURRENT_TIME(6), 8) = CONCAT(CURRENT_TIME) 1 SELECT LEFT(CURRENT_TIMESTAMP(6), 8) = CONCAT(CURRENT_TIMESTAMP); LEFT(CURRENT_TIMESTAMP(6), 8) = CONCAT(CURRENT_TIMESTAMP) 0 SELECT RIGHT(CURRENT_TIME(6), 7) = RIGHT(CURRENT_TIMESTAMP(6), 7); RIGHT(CURRENT_TIME(6), 7) = RIGHT(CURRENT_TIMESTAMP(6), 7) 1 SELECT CURRENT_TIMESTAMP(6)=TIMESTAMP(CURRENT_DATE, CURRENT_TIME(6)); CURRENT_TIMESTAMP(6)=TIMESTAMP(CURRENT_DATE, CURRENT_TIME(6)) 1 SELECT CURRENT_TIMESTAMP(6)=NOW(6); CURRENT_TIMESTAMP(6)=NOW(6) 1 SELECT CURRENT_TIMESTAMP(6)=LOCALTIME(6); CURRENT_TIMESTAMP(6)=LOCALTIME(6) 1 SELECT CURRENT_TIMESTAMP(6)=LOCALTIMESTAMP(6); CURRENT_TIMESTAMP(6)=LOCALTIMESTAMP(6) 1 SELECT CURRENT_TIMESTAMP(6)<=SYSDATE(6); CURRENT_TIMESTAMP(6)<=SYSDATE(6) 1 SELECT CURRENT_TIMESTAMP(6)<=SYSDATE(6) + 0; CURRENT_TIMESTAMP(6)<=SYSDATE(6) + 0 1 SELECT MICROSECOND(CURRENT_TIME(6))=MICROSECOND(UTC_TIME(6)); MICROSECOND(CURRENT_TIME(6))=MICROSECOND(UTC_TIME(6)) 1 SELECT MICROSECOND(CURRENT_TIMESTAMP(6))=MICROSECOND(UTC_TIMESTAMP(6)); MICROSECOND(CURRENT_TIMESTAMP(6))=MICROSECOND(UTC_TIMESTAMP(6)) 1 CREATE TABLE t1 AS SELECT CONCAT(CURRENT_TIME()), CONCAT(CURRENT_TIME(6)), CONCAT(UTC_TIME()), CONCAT(UTC_TIME(6)), CONCAT(CURRENT_TIMESTAMP()), CONCAT(CURRENT_TIMESTAMP(6)), CONCAT(UTC_TIMESTAMP()), CONCAT(UTC_TIMESTAMP(6)), CONCAT(LOCALTIME()), CONCAT(LOCALTIME(6)), CONCAT(LOCALTIMESTAMP()), CONCAT(LOCALTIMESTAMP(6)), CONCAT(SYSDATE()), CONCAT(SYSDATE(6)); DESCRIBE t1; Field Type Null Key Default Extra CONCAT(CURRENT_TIME()) varchar(8) YES NULL CONCAT(CURRENT_TIME(6)) varchar(15) YES NULL CONCAT(UTC_TIME()) varchar(8) YES NULL CONCAT(UTC_TIME(6)) varchar(15) YES NULL CONCAT(CURRENT_TIMESTAMP()) varchar(19) YES NULL CONCAT(CURRENT_TIMESTAMP(6)) varchar(26) YES NULL CONCAT(UTC_TIMESTAMP()) varchar(19) YES NULL CONCAT(UTC_TIMESTAMP(6)) varchar(26) YES NULL CONCAT(LOCALTIME()) varchar(19) YES NULL CONCAT(LOCALTIME(6)) varchar(26) YES NULL CONCAT(LOCALTIMESTAMP()) varchar(19) YES NULL CONCAT(LOCALTIMESTAMP(6)) varchar(26) YES NULL CONCAT(SYSDATE()) varchar(19) YES NULL CONCAT(SYSDATE(6)) varchar(26) YES NULL DROP TABLE t1; CREATE TABLE t1 AS SELECT NOW(0), NOW(1), NOW(2), NOW(3), NOW(4), NOW(5), NOW(6); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `NOW(0)` datetime NOT NULL, `NOW(1)` datetime(1) NOT NULL, `NOW(2)` datetime(2) NOT NULL, `NOW(3)` datetime(3) NOT NULL, `NOW(4)` datetime(4) NOT NULL, `NOW(5)` datetime(5) NOT NULL, `NOW(6)` datetime(6) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 AS SELECT SYSDATE(0), SYSDATE(1), SYSDATE(2), SYSDATE(3), SYSDATE(4), SYSDATE(5), SYSDATE(6); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `SYSDATE(0)` datetime NOT NULL, `SYSDATE(1)` datetime(1) NOT NULL, `SYSDATE(2)` datetime(2) NOT NULL, `SYSDATE(3)` datetime(3) NOT NULL, `SYSDATE(4)` datetime(4) NOT NULL, `SYSDATE(5)` datetime(5) NOT NULL, `SYSDATE(6)` datetime(6) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 AS SELECT FROM_UNIXTIME(1), FROM_UNIXTIME(1.1), FROM_UNIXTIME(1.12), FROM_UNIXTIME(1.123), FROM_UNIXTIME(1.1234), FROM_UNIXTIME(1.12345), FROM_UNIXTIME(1.123456), FROM_UNIXTIME(1.1234567); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `FROM_UNIXTIME(1)` datetime DEFAULT NULL, `FROM_UNIXTIME(1.1)` datetime(1) DEFAULT NULL, `FROM_UNIXTIME(1.12)` datetime(2) DEFAULT NULL, `FROM_UNIXTIME(1.123)` datetime(3) DEFAULT NULL, `FROM_UNIXTIME(1.1234)` datetime(4) DEFAULT NULL, `FROM_UNIXTIME(1.12345)` datetime(5) DEFAULT NULL, `FROM_UNIXTIME(1.123456)` datetime(6) DEFAULT NULL, `FROM_UNIXTIME(1.1234567)` datetime(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; # # Testing rounding from VARCHAR and TIME(6) to TIME(N) # CREATE TABLE t1 (a VARCHAR(32), t6 TIME(6), t5 TIME(5), t4 TIME(4), t3 TIME(3), t2 TIME(2), t1 TIME(1), t0 TIME); INSERT INTO t1 (a) VALUES ('10:10:10.999999'); INSERT INTO t1 (a) VALUES ('10:10:10.999994'); INSERT INTO t1 (a) VALUES ('10:10:10.999949'); INSERT INTO t1 (a) VALUES ('10:10:10.999499'); INSERT INTO t1 (a) VALUES ('10:10:10.994999'); INSERT INTO t1 (a) VALUES ('10:10:10.949999'); INSERT INTO t1 (a) VALUES ('10:10:10.499999'); UPDATE t1 SET t0=a, t1=a, t2=a, t3=a, t4=a, t5=a, t6=a; SELECT * FROM t1;; a 10:10:10.999999 t6 10:10:10.999999 t5 10:10:11.00000 t4 10:10:11.0000 t3 10:10:11.000 t2 10:10:11.00 t1 10:10:11.0 t0 10:10:11 a 10:10:10.999994 t6 10:10:10.999994 t5 10:10:10.99999 t4 10:10:11.0000 t3 10:10:11.000 t2 10:10:11.00 t1 10:10:11.0 t0 10:10:11 a 10:10:10.999949 t6 10:10:10.999949 t5 10:10:10.99995 t4 10:10:10.9999 t3 10:10:11.000 t2 10:10:11.00 t1 10:10:11.0 t0 10:10:11 a 10:10:10.999499 t6 10:10:10.999499 t5 10:10:10.99950 t4 10:10:10.9995 t3 10:10:10.999 t2 10:10:11.00 t1 10:10:11.0 t0 10:10:11 a 10:10:10.994999 t6 10:10:10.994999 t5 10:10:10.99500 t4 10:10:10.9950 t3 10:10:10.995 t2 10:10:10.99 t1 10:10:11.0 t0 10:10:11 a 10:10:10.949999 t6 10:10:10.949999 t5 10:10:10.95000 t4 10:10:10.9500 t3 10:10:10.950 t2 10:10:10.95 t1 10:10:10.9 t0 10:10:11 a 10:10:10.499999 t6 10:10:10.499999 t5 10:10:10.50000 t4 10:10:10.5000 t3 10:10:10.500 t2 10:10:10.50 t1 10:10:10.5 t0 10:10:10 ALTER TABLE t1 MODIFY a TIME(6); UPDATE t1 SET t0=a, t1=a, t2=a, t3=a, t4=a, t5=a, t6=a; SELECT * FROM t1;; a 10:10:10.999999 t6 10:10:10.999999 t5 10:10:11.00000 t4 10:10:11.0000 t3 10:10:11.000 t2 10:10:11.00 t1 10:10:11.0 t0 10:10:11 a 10:10:10.999994 t6 10:10:10.999994 t5 10:10:10.99999 t4 10:10:11.0000 t3 10:10:11.000 t2 10:10:11.00 t1 10:10:11.0 t0 10:10:11 a 10:10:10.999949 t6 10:10:10.999949 t5 10:10:10.99995 t4 10:10:10.9999 t3 10:10:11.000 t2 10:10:11.00 t1 10:10:11.0 t0 10:10:11 a 10:10:10.999499 t6 10:10:10.999499 t5 10:10:10.99950 t4 10:10:10.9995 t3 10:10:10.999 t2 10:10:11.00 t1 10:10:11.0 t0 10:10:11 a 10:10:10.994999 t6 10:10:10.994999 t5 10:10:10.99500 t4 10:10:10.9950 t3 10:10:10.995 t2 10:10:10.99 t1 10:10:11.0 t0 10:10:11 a 10:10:10.949999 t6 10:10:10.949999 t5 10:10:10.95000 t4 10:10:10.9500 t3 10:10:10.950 t2 10:10:10.95 t1 10:10:10.9 t0 10:10:11 a 10:10:10.499999 t6 10:10:10.499999 t5 10:10:10.50000 t4 10:10:10.5000 t3 10:10:10.500 t2 10:10:10.50 t1 10:10:10.5 t0 10:10:10 DROP TABLE t1; # # Testing rounding from TIME(N) to INT # CREATE TABLE t1 (a INT, b TIME(6)); INSERT INTO t1 (b) VALUES ('10:10:59.500000'); INSERT INTO t1 (b) VALUES ('10:10:10.500000'); INSERT INTO t1 (b) VALUES ('10:10:10.499999'); INSERT INTO t1 (b) VALUES ('-10:10:59.500000'); INSERT INTO t1 (b) VALUES ('-10:10:10.500000'); INSERT INTO t1 (b) VALUES ('-10:10:10.499999'); UPDATE t1 SET a=b; SELECT * FROM t1; a b 101100 10:10:59.500000 101011 10:10:10.500000 101010 10:10:10.499999 -101100 -10:10:59.500000 -101011 -10:10:10.500000 -101010 -10:10:10.499999 DROP TABLE t1; CREATE TABLE t1 (a INT); INSERT INTO t1 VALUES (TIME'01:59:59.499999'); INSERT INTO t1 VALUES (TIME'01:59:59.500000'); SELECT * FROM t1; a 15959 20000 DROP TABLE t1; # # Inserting TIME into a REAL column # CREATE TABLE t1 (a REAL); INSERT INTO t1 VALUES (TIME'01:02:03.123'); SELECT * FROM t1; a 10203.123 DROP TABLE t1; # # Testing rounding when altering TIME(N) to a smaller size # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('10:10:10.999999'); ALTER TABLE t1 MODIFY a TIME(5); SELECT * FROM t1; a 10:10:11.00000 DROP TABLE t1; CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('10:10:10.999999'); ALTER TABLE t1 MODIFY a TIME; SELECT * FROM t1; a 10:10:11 DROP TABLE t1; # # Testing rounding from DATETIME(6) to TIME(N) # CREATE TABLE t1 (a DATETIME(6), t6 TIME(6), t5 TIME(5), t4 TIME(4), t3 TIME(3), t2 TIME(2), t1 TIME(1), t0 TIME); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.999999'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.999994'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.999949'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.999499'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.994999'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.949999'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.499999'); UPDATE t1 SET t0=a, t1=a, t2=a, t3=a, t4=a, t5=a, t6=a; SELECT * FROM t1;; a 2001-01-01 10:10:10.999999 t6 10:10:10.999999 t5 10:10:11.00000 t4 10:10:11.0000 t3 10:10:11.000 t2 10:10:11.00 t1 10:10:11.0 t0 10:10:11 a 2001-01-01 10:10:10.999994 t6 10:10:10.999994 t5 10:10:10.99999 t4 10:10:11.0000 t3 10:10:11.000 t2 10:10:11.00 t1 10:10:11.0 t0 10:10:11 a 2001-01-01 10:10:10.999949 t6 10:10:10.999949 t5 10:10:10.99995 t4 10:10:10.9999 t3 10:10:11.000 t2 10:10:11.00 t1 10:10:11.0 t0 10:10:11 a 2001-01-01 10:10:10.999499 t6 10:10:10.999499 t5 10:10:10.99950 t4 10:10:10.9995 t3 10:10:10.999 t2 10:10:11.00 t1 10:10:11.0 t0 10:10:11 a 2001-01-01 10:10:10.994999 t6 10:10:10.994999 t5 10:10:10.99500 t4 10:10:10.9950 t3 10:10:10.995 t2 10:10:10.99 t1 10:10:11.0 t0 10:10:11 a 2001-01-01 10:10:10.949999 t6 10:10:10.949999 t5 10:10:10.95000 t4 10:10:10.9500 t3 10:10:10.950 t2 10:10:10.95 t1 10:10:10.9 t0 10:10:11 a 2001-01-01 10:10:10.499999 t6 10:10:10.499999 t5 10:10:10.50000 t4 10:10:10.5000 t3 10:10:10.500 t2 10:10:10.50 t1 10:10:10.5 t0 10:10:10 DROP TABLE t1; # # Testing rounding from DECIMAL and DOUBLE to TIME(N) # CREATE TABLE t1 (a DECIMAL(30,6), t6 TIME(6), t5 TIME(5), t4 TIME(4), t3 TIME(3), t2 TIME(2), t1 TIME(1), t0 TIME); INSERT INTO t1 (a) VALUES (101010.999999); INSERT INTO t1 (a) VALUES (101010.999994); INSERT INTO t1 (a) VALUES (101010.999949); INSERT INTO t1 (a) VALUES (101010.999499); INSERT INTO t1 (a) VALUES (101010.994999); INSERT INTO t1 (a) VALUES (101010.949999); INSERT INTO t1 (a) VALUES (101010.499999); UPDATE t1 SET t0=a, t1=a, t2=a, t3=a, t4=a, t5=a, t6=a; SELECT * FROM t1;; a 101010.999999 t6 10:10:10.999999 t5 10:10:11.00000 t4 10:10:11.0000 t3 10:10:11.000 t2 10:10:11.00 t1 10:10:11.0 t0 10:10:11 a 101010.999994 t6 10:10:10.999994 t5 10:10:10.99999 t4 10:10:11.0000 t3 10:10:11.000 t2 10:10:11.00 t1 10:10:11.0 t0 10:10:11 a 101010.999949 t6 10:10:10.999949 t5 10:10:10.99995 t4 10:10:10.9999 t3 10:10:11.000 t2 10:10:11.00 t1 10:10:11.0 t0 10:10:11 a 101010.999499 t6 10:10:10.999499 t5 10:10:10.99950 t4 10:10:10.9995 t3 10:10:10.999 t2 10:10:11.00 t1 10:10:11.0 t0 10:10:11 a 101010.994999 t6 10:10:10.994999 t5 10:10:10.99500 t4 10:10:10.9950 t3 10:10:10.995 t2 10:10:10.99 t1 10:10:11.0 t0 10:10:11 a 101010.949999 t6 10:10:10.949999 t5 10:10:10.95000 t4 10:10:10.9500 t3 10:10:10.950 t2 10:10:10.95 t1 10:10:10.9 t0 10:10:11 a 101010.499999 t6 10:10:10.499999 t5 10:10:10.50000 t4 10:10:10.5000 t3 10:10:10.500 t2 10:10:10.50 t1 10:10:10.5 t0 10:10:10 ALTER TABLE t1 MODIFY a DOUBLE; UPDATE t1 SET t0=a, t1=a, t2=a, t3=a, t4=a, t5=a, t6=a; SELECT * FROM t1;; a 101010.999999 t6 10:10:10.999999 t5 10:10:11.00000 t4 10:10:11.0000 t3 10:10:11.000 t2 10:10:11.00 t1 10:10:11.0 t0 10:10:11 a 101010.999994 t6 10:10:10.999994 t5 10:10:10.99999 t4 10:10:11.0000 t3 10:10:11.000 t2 10:10:11.00 t1 10:10:11.0 t0 10:10:11 a 101010.999949 t6 10:10:10.999949 t5 10:10:10.99995 t4 10:10:10.9999 t3 10:10:11.000 t2 10:10:11.00 t1 10:10:11.0 t0 10:10:11 a 101010.999499 t6 10:10:10.999499 t5 10:10:10.99950 t4 10:10:10.9995 t3 10:10:10.999 t2 10:10:11.00 t1 10:10:11.0 t0 10:10:11 a 101010.994999 t6 10:10:10.994999 t5 10:10:10.99500 t4 10:10:10.9950 t3 10:10:10.995 t2 10:10:10.99 t1 10:10:11.0 t0 10:10:11 a 101010.949999 t6 10:10:10.949999 t5 10:10:10.95000 t4 10:10:10.9500 t3 10:10:10.950 t2 10:10:10.95 t1 10:10:10.9 t0 10:10:11 a 101010.499999 t6 10:10:10.499999 t5 10:10:10.50000 t4 10:10:10.5000 t3 10:10:10.500 t2 10:10:10.50 t1 10:10:10.5 t0 10:10:10 DROP TABLE t1; # # Testing rounding when casting from DECIMAL to TIME(N) # CREATE TABLE t1 (a DECIMAL(23,4)); INSERT INTO t1 VALUES (NULL),(101010.9999),(-101010.9999); INSERT IGNORE INTO t1 VALUES (9999999999999999999999.1), (999999.1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT a, CAST(a AS TIME(3)) FROM t1; a CAST(a AS TIME(3)) NULL NULL 101010.9999 10:10:11.000 -101010.9999 -10:10:11.000 9999999999999999999.9999 NULL 999999.1000 NULL Warnings: Warning 1292 Truncated incorrect time value: '9999999999999999999.9999' Warning 1292 Truncated incorrect time value: '999999.1000' DROP TABLE t1; # # Testing that CAST converts days to hours, while EXTRACT/HOUR do not # SELECT CAST('1 00:00:00' as TIME), EXTRACT(HOUR FROM '1 00:00:00'), HOUR('1 00:00:00'); CAST('1 00:00:00' as TIME) EXTRACT(HOUR FROM '1 00:00:00') HOUR('1 00:00:00') 24:00:00 24 24 CREATE TABLE t1 (a VARCHAR(30)); INSERT INTO t1 VALUES ('1 00:00:00'); SELECT CAST(a AS TIME), EXTRACT(HOUR FROM a), HOUR(a) FROM t1; CAST(a AS TIME) EXTRACT(HOUR FROM a) HOUR(a) 24:00:00 24 24 DROP TABLE t1; # # Testing rounding with CAST # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('10:10:10.999999'); INSERT INTO t1 VALUES ('10:10:10.999998'); INSERT INTO t1 VALUES ('10:10:10.999997'); INSERT INTO t1 VALUES ('10:10:10.999996'); INSERT INTO t1 VALUES ('10:10:10.999995'); INSERT INTO t1 VALUES ('10:10:10.999994'); INSERT INTO t1 VALUES ('10:10:10.999993'); INSERT INTO t1 VALUES ('10:10:10.999992'); INSERT INTO t1 VALUES ('10:10:10.999991'); INSERT INTO t1 VALUES ('10:10:10.999990'); SELECT a, CAST(a AS TIME(5)) FROM t1; a CAST(a AS TIME(5)) 10:10:10.999999 10:10:11.00000 10:10:10.999998 10:10:11.00000 10:10:10.999997 10:10:11.00000 10:10:10.999996 10:10:11.00000 10:10:10.999995 10:10:11.00000 10:10:10.999994 10:10:10.99999 10:10:10.999993 10:10:10.99999 10:10:10.999992 10:10:10.99999 10:10:10.999991 10:10:10.99999 10:10:10.999990 10:10:10.99999 UPDATE t1 SET a=-a; SELECT a, CAST(a AS TIME(5)) FROM t1; a CAST(a AS TIME(5)) -10:10:10.999999 -10:10:11.00000 -10:10:10.999998 -10:10:11.00000 -10:10:10.999997 -10:10:11.00000 -10:10:10.999996 -10:10:11.00000 -10:10:10.999995 -10:10:11.00000 -10:10:10.999994 -10:10:10.99999 -10:10:10.999993 -10:10:10.99999 -10:10:10.999992 -10:10:10.99999 -10:10:10.999991 -10:10:10.99999 -10:10:10.999990 -10:10:10.99999 DROP TABLE t1; CREATE TABLE t1 (a TIME(5)); INSERT INTO t1 VALUES ('10:10:10.99999'); INSERT INTO t1 VALUES ('10:10:10.99998'); INSERT INTO t1 VALUES ('10:10:10.99997'); INSERT INTO t1 VALUES ('10:10:10.99996'); INSERT INTO t1 VALUES ('10:10:10.99995'); INSERT INTO t1 VALUES ('10:10:10.99994'); INSERT INTO t1 VALUES ('10:10:10.99993'); INSERT INTO t1 VALUES ('10:10:10.99992'); INSERT INTO t1 VALUES ('10:10:10.99991'); INSERT INTO t1 VALUES ('10:10:10.99990'); SELECT a, CAST(a AS TIME(4)) FROM t1; a CAST(a AS TIME(4)) 10:10:10.99999 10:10:11.0000 10:10:10.99998 10:10:11.0000 10:10:10.99997 10:10:11.0000 10:10:10.99996 10:10:11.0000 10:10:10.99995 10:10:11.0000 10:10:10.99994 10:10:10.9999 10:10:10.99993 10:10:10.9999 10:10:10.99992 10:10:10.9999 10:10:10.99991 10:10:10.9999 10:10:10.99990 10:10:10.9999 UPDATE t1 SET a=-a; SELECT a, CAST(a AS TIME(4)) FROM t1; a CAST(a AS TIME(4)) -10:10:10.99999 -10:10:11.0000 -10:10:10.99998 -10:10:11.0000 -10:10:10.99997 -10:10:11.0000 -10:10:10.99996 -10:10:11.0000 -10:10:10.99995 -10:10:11.0000 -10:10:10.99994 -10:10:10.9999 -10:10:10.99993 -10:10:10.9999 -10:10:10.99992 -10:10:10.9999 -10:10:10.99991 -10:10:10.9999 -10:10:10.99990 -10:10:10.9999 DROP TABLE t1; CREATE TABLE t1 (a TIME(4)); INSERT INTO t1 VALUES ('10:10:10.9999'); INSERT INTO t1 VALUES ('10:10:10.9998'); INSERT INTO t1 VALUES ('10:10:10.9997'); INSERT INTO t1 VALUES ('10:10:10.9996'); INSERT INTO t1 VALUES ('10:10:10.9995'); INSERT INTO t1 VALUES ('10:10:10.9994'); INSERT INTO t1 VALUES ('10:10:10.9993'); INSERT INTO t1 VALUES ('10:10:10.9992'); INSERT INTO t1 VALUES ('10:10:10.9991'); INSERT INTO t1 VALUES ('10:10:10.9990'); SELECT a, CAST(a AS TIME(3)) FROM t1; a CAST(a AS TIME(3)) 10:10:10.9999 10:10:11.000 10:10:10.9998 10:10:11.000 10:10:10.9997 10:10:11.000 10:10:10.9996 10:10:11.000 10:10:10.9995 10:10:11.000 10:10:10.9994 10:10:10.999 10:10:10.9993 10:10:10.999 10:10:10.9992 10:10:10.999 10:10:10.9991 10:10:10.999 10:10:10.9990 10:10:10.999 UPDATE t1 SET a=-a; SELECT a, CAST(a AS TIME(3)) FROM t1; a CAST(a AS TIME(3)) -10:10:10.9999 -10:10:11.000 -10:10:10.9998 -10:10:11.000 -10:10:10.9997 -10:10:11.000 -10:10:10.9996 -10:10:11.000 -10:10:10.9995 -10:10:11.000 -10:10:10.9994 -10:10:10.999 -10:10:10.9993 -10:10:10.999 -10:10:10.9992 -10:10:10.999 -10:10:10.9991 -10:10:10.999 -10:10:10.9990 -10:10:10.999 DROP TABLE t1; CREATE TABLE t1 (a TIME(3)); INSERT INTO t1 VALUES ('10:10:10.999'); INSERT INTO t1 VALUES ('10:10:10.998'); INSERT INTO t1 VALUES ('10:10:10.997'); INSERT INTO t1 VALUES ('10:10:10.996'); INSERT INTO t1 VALUES ('10:10:10.995'); INSERT INTO t1 VALUES ('10:10:10.994'); INSERT INTO t1 VALUES ('10:10:10.993'); INSERT INTO t1 VALUES ('10:10:10.992'); INSERT INTO t1 VALUES ('10:10:10.991'); INSERT INTO t1 VALUES ('10:10:10.990'); SELECT a, CAST(a AS TIME(2)) FROM t1; a CAST(a AS TIME(2)) 10:10:10.999 10:10:11.00 10:10:10.998 10:10:11.00 10:10:10.997 10:10:11.00 10:10:10.996 10:10:11.00 10:10:10.995 10:10:11.00 10:10:10.994 10:10:10.99 10:10:10.993 10:10:10.99 10:10:10.992 10:10:10.99 10:10:10.991 10:10:10.99 10:10:10.990 10:10:10.99 UPDATE t1 SET a=-a; SELECT a, CAST(a AS TIME(2)) FROM t1; a CAST(a AS TIME(2)) -10:10:10.999 -10:10:11.00 -10:10:10.998 -10:10:11.00 -10:10:10.997 -10:10:11.00 -10:10:10.996 -10:10:11.00 -10:10:10.995 -10:10:11.00 -10:10:10.994 -10:10:10.99 -10:10:10.993 -10:10:10.99 -10:10:10.992 -10:10:10.99 -10:10:10.991 -10:10:10.99 -10:10:10.990 -10:10:10.99 DROP TABLE t1; CREATE TABLE t1 (a TIME(2)); INSERT INTO t1 VALUES ('10:10:10.99'); INSERT INTO t1 VALUES ('10:10:10.98'); INSERT INTO t1 VALUES ('10:10:10.97'); INSERT INTO t1 VALUES ('10:10:10.96'); INSERT INTO t1 VALUES ('10:10:10.95'); INSERT INTO t1 VALUES ('10:10:10.94'); INSERT INTO t1 VALUES ('10:10:10.93'); INSERT INTO t1 VALUES ('10:10:10.92'); INSERT INTO t1 VALUES ('10:10:10.91'); INSERT INTO t1 VALUES ('10:10:10.90'); SELECT a, CAST(a AS TIME(1)) FROM t1; a CAST(a AS TIME(1)) 10:10:10.99 10:10:11.0 10:10:10.98 10:10:11.0 10:10:10.97 10:10:11.0 10:10:10.96 10:10:11.0 10:10:10.95 10:10:11.0 10:10:10.94 10:10:10.9 10:10:10.93 10:10:10.9 10:10:10.92 10:10:10.9 10:10:10.91 10:10:10.9 10:10:10.90 10:10:10.9 UPDATE t1 SET a=-a; SELECT a, CAST(a AS TIME(1)) FROM t1; a CAST(a AS TIME(1)) -10:10:10.99 -10:10:11.0 -10:10:10.98 -10:10:11.0 -10:10:10.97 -10:10:11.0 -10:10:10.96 -10:10:11.0 -10:10:10.95 -10:10:11.0 -10:10:10.94 -10:10:10.9 -10:10:10.93 -10:10:10.9 -10:10:10.92 -10:10:10.9 -10:10:10.91 -10:10:10.9 -10:10:10.90 -10:10:10.9 DROP TABLE t1; CREATE TABLE t1 (a TIME(1)); INSERT INTO t1 VALUES ('10:10:10.9'); INSERT INTO t1 VALUES ('10:10:10.8'); INSERT INTO t1 VALUES ('10:10:10.7'); INSERT INTO t1 VALUES ('10:10:10.6'); INSERT INTO t1 VALUES ('10:10:10.5'); INSERT INTO t1 VALUES ('10:10:10.4'); INSERT INTO t1 VALUES ('10:10:10.3'); INSERT INTO t1 VALUES ('10:10:10.2'); INSERT INTO t1 VALUES ('10:10:10.1'); INSERT INTO t1 VALUES ('10:10:10.0'); SELECT a, CAST(a AS TIME) FROM t1; a CAST(a AS TIME) 10:10:10.9 10:10:11 10:10:10.8 10:10:11 10:10:10.7 10:10:11 10:10:10.6 10:10:11 10:10:10.5 10:10:11 10:10:10.4 10:10:10 10:10:10.3 10:10:10 10:10:10.2 10:10:10 10:10:10.1 10:10:10 10:10:10.0 10:10:10 UPDATE t1 SET a=-a; SELECT a, CAST(a AS TIME) FROM t1; a CAST(a AS TIME) -10:10:10.9 -10:10:11 -10:10:10.8 -10:10:11 -10:10:10.7 -10:10:11 -10:10:10.6 -10:10:11 -10:10:10.5 -10:10:11 -10:10:10.4 -10:10:10 -10:10:10.3 -10:10:10 -10:10:10.2 -10:10:10 -10:10:10.1 -10:10:10 -10:10:10.0 -10:10:10 DROP TABLE t1; # # Testing rounding with FROM_UNIXTIME # SET time_zone='+00:00'; CREATE TABLE t1 (a DECIMAL(20,7)); INSERT INTO t1 VALUES (2147483647.999999), (2147483647.9999990), (2147483647.9999991), (2147483647.9999992), (2147483647.9999993), (2147483647.9999994), (2147483647.9999995), (2147483647.9999996), (2147483647.9999997), (2147483647.9999998), (2147483647.9999999); SELECT a, FROM_UNIXTIME(a) FROM t1; a FROM_UNIXTIME(a) 2147483647.9999990 2038-01-19 03:14:07.999999 2147483647.9999990 2038-01-19 03:14:07.999999 2147483647.9999991 2038-01-19 03:14:07.999999 2147483647.9999992 2038-01-19 03:14:07.999999 2147483647.9999993 2038-01-19 03:14:07.999999 2147483647.9999994 2038-01-19 03:14:07.999999 2147483647.9999995 2038-01-19 03:14:08.000000 2147483647.9999996 2038-01-19 03:14:08.000000 2147483647.9999997 2038-01-19 03:14:08.000000 2147483647.9999998 2038-01-19 03:14:08.000000 2147483647.9999999 2038-01-19 03:14:08.000000 DROP TABLE t1; SET time_zone=DEFAULT; # # Testing internal representation format for TIME(N) # CREATE TABLE t1 (a6 VARCHAR(32)); INSERT INTO t1 VALUES ('00:00:00.000000'); INSERT INTO t1 VALUES ('00:00:00.000001'); INSERT INTO t1 VALUES ('00:00:00.000002'); INSERT INTO t1 VALUES ('00:00:00.000003'); INSERT INTO t1 VALUES ('00:00:00.000004'); INSERT INTO t1 VALUES ('00:00:00.000005'); INSERT INTO t1 VALUES ('00:00:00.000006'); INSERT INTO t1 VALUES ('00:00:00.000007'); INSERT INTO t1 VALUES ('00:00:00.000008'); INSERT INTO t1 VALUES ('00:00:00.000009'); INSERT INTO t1 VALUES ('00:00:00.000010'); INSERT INTO t1 VALUES ('00:00:00.000011'); INSERT INTO t1 VALUES ('00:00:00.000012'); INSERT INTO t1 VALUES ('00:00:00.000013'); INSERT INTO t1 VALUES ('00:00:00.000014'); INSERT INTO t1 VALUES ('00:00:00.000015'); INSERT INTO t1 VALUES ('00:00:00.000016'); INSERT INTO t1 VALUES ('00:00:00.000099'); INSERT INTO t1 VALUES ('00:00:00.000999'); INSERT INTO t1 VALUES ('00:00:00.009999'); INSERT INTO t1 VALUES ('00:00:00.099999'); INSERT INTO t1 VALUES ('00:00:00.100000'); INSERT INTO t1 VALUES ('00:00:00.900000'); INSERT INTO t1 VALUES ('00:00:00.990000'); INSERT INTO t1 VALUES ('00:00:00.999000'); INSERT INTO t1 VALUES ('00:00:00.999900'); INSERT INTO t1 VALUES ('00:00:00.999990'); INSERT INTO t1 VALUES ('00:00:00.999999'); INSERT INTO t1 VALUES ('00:00:01.000000'); INSERT INTO t1 VALUES ('00:00:01.000001'); INSERT INTO t1 VALUES ('00:00:01.000002'); INSERT INTO t1 VALUES ('00:00:01.000003'); INSERT INTO t1 VALUES ('00:00:01.000004'); INSERT INTO t1 VALUES ('00:00:01.000005'); INSERT INTO t1 VALUES ('00:00:01.000006'); INSERT INTO t1 VALUES ('00:00:01.000007'); INSERT INTO t1 VALUES ('00:00:01.000008'); INSERT INTO t1 VALUES ('00:00:01.000009'); INSERT INTO t1 VALUES ('00:00:01.000010'); INSERT INTO t1 VALUES ('00:00:01.000011'); INSERT INTO t1 VALUES ('00:00:01.000012'); INSERT INTO t1 VALUES ('00:00:01.000013'); INSERT INTO t1 VALUES ('00:00:01.000014'); INSERT INTO t1 VALUES ('00:00:01.000015'); INSERT INTO t1 VALUES ('00:00:01.000016'); INSERT INTO t1 VALUES ('00:00:01.000099'); INSERT INTO t1 VALUES ('00:00:01.000999'); INSERT INTO t1 VALUES ('00:00:01.009999'); INSERT INTO t1 VALUES ('00:00:01.090000'); INSERT INTO t1 VALUES ('00:00:01.099999'); INSERT INTO t1 VALUES ('00:00:01.100000'); INSERT INTO t1 VALUES ('00:00:01.900000'); INSERT INTO t1 VALUES ('00:00:01.990000'); INSERT INTO t1 VALUES ('00:00:01.999000'); INSERT INTO t1 VALUES ('00:00:01.999900'); INSERT INTO t1 VALUES ('00:00:01.999990'); INSERT INTO t1 VALUES ('00:00:01.999999'); INSERT INTO t1 VALUES ('00:01:00.000001'); INSERT INTO t1 VALUES ('00:01:00.000008'); INSERT INTO t1 VALUES ('00:01:00.000015'); INSERT INTO t1 VALUES ('00:01:00.000016'); INSERT INTO t1 VALUES ('00:01:00.000099'); INSERT INTO t1 VALUES ('00:01:00.000999'); INSERT INTO t1 VALUES ('00:01:00.009999'); INSERT INTO t1 VALUES ('00:01:00.099999'); INSERT INTO t1 VALUES ('00:01:00.100000'); INSERT INTO t1 VALUES ('00:01:00.900000'); INSERT INTO t1 VALUES ('00:01:00.999999'); INSERT INTO t1 VALUES ('01:00:00.000001'); INSERT INTO t1 VALUES ('01:00:00.000008'); INSERT INTO t1 VALUES ('01:00:00.000015'); INSERT INTO t1 VALUES ('01:00:00.000016'); INSERT INTO t1 VALUES ('01:00:00.000099'); INSERT INTO t1 VALUES ('01:00:00.000999'); INSERT INTO t1 VALUES ('01:00:00.009999'); INSERT INTO t1 VALUES ('01:00:00.099999'); INSERT INTO t1 VALUES ('01:00:00.100000'); INSERT INTO t1 VALUES ('01:00:00.900000'); INSERT INTO t1 VALUES ('01:00:00.990000'); INSERT INTO t1 VALUES ('01:00:00.999000'); INSERT INTO t1 VALUES ('01:00:00.999900'); INSERT INTO t1 VALUES ('01:00:00.999990'); INSERT INTO t1 VALUES ('01:00:00.999999'); INSERT INTO t1 VALUES ('838:59:58.000001'); INSERT INTO t1 VALUES ('838:59:58.000008'); INSERT INTO t1 VALUES ('838:59:58.000015'); INSERT INTO t1 VALUES ('838:59:58.000016'); INSERT INTO t1 VALUES ('838:59:58.000099'); INSERT INTO t1 VALUES ('838:59:58.000999'); INSERT INTO t1 VALUES ('838:59:58.009999'); INSERT INTO t1 VALUES ('838:59:58.099999'); INSERT INTO t1 VALUES ('838:59:58.100000'); INSERT INTO t1 VALUES ('838:59:58.900000'); INSERT INTO t1 VALUES ('838:59:58.990000'); INSERT INTO t1 VALUES ('838:59:58.999000'); INSERT INTO t1 VALUES ('838:59:58.999900'); INSERT INTO t1 VALUES ('838:59:58.999990'); INSERT INTO t1 VALUES ('838:59:58.999999'); INSERT INTO t1 VALUES ('838:59:59.000000'); INSERT INTO t1 SELECT CONCAT('-', a6) FROM t1; ALTER TABLE t1 ADD a0 VARCHAR(32), ADD a1 VARCHAR(32), ADD a2 VARCHAR(32), ADD a3 VARCHAR(32), ADD a4 VARCHAR(32), ADD a5 VARCHAR(32), ADD t0 TIME(0), ADD t1 TIME(1), ADD t2 TIME(2), ADD t3 TIME(3), ADD t4 TIME(4), ADD t5 TIME(5), ADD t6 TIME(6); UPDATE t1 SET a0=LEFT(a6, LENGTH(a6) - 6), a1=LEFT(a6, LENGTH(a6) - 5), a2=LEFT(a6, LENGTH(a6) - 4), a3=LEFT(a6, LENGTH(a6) - 3), a4=LEFT(a6, LENGTH(a6) - 2), a5=LEFT(a6, LENGTH(a6) - 1); UPDATE t1 SET t0=a0, t1=a1, t2=a2, t3=a3, t4=a4, t5=a5, t6= a6; SELECT a6, t6, HEX(WEIGHT_STRING(t6)) FROM t1 ORDER BY t6; a6 t6 HEX(WEIGHT_STRING(t6)) -838:59:59.000000 -838:59:59.000000 4B9105000000 -838:59:58.999999 -838:59:58.999999 4B9105F0BDC1 -838:59:58.999990 -838:59:58.999990 4B9105F0BDCA -838:59:58.999900 -838:59:58.999900 4B9105F0BE24 -838:59:58.999000 -838:59:58.999000 4B9105F0C1A8 -838:59:58.990000 -838:59:58.990000 4B9105F0E4D0 -838:59:58.900000 -838:59:58.900000 4B9105F24460 -838:59:58.100000 -838:59:58.100000 4B9105FE7960 -838:59:58.099999 -838:59:58.099999 4B9105FE7961 -838:59:58.009999 -838:59:58.009999 4B9105FFD8F1 -838:59:58.000999 -838:59:58.000999 4B9105FFFC19 -838:59:58.000099 -838:59:58.000099 4B9105FFFF9D -838:59:58.000016 -838:59:58.000016 4B9105FFFFF0 -838:59:58.000015 -838:59:58.000015 4B9105FFFFF1 -838:59:58.000008 -838:59:58.000008 4B9105FFFFF8 -838:59:58.000001 -838:59:58.000001 4B9105FFFFFF -01:00:00.999999 -01:00:00.999999 7FEFFFF0BDC1 -01:00:00.999990 -01:00:00.999990 7FEFFFF0BDCA -01:00:00.999900 -01:00:00.999900 7FEFFFF0BE24 -01:00:00.999000 -01:00:00.999000 7FEFFFF0C1A8 -01:00:00.990000 -01:00:00.990000 7FEFFFF0E4D0 -01:00:00.900000 -01:00:00.900000 7FEFFFF24460 -01:00:00.100000 -01:00:00.100000 7FEFFFFE7960 -01:00:00.099999 -01:00:00.099999 7FEFFFFE7961 -01:00:00.009999 -01:00:00.009999 7FEFFFFFD8F1 -01:00:00.000999 -01:00:00.000999 7FEFFFFFFC19 -01:00:00.000099 -01:00:00.000099 7FEFFFFFFF9D -01:00:00.000016 -01:00:00.000016 7FEFFFFFFFF0 -01:00:00.000015 -01:00:00.000015 7FEFFFFFFFF1 -01:00:00.000008 -01:00:00.000008 7FEFFFFFFFF8 -01:00:00.000001 -01:00:00.000001 7FEFFFFFFFFF -00:01:00.999999 -00:01:00.999999 7FFFBFF0BDC1 -00:01:00.900000 -00:01:00.900000 7FFFBFF24460 -00:01:00.100000 -00:01:00.100000 7FFFBFFE7960 -00:01:00.099999 -00:01:00.099999 7FFFBFFE7961 -00:01:00.009999 -00:01:00.009999 7FFFBFFFD8F1 -00:01:00.000999 -00:01:00.000999 7FFFBFFFFC19 -00:01:00.000099 -00:01:00.000099 7FFFBFFFFF9D -00:01:00.000016 -00:01:00.000016 7FFFBFFFFFF0 -00:01:00.000015 -00:01:00.000015 7FFFBFFFFFF1 -00:01:00.000008 -00:01:00.000008 7FFFBFFFFFF8 -00:01:00.000001 -00:01:00.000001 7FFFBFFFFFFF -00:00:01.999999 -00:00:01.999999 7FFFFEF0BDC1 -00:00:01.999990 -00:00:01.999990 7FFFFEF0BDCA -00:00:01.999900 -00:00:01.999900 7FFFFEF0BE24 -00:00:01.999000 -00:00:01.999000 7FFFFEF0C1A8 -00:00:01.990000 -00:00:01.990000 7FFFFEF0E4D0 -00:00:01.900000 -00:00:01.900000 7FFFFEF24460 -00:00:01.100000 -00:00:01.100000 7FFFFEFE7960 -00:00:01.099999 -00:00:01.099999 7FFFFEFE7961 -00:00:01.090000 -00:00:01.090000 7FFFFEFEA070 -00:00:01.009999 -00:00:01.009999 7FFFFEFFD8F1 -00:00:01.000999 -00:00:01.000999 7FFFFEFFFC19 -00:00:01.000099 -00:00:01.000099 7FFFFEFFFF9D -00:00:01.000016 -00:00:01.000016 7FFFFEFFFFF0 -00:00:01.000015 -00:00:01.000015 7FFFFEFFFFF1 -00:00:01.000014 -00:00:01.000014 7FFFFEFFFFF2 -00:00:01.000013 -00:00:01.000013 7FFFFEFFFFF3 -00:00:01.000012 -00:00:01.000012 7FFFFEFFFFF4 -00:00:01.000011 -00:00:01.000011 7FFFFEFFFFF5 -00:00:01.000010 -00:00:01.000010 7FFFFEFFFFF6 -00:00:01.000009 -00:00:01.000009 7FFFFEFFFFF7 -00:00:01.000008 -00:00:01.000008 7FFFFEFFFFF8 -00:00:01.000007 -00:00:01.000007 7FFFFEFFFFF9 -00:00:01.000006 -00:00:01.000006 7FFFFEFFFFFA -00:00:01.000005 -00:00:01.000005 7FFFFEFFFFFB -00:00:01.000004 -00:00:01.000004 7FFFFEFFFFFC -00:00:01.000003 -00:00:01.000003 7FFFFEFFFFFD -00:00:01.000002 -00:00:01.000002 7FFFFEFFFFFE -00:00:01.000001 -00:00:01.000001 7FFFFEFFFFFF -00:00:01.000000 -00:00:01.000000 7FFFFF000000 -00:00:00.999999 -00:00:00.999999 7FFFFFF0BDC1 -00:00:00.999990 -00:00:00.999990 7FFFFFF0BDCA -00:00:00.999900 -00:00:00.999900 7FFFFFF0BE24 -00:00:00.999000 -00:00:00.999000 7FFFFFF0C1A8 -00:00:00.990000 -00:00:00.990000 7FFFFFF0E4D0 -00:00:00.900000 -00:00:00.900000 7FFFFFF24460 -00:00:00.100000 -00:00:00.100000 7FFFFFFE7960 -00:00:00.099999 -00:00:00.099999 7FFFFFFE7961 -00:00:00.009999 -00:00:00.009999 7FFFFFFFD8F1 -00:00:00.000999 -00:00:00.000999 7FFFFFFFFC19 -00:00:00.000099 -00:00:00.000099 7FFFFFFFFF9D -00:00:00.000016 -00:00:00.000016 7FFFFFFFFFF0 -00:00:00.000015 -00:00:00.000015 7FFFFFFFFFF1 -00:00:00.000014 -00:00:00.000014 7FFFFFFFFFF2 -00:00:00.000013 -00:00:00.000013 7FFFFFFFFFF3 -00:00:00.000012 -00:00:00.000012 7FFFFFFFFFF4 -00:00:00.000011 -00:00:00.000011 7FFFFFFFFFF5 -00:00:00.000010 -00:00:00.000010 7FFFFFFFFFF6 -00:00:00.000009 -00:00:00.000009 7FFFFFFFFFF7 -00:00:00.000008 -00:00:00.000008 7FFFFFFFFFF8 -00:00:00.000007 -00:00:00.000007 7FFFFFFFFFF9 -00:00:00.000006 -00:00:00.000006 7FFFFFFFFFFA -00:00:00.000005 -00:00:00.000005 7FFFFFFFFFFB -00:00:00.000004 -00:00:00.000004 7FFFFFFFFFFC -00:00:00.000003 -00:00:00.000003 7FFFFFFFFFFD -00:00:00.000002 -00:00:00.000002 7FFFFFFFFFFE -00:00:00.000001 -00:00:00.000001 7FFFFFFFFFFF 00:00:00.000000 00:00:00.000000 800000000000 -00:00:00.000000 00:00:00.000000 800000000000 00:00:00.000001 00:00:00.000001 800000000001 00:00:00.000002 00:00:00.000002 800000000002 00:00:00.000003 00:00:00.000003 800000000003 00:00:00.000004 00:00:00.000004 800000000004 00:00:00.000005 00:00:00.000005 800000000005 00:00:00.000006 00:00:00.000006 800000000006 00:00:00.000007 00:00:00.000007 800000000007 00:00:00.000008 00:00:00.000008 800000000008 00:00:00.000009 00:00:00.000009 800000000009 00:00:00.000010 00:00:00.000010 80000000000A 00:00:00.000011 00:00:00.000011 80000000000B 00:00:00.000012 00:00:00.000012 80000000000C 00:00:00.000013 00:00:00.000013 80000000000D 00:00:00.000014 00:00:00.000014 80000000000E 00:00:00.000015 00:00:00.000015 80000000000F 00:00:00.000016 00:00:00.000016 800000000010 00:00:00.000099 00:00:00.000099 800000000063 00:00:00.000999 00:00:00.000999 8000000003E7 00:00:00.009999 00:00:00.009999 80000000270F 00:00:00.099999 00:00:00.099999 80000001869F 00:00:00.100000 00:00:00.100000 8000000186A0 00:00:00.900000 00:00:00.900000 8000000DBBA0 00:00:00.990000 00:00:00.990000 8000000F1B30 00:00:00.999000 00:00:00.999000 8000000F3E58 00:00:00.999900 00:00:00.999900 8000000F41DC 00:00:00.999990 00:00:00.999990 8000000F4236 00:00:00.999999 00:00:00.999999 8000000F423F 00:00:01.000000 00:00:01.000000 800001000000 00:00:01.000001 00:00:01.000001 800001000001 00:00:01.000002 00:00:01.000002 800001000002 00:00:01.000003 00:00:01.000003 800001000003 00:00:01.000004 00:00:01.000004 800001000004 00:00:01.000005 00:00:01.000005 800001000005 00:00:01.000006 00:00:01.000006 800001000006 00:00:01.000007 00:00:01.000007 800001000007 00:00:01.000008 00:00:01.000008 800001000008 00:00:01.000009 00:00:01.000009 800001000009 00:00:01.000010 00:00:01.000010 80000100000A 00:00:01.000011 00:00:01.000011 80000100000B 00:00:01.000012 00:00:01.000012 80000100000C 00:00:01.000013 00:00:01.000013 80000100000D 00:00:01.000014 00:00:01.000014 80000100000E 00:00:01.000015 00:00:01.000015 80000100000F 00:00:01.000016 00:00:01.000016 800001000010 00:00:01.000099 00:00:01.000099 800001000063 00:00:01.000999 00:00:01.000999 8000010003E7 00:00:01.009999 00:00:01.009999 80000100270F 00:00:01.090000 00:00:01.090000 800001015F90 00:00:01.099999 00:00:01.099999 80000101869F 00:00:01.100000 00:00:01.100000 8000010186A0 00:00:01.900000 00:00:01.900000 8000010DBBA0 00:00:01.990000 00:00:01.990000 8000010F1B30 00:00:01.999000 00:00:01.999000 8000010F3E58 00:00:01.999900 00:00:01.999900 8000010F41DC 00:00:01.999990 00:00:01.999990 8000010F4236 00:00:01.999999 00:00:01.999999 8000010F423F 00:01:00.000001 00:01:00.000001 800040000001 00:01:00.000008 00:01:00.000008 800040000008 00:01:00.000015 00:01:00.000015 80004000000F 00:01:00.000016 00:01:00.000016 800040000010 00:01:00.000099 00:01:00.000099 800040000063 00:01:00.000999 00:01:00.000999 8000400003E7 00:01:00.009999 00:01:00.009999 80004000270F 00:01:00.099999 00:01:00.099999 80004001869F 00:01:00.100000 00:01:00.100000 8000400186A0 00:01:00.900000 00:01:00.900000 8000400DBBA0 00:01:00.999999 00:01:00.999999 8000400F423F 01:00:00.000001 01:00:00.000001 801000000001 01:00:00.000008 01:00:00.000008 801000000008 01:00:00.000015 01:00:00.000015 80100000000F 01:00:00.000016 01:00:00.000016 801000000010 01:00:00.000099 01:00:00.000099 801000000063 01:00:00.000999 01:00:00.000999 8010000003E7 01:00:00.009999 01:00:00.009999 80100000270F 01:00:00.099999 01:00:00.099999 80100001869F 01:00:00.100000 01:00:00.100000 8010000186A0 01:00:00.900000 01:00:00.900000 8010000DBBA0 01:00:00.990000 01:00:00.990000 8010000F1B30 01:00:00.999000 01:00:00.999000 8010000F3E58 01:00:00.999900 01:00:00.999900 8010000F41DC 01:00:00.999990 01:00:00.999990 8010000F4236 01:00:00.999999 01:00:00.999999 8010000F423F 838:59:58.000001 838:59:58.000001 B46EFA000001 838:59:58.000008 838:59:58.000008 B46EFA000008 838:59:58.000015 838:59:58.000015 B46EFA00000F 838:59:58.000016 838:59:58.000016 B46EFA000010 838:59:58.000099 838:59:58.000099 B46EFA000063 838:59:58.000999 838:59:58.000999 B46EFA0003E7 838:59:58.009999 838:59:58.009999 B46EFA00270F 838:59:58.099999 838:59:58.099999 B46EFA01869F 838:59:58.100000 838:59:58.100000 B46EFA0186A0 838:59:58.900000 838:59:58.900000 B46EFA0DBBA0 838:59:58.990000 838:59:58.990000 B46EFA0F1B30 838:59:58.999000 838:59:58.999000 B46EFA0F3E58 838:59:58.999900 838:59:58.999900 B46EFA0F41DC 838:59:58.999990 838:59:58.999990 B46EFA0F4236 838:59:58.999999 838:59:58.999999 B46EFA0F423F 838:59:59.000000 838:59:59.000000 B46EFB000000 SELECT a5, t5, HEX(WEIGHT_STRING(t5)) FROM t1 ORDER BY t5, a6; a5 t5 HEX(WEIGHT_STRING(t5)) -838:59:59.00000 -838:59:59.00000 4B9105000000 -838:59:58.99999 -838:59:58.99999 4B9105F0BDCA -838:59:58.99999 -838:59:58.99999 4B9105F0BDCA -838:59:58.99990 -838:59:58.99990 4B9105F0BE24 -838:59:58.99900 -838:59:58.99900 4B9105F0C1A8 -838:59:58.99000 -838:59:58.99000 4B9105F0E4D0 -838:59:58.90000 -838:59:58.90000 4B9105F24460 -838:59:58.10000 -838:59:58.10000 4B9105FE7960 -838:59:58.09999 -838:59:58.09999 4B9105FE796A -838:59:58.00999 -838:59:58.00999 4B9105FFD8FA -838:59:58.00099 -838:59:58.00099 4B9105FFFC22 -838:59:58.00009 -838:59:58.00009 4B9105FFFFA6 -838:59:58.00001 -838:59:58.00001 4B9105FFFFF6 -838:59:58.00001 -838:59:58.00001 4B9105FFFFF6 -838:59:58.00000 -838:59:58.00000 4B9106000000 -838:59:58.00000 -838:59:58.00000 4B9106000000 -01:00:00.99999 -01:00:00.99999 7FEFFFF0BDCA -01:00:00.99999 -01:00:00.99999 7FEFFFF0BDCA -01:00:00.99990 -01:00:00.99990 7FEFFFF0BE24 -01:00:00.99900 -01:00:00.99900 7FEFFFF0C1A8 -01:00:00.99000 -01:00:00.99000 7FEFFFF0E4D0 -01:00:00.90000 -01:00:00.90000 7FEFFFF24460 -01:00:00.10000 -01:00:00.10000 7FEFFFFE7960 -01:00:00.09999 -01:00:00.09999 7FEFFFFE796A -01:00:00.00999 -01:00:00.00999 7FEFFFFFD8FA -01:00:00.00099 -01:00:00.00099 7FEFFFFFFC22 -01:00:00.00009 -01:00:00.00009 7FEFFFFFFFA6 -01:00:00.00001 -01:00:00.00001 7FEFFFFFFFF6 -01:00:00.00001 -01:00:00.00001 7FEFFFFFFFF6 -01:00:00.00000 -01:00:00.00000 7FF000000000 -01:00:00.00000 -01:00:00.00000 7FF000000000 -00:01:00.99999 -00:01:00.99999 7FFFBFF0BDCA -00:01:00.90000 -00:01:00.90000 7FFFBFF24460 -00:01:00.10000 -00:01:00.10000 7FFFBFFE7960 -00:01:00.09999 -00:01:00.09999 7FFFBFFE796A -00:01:00.00999 -00:01:00.00999 7FFFBFFFD8FA -00:01:00.00099 -00:01:00.00099 7FFFBFFFFC22 -00:01:00.00009 -00:01:00.00009 7FFFBFFFFFA6 -00:01:00.00001 -00:01:00.00001 7FFFBFFFFFF6 -00:01:00.00001 -00:01:00.00001 7FFFBFFFFFF6 -00:01:00.00000 -00:01:00.00000 7FFFC0000000 -00:01:00.00000 -00:01:00.00000 7FFFC0000000 -00:00:01.99999 -00:00:01.99999 7FFFFEF0BDCA -00:00:01.99999 -00:00:01.99999 7FFFFEF0BDCA -00:00:01.99990 -00:00:01.99990 7FFFFEF0BE24 -00:00:01.99900 -00:00:01.99900 7FFFFEF0C1A8 -00:00:01.99000 -00:00:01.99000 7FFFFEF0E4D0 -00:00:01.90000 -00:00:01.90000 7FFFFEF24460 -00:00:01.10000 -00:00:01.10000 7FFFFEFE7960 -00:00:01.09999 -00:00:01.09999 7FFFFEFE796A -00:00:01.09000 -00:00:01.09000 7FFFFEFEA070 -00:00:01.00999 -00:00:01.00999 7FFFFEFFD8FA -00:00:01.00099 -00:00:01.00099 7FFFFEFFFC22 -00:00:01.00009 -00:00:01.00009 7FFFFEFFFFA6 -00:00:01.00001 -00:00:01.00001 7FFFFEFFFFF6 -00:00:01.00001 -00:00:01.00001 7FFFFEFFFFF6 -00:00:01.00001 -00:00:01.00001 7FFFFEFFFFF6 -00:00:01.00001 -00:00:01.00001 7FFFFEFFFFF6 -00:00:01.00001 -00:00:01.00001 7FFFFEFFFFF6 -00:00:01.00001 -00:00:01.00001 7FFFFEFFFFF6 -00:00:01.00001 -00:00:01.00001 7FFFFEFFFFF6 -00:00:01.00000 -00:00:01.00000 7FFFFF000000 -00:00:01.00000 -00:00:01.00000 7FFFFF000000 -00:00:01.00000 -00:00:01.00000 7FFFFF000000 -00:00:01.00000 -00:00:01.00000 7FFFFF000000 -00:00:01.00000 -00:00:01.00000 7FFFFF000000 -00:00:01.00000 -00:00:01.00000 7FFFFF000000 -00:00:01.00000 -00:00:01.00000 7FFFFF000000 -00:00:01.00000 -00:00:01.00000 7FFFFF000000 -00:00:01.00000 -00:00:01.00000 7FFFFF000000 -00:00:01.00000 -00:00:01.00000 7FFFFF000000 -00:00:00.99999 -00:00:00.99999 7FFFFFF0BDCA -00:00:00.99999 -00:00:00.99999 7FFFFFF0BDCA -00:00:00.99990 -00:00:00.99990 7FFFFFF0BE24 -00:00:00.99900 -00:00:00.99900 7FFFFFF0C1A8 -00:00:00.99000 -00:00:00.99000 7FFFFFF0E4D0 -00:00:00.90000 -00:00:00.90000 7FFFFFF24460 -00:00:00.10000 -00:00:00.10000 7FFFFFFE7960 -00:00:00.09999 -00:00:00.09999 7FFFFFFE796A -00:00:00.00999 -00:00:00.00999 7FFFFFFFD8FA -00:00:00.00099 -00:00:00.00099 7FFFFFFFFC22 -00:00:00.00009 -00:00:00.00009 7FFFFFFFFFA6 -00:00:00.00001 -00:00:00.00001 7FFFFFFFFFF6 -00:00:00.00001 -00:00:00.00001 7FFFFFFFFFF6 -00:00:00.00001 -00:00:00.00001 7FFFFFFFFFF6 -00:00:00.00001 -00:00:00.00001 7FFFFFFFFFF6 -00:00:00.00001 -00:00:00.00001 7FFFFFFFFFF6 -00:00:00.00001 -00:00:00.00001 7FFFFFFFFFF6 -00:00:00.00001 -00:00:00.00001 7FFFFFFFFFF6 -00:00:00.00000 00:00:00.00000 800000000000 -00:00:00.00000 00:00:00.00000 800000000000 -00:00:00.00000 00:00:00.00000 800000000000 -00:00:00.00000 00:00:00.00000 800000000000 -00:00:00.00000 00:00:00.00000 800000000000 -00:00:00.00000 00:00:00.00000 800000000000 -00:00:00.00000 00:00:00.00000 800000000000 -00:00:00.00000 00:00:00.00000 800000000000 -00:00:00.00000 00:00:00.00000 800000000000 -00:00:00.00000 00:00:00.00000 800000000000 00:00:00.00000 00:00:00.00000 800000000000 00:00:00.00000 00:00:00.00000 800000000000 00:00:00.00000 00:00:00.00000 800000000000 00:00:00.00000 00:00:00.00000 800000000000 00:00:00.00000 00:00:00.00000 800000000000 00:00:00.00000 00:00:00.00000 800000000000 00:00:00.00000 00:00:00.00000 800000000000 00:00:00.00000 00:00:00.00000 800000000000 00:00:00.00000 00:00:00.00000 800000000000 00:00:00.00000 00:00:00.00000 800000000000 00:00:00.00001 00:00:00.00001 80000000000A 00:00:00.00001 00:00:00.00001 80000000000A 00:00:00.00001 00:00:00.00001 80000000000A 00:00:00.00001 00:00:00.00001 80000000000A 00:00:00.00001 00:00:00.00001 80000000000A 00:00:00.00001 00:00:00.00001 80000000000A 00:00:00.00001 00:00:00.00001 80000000000A 00:00:00.00009 00:00:00.00009 80000000005A 00:00:00.00099 00:00:00.00099 8000000003DE 00:00:00.00999 00:00:00.00999 800000002706 00:00:00.09999 00:00:00.09999 800000018696 00:00:00.10000 00:00:00.10000 8000000186A0 00:00:00.90000 00:00:00.90000 8000000DBBA0 00:00:00.99000 00:00:00.99000 8000000F1B30 00:00:00.99900 00:00:00.99900 8000000F3E58 00:00:00.99990 00:00:00.99990 8000000F41DC 00:00:00.99999 00:00:00.99999 8000000F4236 00:00:00.99999 00:00:00.99999 8000000F4236 00:00:01.00000 00:00:01.00000 800001000000 00:00:01.00000 00:00:01.00000 800001000000 00:00:01.00000 00:00:01.00000 800001000000 00:00:01.00000 00:00:01.00000 800001000000 00:00:01.00000 00:00:01.00000 800001000000 00:00:01.00000 00:00:01.00000 800001000000 00:00:01.00000 00:00:01.00000 800001000000 00:00:01.00000 00:00:01.00000 800001000000 00:00:01.00000 00:00:01.00000 800001000000 00:00:01.00000 00:00:01.00000 800001000000 00:00:01.00001 00:00:01.00001 80000100000A 00:00:01.00001 00:00:01.00001 80000100000A 00:00:01.00001 00:00:01.00001 80000100000A 00:00:01.00001 00:00:01.00001 80000100000A 00:00:01.00001 00:00:01.00001 80000100000A 00:00:01.00001 00:00:01.00001 80000100000A 00:00:01.00001 00:00:01.00001 80000100000A 00:00:01.00009 00:00:01.00009 80000100005A 00:00:01.00099 00:00:01.00099 8000010003DE 00:00:01.00999 00:00:01.00999 800001002706 00:00:01.09000 00:00:01.09000 800001015F90 00:00:01.09999 00:00:01.09999 800001018696 00:00:01.10000 00:00:01.10000 8000010186A0 00:00:01.90000 00:00:01.90000 8000010DBBA0 00:00:01.99000 00:00:01.99000 8000010F1B30 00:00:01.99900 00:00:01.99900 8000010F3E58 00:00:01.99990 00:00:01.99990 8000010F41DC 00:00:01.99999 00:00:01.99999 8000010F4236 00:00:01.99999 00:00:01.99999 8000010F4236 00:01:00.00000 00:01:00.00000 800040000000 00:01:00.00000 00:01:00.00000 800040000000 00:01:00.00001 00:01:00.00001 80004000000A 00:01:00.00001 00:01:00.00001 80004000000A 00:01:00.00009 00:01:00.00009 80004000005A 00:01:00.00099 00:01:00.00099 8000400003DE 00:01:00.00999 00:01:00.00999 800040002706 00:01:00.09999 00:01:00.09999 800040018696 00:01:00.10000 00:01:00.10000 8000400186A0 00:01:00.90000 00:01:00.90000 8000400DBBA0 00:01:00.99999 00:01:00.99999 8000400F4236 01:00:00.00000 01:00:00.00000 801000000000 01:00:00.00000 01:00:00.00000 801000000000 01:00:00.00001 01:00:00.00001 80100000000A 01:00:00.00001 01:00:00.00001 80100000000A 01:00:00.00009 01:00:00.00009 80100000005A 01:00:00.00099 01:00:00.00099 8010000003DE 01:00:00.00999 01:00:00.00999 801000002706 01:00:00.09999 01:00:00.09999 801000018696 01:00:00.10000 01:00:00.10000 8010000186A0 01:00:00.90000 01:00:00.90000 8010000DBBA0 01:00:00.99000 01:00:00.99000 8010000F1B30 01:00:00.99900 01:00:00.99900 8010000F3E58 01:00:00.99990 01:00:00.99990 8010000F41DC 01:00:00.99999 01:00:00.99999 8010000F4236 01:00:00.99999 01:00:00.99999 8010000F4236 838:59:58.00000 838:59:58.00000 B46EFA000000 838:59:58.00000 838:59:58.00000 B46EFA000000 838:59:58.00001 838:59:58.00001 B46EFA00000A 838:59:58.00001 838:59:58.00001 B46EFA00000A 838:59:58.00009 838:59:58.00009 B46EFA00005A 838:59:58.00099 838:59:58.00099 B46EFA0003DE 838:59:58.00999 838:59:58.00999 B46EFA002706 838:59:58.09999 838:59:58.09999 B46EFA018696 838:59:58.10000 838:59:58.10000 B46EFA0186A0 838:59:58.90000 838:59:58.90000 B46EFA0DBBA0 838:59:58.99000 838:59:58.99000 B46EFA0F1B30 838:59:58.99900 838:59:58.99900 B46EFA0F3E58 838:59:58.99990 838:59:58.99990 B46EFA0F41DC 838:59:58.99999 838:59:58.99999 B46EFA0F4236 838:59:58.99999 838:59:58.99999 B46EFA0F4236 838:59:59.00000 838:59:59.00000 B46EFB000000 SELECT a4, t4, HEX(WEIGHT_STRING(t4)) FROM t1 ORDER BY t4, a6; a4 t4 HEX(WEIGHT_STRING(t4)) -838:59:59.0000 -838:59:59.0000 4B91050000 -838:59:58.9999 -838:59:58.9999 4B9105D8F1 -838:59:58.9999 -838:59:58.9999 4B9105D8F1 -838:59:58.9999 -838:59:58.9999 4B9105D8F1 -838:59:58.9990 -838:59:58.9990 4B9105D8FA -838:59:58.9900 -838:59:58.9900 4B9105D954 -838:59:58.9000 -838:59:58.9000 4B9105DCD8 -838:59:58.1000 -838:59:58.1000 4B9105FC18 -838:59:58.0999 -838:59:58.0999 4B9105FC19 -838:59:58.0099 -838:59:58.0099 4B9105FF9D -838:59:58.0009 -838:59:58.0009 4B9105FFF7 -838:59:58.0000 -838:59:58.0000 4B91060000 -838:59:58.0000 -838:59:58.0000 4B91060000 -838:59:58.0000 -838:59:58.0000 4B91060000 -838:59:58.0000 -838:59:58.0000 4B91060000 -838:59:58.0000 -838:59:58.0000 4B91060000 -01:00:00.9999 -01:00:00.9999 7FEFFFD8F1 -01:00:00.9999 -01:00:00.9999 7FEFFFD8F1 -01:00:00.9999 -01:00:00.9999 7FEFFFD8F1 -01:00:00.9990 -01:00:00.9990 7FEFFFD8FA -01:00:00.9900 -01:00:00.9900 7FEFFFD954 -01:00:00.9000 -01:00:00.9000 7FEFFFDCD8 -01:00:00.1000 -01:00:00.1000 7FEFFFFC18 -01:00:00.0999 -01:00:00.0999 7FEFFFFC19 -01:00:00.0099 -01:00:00.0099 7FEFFFFF9D -01:00:00.0009 -01:00:00.0009 7FEFFFFFF7 -01:00:00.0000 -01:00:00.0000 7FF0000000 -01:00:00.0000 -01:00:00.0000 7FF0000000 -01:00:00.0000 -01:00:00.0000 7FF0000000 -01:00:00.0000 -01:00:00.0000 7FF0000000 -01:00:00.0000 -01:00:00.0000 7FF0000000 -00:01:00.9999 -00:01:00.9999 7FFFBFD8F1 -00:01:00.9000 -00:01:00.9000 7FFFBFDCD8 -00:01:00.1000 -00:01:00.1000 7FFFBFFC18 -00:01:00.0999 -00:01:00.0999 7FFFBFFC19 -00:01:00.0099 -00:01:00.0099 7FFFBFFF9D -00:01:00.0009 -00:01:00.0009 7FFFBFFFF7 -00:01:00.0000 -00:01:00.0000 7FFFC00000 -00:01:00.0000 -00:01:00.0000 7FFFC00000 -00:01:00.0000 -00:01:00.0000 7FFFC00000 -00:01:00.0000 -00:01:00.0000 7FFFC00000 -00:01:00.0000 -00:01:00.0000 7FFFC00000 -00:00:01.9999 -00:00:01.9999 7FFFFED8F1 -00:00:01.9999 -00:00:01.9999 7FFFFED8F1 -00:00:01.9999 -00:00:01.9999 7FFFFED8F1 -00:00:01.9990 -00:00:01.9990 7FFFFED8FA -00:00:01.9900 -00:00:01.9900 7FFFFED954 -00:00:01.9000 -00:00:01.9000 7FFFFEDCD8 -00:00:01.1000 -00:00:01.1000 7FFFFEFC18 -00:00:01.0999 -00:00:01.0999 7FFFFEFC19 -00:00:01.0900 -00:00:01.0900 7FFFFEFC7C -00:00:01.0099 -00:00:01.0099 7FFFFEFF9D -00:00:01.0009 -00:00:01.0009 7FFFFEFFF7 -00:00:01.0000 -00:00:01.0000 7FFFFF0000 -00:00:01.0000 -00:00:01.0000 7FFFFF0000 -00:00:01.0000 -00:00:01.0000 7FFFFF0000 -00:00:01.0000 -00:00:01.0000 7FFFFF0000 -00:00:01.0000 -00:00:01.0000 7FFFFF0000 -00:00:01.0000 -00:00:01.0000 7FFFFF0000 -00:00:01.0000 -00:00:01.0000 7FFFFF0000 -00:00:01.0000 -00:00:01.0000 7FFFFF0000 -00:00:01.0000 -00:00:01.0000 7FFFFF0000 -00:00:01.0000 -00:00:01.0000 7FFFFF0000 -00:00:01.0000 -00:00:01.0000 7FFFFF0000 -00:00:01.0000 -00:00:01.0000 7FFFFF0000 -00:00:01.0000 -00:00:01.0000 7FFFFF0000 -00:00:01.0000 -00:00:01.0000 7FFFFF0000 -00:00:01.0000 -00:00:01.0000 7FFFFF0000 -00:00:01.0000 -00:00:01.0000 7FFFFF0000 -00:00:01.0000 -00:00:01.0000 7FFFFF0000 -00:00:01.0000 -00:00:01.0000 7FFFFF0000 -00:00:00.9999 -00:00:00.9999 7FFFFFD8F1 -00:00:00.9999 -00:00:00.9999 7FFFFFD8F1 -00:00:00.9999 -00:00:00.9999 7FFFFFD8F1 -00:00:00.9990 -00:00:00.9990 7FFFFFD8FA -00:00:00.9900 -00:00:00.9900 7FFFFFD954 -00:00:00.9000 -00:00:00.9000 7FFFFFDCD8 -00:00:00.1000 -00:00:00.1000 7FFFFFFC18 -00:00:00.0999 -00:00:00.0999 7FFFFFFC19 -00:00:00.0099 -00:00:00.0099 7FFFFFFF9D -00:00:00.0009 -00:00:00.0009 7FFFFFFFF7 -00:00:00.0000 00:00:00.0000 8000000000 -00:00:00.0000 00:00:00.0000 8000000000 -00:00:00.0000 00:00:00.0000 8000000000 -00:00:00.0000 00:00:00.0000 8000000000 -00:00:00.0000 00:00:00.0000 8000000000 -00:00:00.0000 00:00:00.0000 8000000000 -00:00:00.0000 00:00:00.0000 8000000000 -00:00:00.0000 00:00:00.0000 8000000000 -00:00:00.0000 00:00:00.0000 8000000000 -00:00:00.0000 00:00:00.0000 8000000000 -00:00:00.0000 00:00:00.0000 8000000000 -00:00:00.0000 00:00:00.0000 8000000000 -00:00:00.0000 00:00:00.0000 8000000000 -00:00:00.0000 00:00:00.0000 8000000000 -00:00:00.0000 00:00:00.0000 8000000000 -00:00:00.0000 00:00:00.0000 8000000000 -00:00:00.0000 00:00:00.0000 8000000000 -00:00:00.0000 00:00:00.0000 8000000000 00:00:00.0000 00:00:00.0000 8000000000 00:00:00.0000 00:00:00.0000 8000000000 00:00:00.0000 00:00:00.0000 8000000000 00:00:00.0000 00:00:00.0000 8000000000 00:00:00.0000 00:00:00.0000 8000000000 00:00:00.0000 00:00:00.0000 8000000000 00:00:00.0000 00:00:00.0000 8000000000 00:00:00.0000 00:00:00.0000 8000000000 00:00:00.0000 00:00:00.0000 8000000000 00:00:00.0000 00:00:00.0000 8000000000 00:00:00.0000 00:00:00.0000 8000000000 00:00:00.0000 00:00:00.0000 8000000000 00:00:00.0000 00:00:00.0000 8000000000 00:00:00.0000 00:00:00.0000 8000000000 00:00:00.0000 00:00:00.0000 8000000000 00:00:00.0000 00:00:00.0000 8000000000 00:00:00.0000 00:00:00.0000 8000000000 00:00:00.0000 00:00:00.0000 8000000000 00:00:00.0009 00:00:00.0009 8000000009 00:00:00.0099 00:00:00.0099 8000000063 00:00:00.0999 00:00:00.0999 80000003E7 00:00:00.1000 00:00:00.1000 80000003E8 00:00:00.9000 00:00:00.9000 8000002328 00:00:00.9900 00:00:00.9900 80000026AC 00:00:00.9990 00:00:00.9990 8000002706 00:00:00.9999 00:00:00.9999 800000270F 00:00:00.9999 00:00:00.9999 800000270F 00:00:00.9999 00:00:00.9999 800000270F 00:00:01.0000 00:00:01.0000 8000010000 00:00:01.0000 00:00:01.0000 8000010000 00:00:01.0000 00:00:01.0000 8000010000 00:00:01.0000 00:00:01.0000 8000010000 00:00:01.0000 00:00:01.0000 8000010000 00:00:01.0000 00:00:01.0000 8000010000 00:00:01.0000 00:00:01.0000 8000010000 00:00:01.0000 00:00:01.0000 8000010000 00:00:01.0000 00:00:01.0000 8000010000 00:00:01.0000 00:00:01.0000 8000010000 00:00:01.0000 00:00:01.0000 8000010000 00:00:01.0000 00:00:01.0000 8000010000 00:00:01.0000 00:00:01.0000 8000010000 00:00:01.0000 00:00:01.0000 8000010000 00:00:01.0000 00:00:01.0000 8000010000 00:00:01.0000 00:00:01.0000 8000010000 00:00:01.0000 00:00:01.0000 8000010000 00:00:01.0000 00:00:01.0000 8000010000 00:00:01.0009 00:00:01.0009 8000010009 00:00:01.0099 00:00:01.0099 8000010063 00:00:01.0900 00:00:01.0900 8000010384 00:00:01.0999 00:00:01.0999 80000103E7 00:00:01.1000 00:00:01.1000 80000103E8 00:00:01.9000 00:00:01.9000 8000012328 00:00:01.9900 00:00:01.9900 80000126AC 00:00:01.9990 00:00:01.9990 8000012706 00:00:01.9999 00:00:01.9999 800001270F 00:00:01.9999 00:00:01.9999 800001270F 00:00:01.9999 00:00:01.9999 800001270F 00:01:00.0000 00:01:00.0000 8000400000 00:01:00.0000 00:01:00.0000 8000400000 00:01:00.0000 00:01:00.0000 8000400000 00:01:00.0000 00:01:00.0000 8000400000 00:01:00.0000 00:01:00.0000 8000400000 00:01:00.0009 00:01:00.0009 8000400009 00:01:00.0099 00:01:00.0099 8000400063 00:01:00.0999 00:01:00.0999 80004003E7 00:01:00.1000 00:01:00.1000 80004003E8 00:01:00.9000 00:01:00.9000 8000402328 00:01:00.9999 00:01:00.9999 800040270F 01:00:00.0000 01:00:00.0000 8010000000 01:00:00.0000 01:00:00.0000 8010000000 01:00:00.0000 01:00:00.0000 8010000000 01:00:00.0000 01:00:00.0000 8010000000 01:00:00.0000 01:00:00.0000 8010000000 01:00:00.0009 01:00:00.0009 8010000009 01:00:00.0099 01:00:00.0099 8010000063 01:00:00.0999 01:00:00.0999 80100003E7 01:00:00.1000 01:00:00.1000 80100003E8 01:00:00.9000 01:00:00.9000 8010002328 01:00:00.9900 01:00:00.9900 80100026AC 01:00:00.9990 01:00:00.9990 8010002706 01:00:00.9999 01:00:00.9999 801000270F 01:00:00.9999 01:00:00.9999 801000270F 01:00:00.9999 01:00:00.9999 801000270F 838:59:58.0000 838:59:58.0000 B46EFA0000 838:59:58.0000 838:59:58.0000 B46EFA0000 838:59:58.0000 838:59:58.0000 B46EFA0000 838:59:58.0000 838:59:58.0000 B46EFA0000 838:59:58.0000 838:59:58.0000 B46EFA0000 838:59:58.0009 838:59:58.0009 B46EFA0009 838:59:58.0099 838:59:58.0099 B46EFA0063 838:59:58.0999 838:59:58.0999 B46EFA03E7 838:59:58.1000 838:59:58.1000 B46EFA03E8 838:59:58.9000 838:59:58.9000 B46EFA2328 838:59:58.9900 838:59:58.9900 B46EFA26AC 838:59:58.9990 838:59:58.9990 B46EFA2706 838:59:58.9999 838:59:58.9999 B46EFA270F 838:59:58.9999 838:59:58.9999 B46EFA270F 838:59:58.9999 838:59:58.9999 B46EFA270F 838:59:59.0000 838:59:59.0000 B46EFB0000 SELECT a3, t3, HEX(WEIGHT_STRING(t3)) FROM t1 ORDER BY t3, a6; a3 t3 HEX(WEIGHT_STRING(t3)) -838:59:59.000 -838:59:59.000 4B91050000 -838:59:58.999 -838:59:58.999 4B9105D8FA -838:59:58.999 -838:59:58.999 4B9105D8FA -838:59:58.999 -838:59:58.999 4B9105D8FA -838:59:58.999 -838:59:58.999 4B9105D8FA -838:59:58.990 -838:59:58.990 4B9105D954 -838:59:58.900 -838:59:58.900 4B9105DCD8 -838:59:58.100 -838:59:58.100 4B9105FC18 -838:59:58.099 -838:59:58.099 4B9105FC22 -838:59:58.009 -838:59:58.009 4B9105FFA6 -838:59:58.000 -838:59:58.000 4B91060000 -838:59:58.000 -838:59:58.000 4B91060000 -838:59:58.000 -838:59:58.000 4B91060000 -838:59:58.000 -838:59:58.000 4B91060000 -838:59:58.000 -838:59:58.000 4B91060000 -838:59:58.000 -838:59:58.000 4B91060000 -01:00:00.999 -01:00:00.999 7FEFFFD8FA -01:00:00.999 -01:00:00.999 7FEFFFD8FA -01:00:00.999 -01:00:00.999 7FEFFFD8FA -01:00:00.999 -01:00:00.999 7FEFFFD8FA -01:00:00.990 -01:00:00.990 7FEFFFD954 -01:00:00.900 -01:00:00.900 7FEFFFDCD8 -01:00:00.100 -01:00:00.100 7FEFFFFC18 -01:00:00.099 -01:00:00.099 7FEFFFFC22 -01:00:00.009 -01:00:00.009 7FEFFFFFA6 -01:00:00.000 -01:00:00.000 7FF0000000 -01:00:00.000 -01:00:00.000 7FF0000000 -01:00:00.000 -01:00:00.000 7FF0000000 -01:00:00.000 -01:00:00.000 7FF0000000 -01:00:00.000 -01:00:00.000 7FF0000000 -01:00:00.000 -01:00:00.000 7FF0000000 -00:01:00.999 -00:01:00.999 7FFFBFD8FA -00:01:00.900 -00:01:00.900 7FFFBFDCD8 -00:01:00.100 -00:01:00.100 7FFFBFFC18 -00:01:00.099 -00:01:00.099 7FFFBFFC22 -00:01:00.009 -00:01:00.009 7FFFBFFFA6 -00:01:00.000 -00:01:00.000 7FFFC00000 -00:01:00.000 -00:01:00.000 7FFFC00000 -00:01:00.000 -00:01:00.000 7FFFC00000 -00:01:00.000 -00:01:00.000 7FFFC00000 -00:01:00.000 -00:01:00.000 7FFFC00000 -00:01:00.000 -00:01:00.000 7FFFC00000 -00:00:01.999 -00:00:01.999 7FFFFED8FA -00:00:01.999 -00:00:01.999 7FFFFED8FA -00:00:01.999 -00:00:01.999 7FFFFED8FA -00:00:01.999 -00:00:01.999 7FFFFED8FA -00:00:01.990 -00:00:01.990 7FFFFED954 -00:00:01.900 -00:00:01.900 7FFFFEDCD8 -00:00:01.100 -00:00:01.100 7FFFFEFC18 -00:00:01.099 -00:00:01.099 7FFFFEFC22 -00:00:01.090 -00:00:01.090 7FFFFEFC7C -00:00:01.009 -00:00:01.009 7FFFFEFFA6 -00:00:01.000 -00:00:01.000 7FFFFF0000 -00:00:01.000 -00:00:01.000 7FFFFF0000 -00:00:01.000 -00:00:01.000 7FFFFF0000 -00:00:01.000 -00:00:01.000 7FFFFF0000 -00:00:01.000 -00:00:01.000 7FFFFF0000 -00:00:01.000 -00:00:01.000 7FFFFF0000 -00:00:01.000 -00:00:01.000 7FFFFF0000 -00:00:01.000 -00:00:01.000 7FFFFF0000 -00:00:01.000 -00:00:01.000 7FFFFF0000 -00:00:01.000 -00:00:01.000 7FFFFF0000 -00:00:01.000 -00:00:01.000 7FFFFF0000 -00:00:01.000 -00:00:01.000 7FFFFF0000 -00:00:01.000 -00:00:01.000 7FFFFF0000 -00:00:01.000 -00:00:01.000 7FFFFF0000 -00:00:01.000 -00:00:01.000 7FFFFF0000 -00:00:01.000 -00:00:01.000 7FFFFF0000 -00:00:01.000 -00:00:01.000 7FFFFF0000 -00:00:01.000 -00:00:01.000 7FFFFF0000 -00:00:01.000 -00:00:01.000 7FFFFF0000 -00:00:00.999 -00:00:00.999 7FFFFFD8FA -00:00:00.999 -00:00:00.999 7FFFFFD8FA -00:00:00.999 -00:00:00.999 7FFFFFD8FA -00:00:00.999 -00:00:00.999 7FFFFFD8FA -00:00:00.990 -00:00:00.990 7FFFFFD954 -00:00:00.900 -00:00:00.900 7FFFFFDCD8 -00:00:00.100 -00:00:00.100 7FFFFFFC18 -00:00:00.099 -00:00:00.099 7FFFFFFC22 -00:00:00.009 -00:00:00.009 7FFFFFFFA6 -00:00:00.000 00:00:00.000 8000000000 -00:00:00.000 00:00:00.000 8000000000 -00:00:00.000 00:00:00.000 8000000000 -00:00:00.000 00:00:00.000 8000000000 -00:00:00.000 00:00:00.000 8000000000 -00:00:00.000 00:00:00.000 8000000000 -00:00:00.000 00:00:00.000 8000000000 -00:00:00.000 00:00:00.000 8000000000 -00:00:00.000 00:00:00.000 8000000000 -00:00:00.000 00:00:00.000 8000000000 -00:00:00.000 00:00:00.000 8000000000 -00:00:00.000 00:00:00.000 8000000000 -00:00:00.000 00:00:00.000 8000000000 -00:00:00.000 00:00:00.000 8000000000 -00:00:00.000 00:00:00.000 8000000000 -00:00:00.000 00:00:00.000 8000000000 -00:00:00.000 00:00:00.000 8000000000 -00:00:00.000 00:00:00.000 8000000000 -00:00:00.000 00:00:00.000 8000000000 00:00:00.000 00:00:00.000 8000000000 00:00:00.000 00:00:00.000 8000000000 00:00:00.000 00:00:00.000 8000000000 00:00:00.000 00:00:00.000 8000000000 00:00:00.000 00:00:00.000 8000000000 00:00:00.000 00:00:00.000 8000000000 00:00:00.000 00:00:00.000 8000000000 00:00:00.000 00:00:00.000 8000000000 00:00:00.000 00:00:00.000 8000000000 00:00:00.000 00:00:00.000 8000000000 00:00:00.000 00:00:00.000 8000000000 00:00:00.000 00:00:00.000 8000000000 00:00:00.000 00:00:00.000 8000000000 00:00:00.000 00:00:00.000 8000000000 00:00:00.000 00:00:00.000 8000000000 00:00:00.000 00:00:00.000 8000000000 00:00:00.000 00:00:00.000 8000000000 00:00:00.000 00:00:00.000 8000000000 00:00:00.000 00:00:00.000 8000000000 00:00:00.009 00:00:00.009 800000005A 00:00:00.099 00:00:00.099 80000003DE 00:00:00.100 00:00:00.100 80000003E8 00:00:00.900 00:00:00.900 8000002328 00:00:00.990 00:00:00.990 80000026AC 00:00:00.999 00:00:00.999 8000002706 00:00:00.999 00:00:00.999 8000002706 00:00:00.999 00:00:00.999 8000002706 00:00:00.999 00:00:00.999 8000002706 00:00:01.000 00:00:01.000 8000010000 00:00:01.000 00:00:01.000 8000010000 00:00:01.000 00:00:01.000 8000010000 00:00:01.000 00:00:01.000 8000010000 00:00:01.000 00:00:01.000 8000010000 00:00:01.000 00:00:01.000 8000010000 00:00:01.000 00:00:01.000 8000010000 00:00:01.000 00:00:01.000 8000010000 00:00:01.000 00:00:01.000 8000010000 00:00:01.000 00:00:01.000 8000010000 00:00:01.000 00:00:01.000 8000010000 00:00:01.000 00:00:01.000 8000010000 00:00:01.000 00:00:01.000 8000010000 00:00:01.000 00:00:01.000 8000010000 00:00:01.000 00:00:01.000 8000010000 00:00:01.000 00:00:01.000 8000010000 00:00:01.000 00:00:01.000 8000010000 00:00:01.000 00:00:01.000 8000010000 00:00:01.000 00:00:01.000 8000010000 00:00:01.009 00:00:01.009 800001005A 00:00:01.090 00:00:01.090 8000010384 00:00:01.099 00:00:01.099 80000103DE 00:00:01.100 00:00:01.100 80000103E8 00:00:01.900 00:00:01.900 8000012328 00:00:01.990 00:00:01.990 80000126AC 00:00:01.999 00:00:01.999 8000012706 00:00:01.999 00:00:01.999 8000012706 00:00:01.999 00:00:01.999 8000012706 00:00:01.999 00:00:01.999 8000012706 00:01:00.000 00:01:00.000 8000400000 00:01:00.000 00:01:00.000 8000400000 00:01:00.000 00:01:00.000 8000400000 00:01:00.000 00:01:00.000 8000400000 00:01:00.000 00:01:00.000 8000400000 00:01:00.000 00:01:00.000 8000400000 00:01:00.009 00:01:00.009 800040005A 00:01:00.099 00:01:00.099 80004003DE 00:01:00.100 00:01:00.100 80004003E8 00:01:00.900 00:01:00.900 8000402328 00:01:00.999 00:01:00.999 8000402706 01:00:00.000 01:00:00.000 8010000000 01:00:00.000 01:00:00.000 8010000000 01:00:00.000 01:00:00.000 8010000000 01:00:00.000 01:00:00.000 8010000000 01:00:00.000 01:00:00.000 8010000000 01:00:00.000 01:00:00.000 8010000000 01:00:00.009 01:00:00.009 801000005A 01:00:00.099 01:00:00.099 80100003DE 01:00:00.100 01:00:00.100 80100003E8 01:00:00.900 01:00:00.900 8010002328 01:00:00.990 01:00:00.990 80100026AC 01:00:00.999 01:00:00.999 8010002706 01:00:00.999 01:00:00.999 8010002706 01:00:00.999 01:00:00.999 8010002706 01:00:00.999 01:00:00.999 8010002706 838:59:58.000 838:59:58.000 B46EFA0000 838:59:58.000 838:59:58.000 B46EFA0000 838:59:58.000 838:59:58.000 B46EFA0000 838:59:58.000 838:59:58.000 B46EFA0000 838:59:58.000 838:59:58.000 B46EFA0000 838:59:58.000 838:59:58.000 B46EFA0000 838:59:58.009 838:59:58.009 B46EFA005A 838:59:58.099 838:59:58.099 B46EFA03DE 838:59:58.100 838:59:58.100 B46EFA03E8 838:59:58.900 838:59:58.900 B46EFA2328 838:59:58.990 838:59:58.990 B46EFA26AC 838:59:58.999 838:59:58.999 B46EFA2706 838:59:58.999 838:59:58.999 B46EFA2706 838:59:58.999 838:59:58.999 B46EFA2706 838:59:58.999 838:59:58.999 B46EFA2706 838:59:59.000 838:59:59.000 B46EFB0000 SELECT a2, t2, HEX(WEIGHT_STRING(t2)) FROM t1 ORDER BY t2, a6; a2 t2 HEX(WEIGHT_STRING(t2)) -838:59:59.00 -838:59:59.00 4B910500 -838:59:58.99 -838:59:58.99 4B91059D -838:59:58.99 -838:59:58.99 4B91059D -838:59:58.99 -838:59:58.99 4B91059D -838:59:58.99 -838:59:58.99 4B91059D -838:59:58.99 -838:59:58.99 4B91059D -838:59:58.90 -838:59:58.90 4B9105A6 -838:59:58.10 -838:59:58.10 4B9105F6 -838:59:58.09 -838:59:58.09 4B9105F7 -838:59:58.00 -838:59:58.00 4B910600 -838:59:58.00 -838:59:58.00 4B910600 -838:59:58.00 -838:59:58.00 4B910600 -838:59:58.00 -838:59:58.00 4B910600 -838:59:58.00 -838:59:58.00 4B910600 -838:59:58.00 -838:59:58.00 4B910600 -838:59:58.00 -838:59:58.00 4B910600 -01:00:00.99 -01:00:00.99 7FEFFF9D -01:00:00.99 -01:00:00.99 7FEFFF9D -01:00:00.99 -01:00:00.99 7FEFFF9D -01:00:00.99 -01:00:00.99 7FEFFF9D -01:00:00.99 -01:00:00.99 7FEFFF9D -01:00:00.90 -01:00:00.90 7FEFFFA6 -01:00:00.10 -01:00:00.10 7FEFFFF6 -01:00:00.09 -01:00:00.09 7FEFFFF7 -01:00:00.00 -01:00:00.00 7FF00000 -01:00:00.00 -01:00:00.00 7FF00000 -01:00:00.00 -01:00:00.00 7FF00000 -01:00:00.00 -01:00:00.00 7FF00000 -01:00:00.00 -01:00:00.00 7FF00000 -01:00:00.00 -01:00:00.00 7FF00000 -01:00:00.00 -01:00:00.00 7FF00000 -00:01:00.99 -00:01:00.99 7FFFBF9D -00:01:00.90 -00:01:00.90 7FFFBFA6 -00:01:00.10 -00:01:00.10 7FFFBFF6 -00:01:00.09 -00:01:00.09 7FFFBFF7 -00:01:00.00 -00:01:00.00 7FFFC000 -00:01:00.00 -00:01:00.00 7FFFC000 -00:01:00.00 -00:01:00.00 7FFFC000 -00:01:00.00 -00:01:00.00 7FFFC000 -00:01:00.00 -00:01:00.00 7FFFC000 -00:01:00.00 -00:01:00.00 7FFFC000 -00:01:00.00 -00:01:00.00 7FFFC000 -00:00:01.99 -00:00:01.99 7FFFFE9D -00:00:01.99 -00:00:01.99 7FFFFE9D -00:00:01.99 -00:00:01.99 7FFFFE9D -00:00:01.99 -00:00:01.99 7FFFFE9D -00:00:01.99 -00:00:01.99 7FFFFE9D -00:00:01.90 -00:00:01.90 7FFFFEA6 -00:00:01.10 -00:00:01.10 7FFFFEF6 -00:00:01.09 -00:00:01.09 7FFFFEF7 -00:00:01.09 -00:00:01.09 7FFFFEF7 -00:00:01.00 -00:00:01.00 7FFFFF00 -00:00:01.00 -00:00:01.00 7FFFFF00 -00:00:01.00 -00:00:01.00 7FFFFF00 -00:00:01.00 -00:00:01.00 7FFFFF00 -00:00:01.00 -00:00:01.00 7FFFFF00 -00:00:01.00 -00:00:01.00 7FFFFF00 -00:00:01.00 -00:00:01.00 7FFFFF00 -00:00:01.00 -00:00:01.00 7FFFFF00 -00:00:01.00 -00:00:01.00 7FFFFF00 -00:00:01.00 -00:00:01.00 7FFFFF00 -00:00:01.00 -00:00:01.00 7FFFFF00 -00:00:01.00 -00:00:01.00 7FFFFF00 -00:00:01.00 -00:00:01.00 7FFFFF00 -00:00:01.00 -00:00:01.00 7FFFFF00 -00:00:01.00 -00:00:01.00 7FFFFF00 -00:00:01.00 -00:00:01.00 7FFFFF00 -00:00:01.00 -00:00:01.00 7FFFFF00 -00:00:01.00 -00:00:01.00 7FFFFF00 -00:00:01.00 -00:00:01.00 7FFFFF00 -00:00:01.00 -00:00:01.00 7FFFFF00 -00:00:00.99 -00:00:00.99 7FFFFF9D -00:00:00.99 -00:00:00.99 7FFFFF9D -00:00:00.99 -00:00:00.99 7FFFFF9D -00:00:00.99 -00:00:00.99 7FFFFF9D -00:00:00.99 -00:00:00.99 7FFFFF9D -00:00:00.90 -00:00:00.90 7FFFFFA6 -00:00:00.10 -00:00:00.10 7FFFFFF6 -00:00:00.09 -00:00:00.09 7FFFFFF7 -00:00:00.00 00:00:00.00 80000000 -00:00:00.00 00:00:00.00 80000000 -00:00:00.00 00:00:00.00 80000000 -00:00:00.00 00:00:00.00 80000000 -00:00:00.00 00:00:00.00 80000000 -00:00:00.00 00:00:00.00 80000000 -00:00:00.00 00:00:00.00 80000000 -00:00:00.00 00:00:00.00 80000000 -00:00:00.00 00:00:00.00 80000000 -00:00:00.00 00:00:00.00 80000000 -00:00:00.00 00:00:00.00 80000000 -00:00:00.00 00:00:00.00 80000000 -00:00:00.00 00:00:00.00 80000000 -00:00:00.00 00:00:00.00 80000000 -00:00:00.00 00:00:00.00 80000000 -00:00:00.00 00:00:00.00 80000000 -00:00:00.00 00:00:00.00 80000000 -00:00:00.00 00:00:00.00 80000000 -00:00:00.00 00:00:00.00 80000000 -00:00:00.00 00:00:00.00 80000000 00:00:00.00 00:00:00.00 80000000 00:00:00.00 00:00:00.00 80000000 00:00:00.00 00:00:00.00 80000000 00:00:00.00 00:00:00.00 80000000 00:00:00.00 00:00:00.00 80000000 00:00:00.00 00:00:00.00 80000000 00:00:00.00 00:00:00.00 80000000 00:00:00.00 00:00:00.00 80000000 00:00:00.00 00:00:00.00 80000000 00:00:00.00 00:00:00.00 80000000 00:00:00.00 00:00:00.00 80000000 00:00:00.00 00:00:00.00 80000000 00:00:00.00 00:00:00.00 80000000 00:00:00.00 00:00:00.00 80000000 00:00:00.00 00:00:00.00 80000000 00:00:00.00 00:00:00.00 80000000 00:00:00.00 00:00:00.00 80000000 00:00:00.00 00:00:00.00 80000000 00:00:00.00 00:00:00.00 80000000 00:00:00.00 00:00:00.00 80000000 00:00:00.09 00:00:00.09 80000009 00:00:00.10 00:00:00.10 8000000A 00:00:00.90 00:00:00.90 8000005A 00:00:00.99 00:00:00.99 80000063 00:00:00.99 00:00:00.99 80000063 00:00:00.99 00:00:00.99 80000063 00:00:00.99 00:00:00.99 80000063 00:00:00.99 00:00:00.99 80000063 00:00:01.00 00:00:01.00 80000100 00:00:01.00 00:00:01.00 80000100 00:00:01.00 00:00:01.00 80000100 00:00:01.00 00:00:01.00 80000100 00:00:01.00 00:00:01.00 80000100 00:00:01.00 00:00:01.00 80000100 00:00:01.00 00:00:01.00 80000100 00:00:01.00 00:00:01.00 80000100 00:00:01.00 00:00:01.00 80000100 00:00:01.00 00:00:01.00 80000100 00:00:01.00 00:00:01.00 80000100 00:00:01.00 00:00:01.00 80000100 00:00:01.00 00:00:01.00 80000100 00:00:01.00 00:00:01.00 80000100 00:00:01.00 00:00:01.00 80000100 00:00:01.00 00:00:01.00 80000100 00:00:01.00 00:00:01.00 80000100 00:00:01.00 00:00:01.00 80000100 00:00:01.00 00:00:01.00 80000100 00:00:01.00 00:00:01.00 80000100 00:00:01.09 00:00:01.09 80000109 00:00:01.09 00:00:01.09 80000109 00:00:01.10 00:00:01.10 8000010A 00:00:01.90 00:00:01.90 8000015A 00:00:01.99 00:00:01.99 80000163 00:00:01.99 00:00:01.99 80000163 00:00:01.99 00:00:01.99 80000163 00:00:01.99 00:00:01.99 80000163 00:00:01.99 00:00:01.99 80000163 00:01:00.00 00:01:00.00 80004000 00:01:00.00 00:01:00.00 80004000 00:01:00.00 00:01:00.00 80004000 00:01:00.00 00:01:00.00 80004000 00:01:00.00 00:01:00.00 80004000 00:01:00.00 00:01:00.00 80004000 00:01:00.00 00:01:00.00 80004000 00:01:00.09 00:01:00.09 80004009 00:01:00.10 00:01:00.10 8000400A 00:01:00.90 00:01:00.90 8000405A 00:01:00.99 00:01:00.99 80004063 01:00:00.00 01:00:00.00 80100000 01:00:00.00 01:00:00.00 80100000 01:00:00.00 01:00:00.00 80100000 01:00:00.00 01:00:00.00 80100000 01:00:00.00 01:00:00.00 80100000 01:00:00.00 01:00:00.00 80100000 01:00:00.00 01:00:00.00 80100000 01:00:00.09 01:00:00.09 80100009 01:00:00.10 01:00:00.10 8010000A 01:00:00.90 01:00:00.90 8010005A 01:00:00.99 01:00:00.99 80100063 01:00:00.99 01:00:00.99 80100063 01:00:00.99 01:00:00.99 80100063 01:00:00.99 01:00:00.99 80100063 01:00:00.99 01:00:00.99 80100063 838:59:58.00 838:59:58.00 B46EFA00 838:59:58.00 838:59:58.00 B46EFA00 838:59:58.00 838:59:58.00 B46EFA00 838:59:58.00 838:59:58.00 B46EFA00 838:59:58.00 838:59:58.00 B46EFA00 838:59:58.00 838:59:58.00 B46EFA00 838:59:58.00 838:59:58.00 B46EFA00 838:59:58.09 838:59:58.09 B46EFA09 838:59:58.10 838:59:58.10 B46EFA0A 838:59:58.90 838:59:58.90 B46EFA5A 838:59:58.99 838:59:58.99 B46EFA63 838:59:58.99 838:59:58.99 B46EFA63 838:59:58.99 838:59:58.99 B46EFA63 838:59:58.99 838:59:58.99 B46EFA63 838:59:58.99 838:59:58.99 B46EFA63 838:59:59.00 838:59:59.00 B46EFB00 SELECT a1, t1, HEX(WEIGHT_STRING(t1)) FROM t1 ORDER BY t1, a6; a1 t1 HEX(WEIGHT_STRING(t1)) -838:59:59.0 -838:59:59.0 4B910500 -838:59:58.9 -838:59:58.9 4B9105A6 -838:59:58.9 -838:59:58.9 4B9105A6 -838:59:58.9 -838:59:58.9 4B9105A6 -838:59:58.9 -838:59:58.9 4B9105A6 -838:59:58.9 -838:59:58.9 4B9105A6 -838:59:58.9 -838:59:58.9 4B9105A6 -838:59:58.1 -838:59:58.1 4B9105F6 -838:59:58.0 -838:59:58.0 4B910600 -838:59:58.0 -838:59:58.0 4B910600 -838:59:58.0 -838:59:58.0 4B910600 -838:59:58.0 -838:59:58.0 4B910600 -838:59:58.0 -838:59:58.0 4B910600 -838:59:58.0 -838:59:58.0 4B910600 -838:59:58.0 -838:59:58.0 4B910600 -838:59:58.0 -838:59:58.0 4B910600 -01:00:00.9 -01:00:00.9 7FEFFFA6 -01:00:00.9 -01:00:00.9 7FEFFFA6 -01:00:00.9 -01:00:00.9 7FEFFFA6 -01:00:00.9 -01:00:00.9 7FEFFFA6 -01:00:00.9 -01:00:00.9 7FEFFFA6 -01:00:00.9 -01:00:00.9 7FEFFFA6 -01:00:00.1 -01:00:00.1 7FEFFFF6 -01:00:00.0 -01:00:00.0 7FF00000 -01:00:00.0 -01:00:00.0 7FF00000 -01:00:00.0 -01:00:00.0 7FF00000 -01:00:00.0 -01:00:00.0 7FF00000 -01:00:00.0 -01:00:00.0 7FF00000 -01:00:00.0 -01:00:00.0 7FF00000 -01:00:00.0 -01:00:00.0 7FF00000 -01:00:00.0 -01:00:00.0 7FF00000 -00:01:00.9 -00:01:00.9 7FFFBFA6 -00:01:00.9 -00:01:00.9 7FFFBFA6 -00:01:00.1 -00:01:00.1 7FFFBFF6 -00:01:00.0 -00:01:00.0 7FFFC000 -00:01:00.0 -00:01:00.0 7FFFC000 -00:01:00.0 -00:01:00.0 7FFFC000 -00:01:00.0 -00:01:00.0 7FFFC000 -00:01:00.0 -00:01:00.0 7FFFC000 -00:01:00.0 -00:01:00.0 7FFFC000 -00:01:00.0 -00:01:00.0 7FFFC000 -00:01:00.0 -00:01:00.0 7FFFC000 -00:00:01.9 -00:00:01.9 7FFFFEA6 -00:00:01.9 -00:00:01.9 7FFFFEA6 -00:00:01.9 -00:00:01.9 7FFFFEA6 -00:00:01.9 -00:00:01.9 7FFFFEA6 -00:00:01.9 -00:00:01.9 7FFFFEA6 -00:00:01.9 -00:00:01.9 7FFFFEA6 -00:00:01.1 -00:00:01.1 7FFFFEF6 -00:00:01.0 -00:00:01.0 7FFFFF00 -00:00:01.0 -00:00:01.0 7FFFFF00 -00:00:01.0 -00:00:01.0 7FFFFF00 -00:00:01.0 -00:00:01.0 7FFFFF00 -00:00:01.0 -00:00:01.0 7FFFFF00 -00:00:01.0 -00:00:01.0 7FFFFF00 -00:00:01.0 -00:00:01.0 7FFFFF00 -00:00:01.0 -00:00:01.0 7FFFFF00 -00:00:01.0 -00:00:01.0 7FFFFF00 -00:00:01.0 -00:00:01.0 7FFFFF00 -00:00:01.0 -00:00:01.0 7FFFFF00 -00:00:01.0 -00:00:01.0 7FFFFF00 -00:00:01.0 -00:00:01.0 7FFFFF00 -00:00:01.0 -00:00:01.0 7FFFFF00 -00:00:01.0 -00:00:01.0 7FFFFF00 -00:00:01.0 -00:00:01.0 7FFFFF00 -00:00:01.0 -00:00:01.0 7FFFFF00 -00:00:01.0 -00:00:01.0 7FFFFF00 -00:00:01.0 -00:00:01.0 7FFFFF00 -00:00:01.0 -00:00:01.0 7FFFFF00 -00:00:01.0 -00:00:01.0 7FFFFF00 -00:00:01.0 -00:00:01.0 7FFFFF00 -00:00:00.9 -00:00:00.9 7FFFFFA6 -00:00:00.9 -00:00:00.9 7FFFFFA6 -00:00:00.9 -00:00:00.9 7FFFFFA6 -00:00:00.9 -00:00:00.9 7FFFFFA6 -00:00:00.9 -00:00:00.9 7FFFFFA6 -00:00:00.9 -00:00:00.9 7FFFFFA6 -00:00:00.1 -00:00:00.1 7FFFFFF6 -00:00:00.0 00:00:00.0 80000000 -00:00:00.0 00:00:00.0 80000000 -00:00:00.0 00:00:00.0 80000000 -00:00:00.0 00:00:00.0 80000000 -00:00:00.0 00:00:00.0 80000000 -00:00:00.0 00:00:00.0 80000000 -00:00:00.0 00:00:00.0 80000000 -00:00:00.0 00:00:00.0 80000000 -00:00:00.0 00:00:00.0 80000000 -00:00:00.0 00:00:00.0 80000000 -00:00:00.0 00:00:00.0 80000000 -00:00:00.0 00:00:00.0 80000000 -00:00:00.0 00:00:00.0 80000000 -00:00:00.0 00:00:00.0 80000000 -00:00:00.0 00:00:00.0 80000000 -00:00:00.0 00:00:00.0 80000000 -00:00:00.0 00:00:00.0 80000000 -00:00:00.0 00:00:00.0 80000000 -00:00:00.0 00:00:00.0 80000000 -00:00:00.0 00:00:00.0 80000000 -00:00:00.0 00:00:00.0 80000000 00:00:00.0 00:00:00.0 80000000 00:00:00.0 00:00:00.0 80000000 00:00:00.0 00:00:00.0 80000000 00:00:00.0 00:00:00.0 80000000 00:00:00.0 00:00:00.0 80000000 00:00:00.0 00:00:00.0 80000000 00:00:00.0 00:00:00.0 80000000 00:00:00.0 00:00:00.0 80000000 00:00:00.0 00:00:00.0 80000000 00:00:00.0 00:00:00.0 80000000 00:00:00.0 00:00:00.0 80000000 00:00:00.0 00:00:00.0 80000000 00:00:00.0 00:00:00.0 80000000 00:00:00.0 00:00:00.0 80000000 00:00:00.0 00:00:00.0 80000000 00:00:00.0 00:00:00.0 80000000 00:00:00.0 00:00:00.0 80000000 00:00:00.0 00:00:00.0 80000000 00:00:00.0 00:00:00.0 80000000 00:00:00.0 00:00:00.0 80000000 00:00:00.0 00:00:00.0 80000000 00:00:00.1 00:00:00.1 8000000A 00:00:00.9 00:00:00.9 8000005A 00:00:00.9 00:00:00.9 8000005A 00:00:00.9 00:00:00.9 8000005A 00:00:00.9 00:00:00.9 8000005A 00:00:00.9 00:00:00.9 8000005A 00:00:00.9 00:00:00.9 8000005A 00:00:01.0 00:00:01.0 80000100 00:00:01.0 00:00:01.0 80000100 00:00:01.0 00:00:01.0 80000100 00:00:01.0 00:00:01.0 80000100 00:00:01.0 00:00:01.0 80000100 00:00:01.0 00:00:01.0 80000100 00:00:01.0 00:00:01.0 80000100 00:00:01.0 00:00:01.0 80000100 00:00:01.0 00:00:01.0 80000100 00:00:01.0 00:00:01.0 80000100 00:00:01.0 00:00:01.0 80000100 00:00:01.0 00:00:01.0 80000100 00:00:01.0 00:00:01.0 80000100 00:00:01.0 00:00:01.0 80000100 00:00:01.0 00:00:01.0 80000100 00:00:01.0 00:00:01.0 80000100 00:00:01.0 00:00:01.0 80000100 00:00:01.0 00:00:01.0 80000100 00:00:01.0 00:00:01.0 80000100 00:00:01.0 00:00:01.0 80000100 00:00:01.0 00:00:01.0 80000100 00:00:01.0 00:00:01.0 80000100 00:00:01.1 00:00:01.1 8000010A 00:00:01.9 00:00:01.9 8000015A 00:00:01.9 00:00:01.9 8000015A 00:00:01.9 00:00:01.9 8000015A 00:00:01.9 00:00:01.9 8000015A 00:00:01.9 00:00:01.9 8000015A 00:00:01.9 00:00:01.9 8000015A 00:01:00.0 00:01:00.0 80004000 00:01:00.0 00:01:00.0 80004000 00:01:00.0 00:01:00.0 80004000 00:01:00.0 00:01:00.0 80004000 00:01:00.0 00:01:00.0 80004000 00:01:00.0 00:01:00.0 80004000 00:01:00.0 00:01:00.0 80004000 00:01:00.0 00:01:00.0 80004000 00:01:00.1 00:01:00.1 8000400A 00:01:00.9 00:01:00.9 8000405A 00:01:00.9 00:01:00.9 8000405A 01:00:00.0 01:00:00.0 80100000 01:00:00.0 01:00:00.0 80100000 01:00:00.0 01:00:00.0 80100000 01:00:00.0 01:00:00.0 80100000 01:00:00.0 01:00:00.0 80100000 01:00:00.0 01:00:00.0 80100000 01:00:00.0 01:00:00.0 80100000 01:00:00.0 01:00:00.0 80100000 01:00:00.1 01:00:00.1 8010000A 01:00:00.9 01:00:00.9 8010005A 01:00:00.9 01:00:00.9 8010005A 01:00:00.9 01:00:00.9 8010005A 01:00:00.9 01:00:00.9 8010005A 01:00:00.9 01:00:00.9 8010005A 01:00:00.9 01:00:00.9 8010005A 838:59:58.0 838:59:58.0 B46EFA00 838:59:58.0 838:59:58.0 B46EFA00 838:59:58.0 838:59:58.0 B46EFA00 838:59:58.0 838:59:58.0 B46EFA00 838:59:58.0 838:59:58.0 B46EFA00 838:59:58.0 838:59:58.0 B46EFA00 838:59:58.0 838:59:58.0 B46EFA00 838:59:58.0 838:59:58.0 B46EFA00 838:59:58.1 838:59:58.1 B46EFA0A 838:59:58.9 838:59:58.9 B46EFA5A 838:59:58.9 838:59:58.9 B46EFA5A 838:59:58.9 838:59:58.9 B46EFA5A 838:59:58.9 838:59:58.9 B46EFA5A 838:59:58.9 838:59:58.9 B46EFA5A 838:59:58.9 838:59:58.9 B46EFA5A 838:59:59.0 838:59:59.0 B46EFB00 CREATE VIEW v1 AS SELECT a6, t0, t1, t2, t3, t4, t5, t6, HEX(WEIGHT_STRING(t0)) as wst0, HEX(WEIGHT_STRING(t1)) as wst1, HEX(WEIGHT_STRING(t2)) as wst2, HEX(WEIGHT_STRING(t3)) as wst3, HEX(WEIGHT_STRING(t4)) as wst4, HEX(WEIGHT_STRING(t5)) as wst5, HEX(WEIGHT_STRING(t6)) as wst6 FROM t1; SELECT * FROM v1 WHERE a6 LIKE '%.999999' ORDER BY a6, t6;; a6 -00:00:00.999999 t0 00:00:00 t1 -00:00:00.9 t2 -00:00:00.99 t3 -00:00:00.999 t4 -00:00:00.9999 t5 -00:00:00.99999 t6 -00:00:00.999999 wst0 800000 wst1 7FFFFFA6 wst2 7FFFFF9D wst3 7FFFFFD8FA wst4 7FFFFFD8F1 wst5 7FFFFFF0BDCA wst6 7FFFFFF0BDC1 a6 -00:00:01.999999 t0 -00:00:01 t1 -00:00:01.9 t2 -00:00:01.99 t3 -00:00:01.999 t4 -00:00:01.9999 t5 -00:00:01.99999 t6 -00:00:01.999999 wst0 7FFFFF wst1 7FFFFEA6 wst2 7FFFFE9D wst3 7FFFFED8FA wst4 7FFFFED8F1 wst5 7FFFFEF0BDCA wst6 7FFFFEF0BDC1 a6 -00:01:00.999999 t0 -00:01:00 t1 -00:01:00.9 t2 -00:01:00.99 t3 -00:01:00.999 t4 -00:01:00.9999 t5 -00:01:00.99999 t6 -00:01:00.999999 wst0 7FFFC0 wst1 7FFFBFA6 wst2 7FFFBF9D wst3 7FFFBFD8FA wst4 7FFFBFD8F1 wst5 7FFFBFF0BDCA wst6 7FFFBFF0BDC1 a6 -01:00:00.999999 t0 -01:00:00 t1 -01:00:00.9 t2 -01:00:00.99 t3 -01:00:00.999 t4 -01:00:00.9999 t5 -01:00:00.99999 t6 -01:00:00.999999 wst0 7FF000 wst1 7FEFFFA6 wst2 7FEFFF9D wst3 7FEFFFD8FA wst4 7FEFFFD8F1 wst5 7FEFFFF0BDCA wst6 7FEFFFF0BDC1 a6 -838:59:58.999999 t0 -838:59:58 t1 -838:59:58.9 t2 -838:59:58.99 t3 -838:59:58.999 t4 -838:59:58.9999 t5 -838:59:58.99999 t6 -838:59:58.999999 wst0 4B9106 wst1 4B9105A6 wst2 4B91059D wst3 4B9105D8FA wst4 4B9105D8F1 wst5 4B9105F0BDCA wst6 4B9105F0BDC1 a6 00:00:00.999999 t0 00:00:00 t1 00:00:00.9 t2 00:00:00.99 t3 00:00:00.999 t4 00:00:00.9999 t5 00:00:00.99999 t6 00:00:00.999999 wst0 800000 wst1 8000005A wst2 80000063 wst3 8000002706 wst4 800000270F wst5 8000000F4236 wst6 8000000F423F a6 00:00:01.999999 t0 00:00:01 t1 00:00:01.9 t2 00:00:01.99 t3 00:00:01.999 t4 00:00:01.9999 t5 00:00:01.99999 t6 00:00:01.999999 wst0 800001 wst1 8000015A wst2 80000163 wst3 8000012706 wst4 800001270F wst5 8000010F4236 wst6 8000010F423F a6 00:01:00.999999 t0 00:01:00 t1 00:01:00.9 t2 00:01:00.99 t3 00:01:00.999 t4 00:01:00.9999 t5 00:01:00.99999 t6 00:01:00.999999 wst0 800040 wst1 8000405A wst2 80004063 wst3 8000402706 wst4 800040270F wst5 8000400F4236 wst6 8000400F423F a6 01:00:00.999999 t0 01:00:00 t1 01:00:00.9 t2 01:00:00.99 t3 01:00:00.999 t4 01:00:00.9999 t5 01:00:00.99999 t6 01:00:00.999999 wst0 801000 wst1 8010005A wst2 80100063 wst3 8010002706 wst4 801000270F wst5 8010000F4236 wst6 8010000F423F a6 838:59:58.999999 t0 838:59:58 t1 838:59:58.9 t2 838:59:58.99 t3 838:59:58.999 t4 838:59:58.9999 t5 838:59:58.99999 t6 838:59:58.999999 wst0 B46EFA wst1 B46EFA5A wst2 B46EFA63 wst3 B46EFA2706 wst4 B46EFA270F wst5 B46EFA0F4236 wst6 B46EFA0F423F SELECT * FROM v1 WHERE a6 LIKE '%.000000' ORDER BY a6, t6;; a6 -00:00:00.000000 t0 00:00:00 t1 00:00:00.0 t2 00:00:00.00 t3 00:00:00.000 t4 00:00:00.0000 t5 00:00:00.00000 t6 00:00:00.000000 wst0 800000 wst1 80000000 wst2 80000000 wst3 8000000000 wst4 8000000000 wst5 800000000000 wst6 800000000000 a6 -00:00:01.000000 t0 -00:00:01 t1 -00:00:01.0 t2 -00:00:01.00 t3 -00:00:01.000 t4 -00:00:01.0000 t5 -00:00:01.00000 t6 -00:00:01.000000 wst0 7FFFFF wst1 7FFFFF00 wst2 7FFFFF00 wst3 7FFFFF0000 wst4 7FFFFF0000 wst5 7FFFFF000000 wst6 7FFFFF000000 a6 -838:59:59.000000 t0 -838:59:59 t1 -838:59:59.0 t2 -838:59:59.00 t3 -838:59:59.000 t4 -838:59:59.0000 t5 -838:59:59.00000 t6 -838:59:59.000000 wst0 4B9105 wst1 4B910500 wst2 4B910500 wst3 4B91050000 wst4 4B91050000 wst5 4B9105000000 wst6 4B9105000000 a6 00:00:00.000000 t0 00:00:00 t1 00:00:00.0 t2 00:00:00.00 t3 00:00:00.000 t4 00:00:00.0000 t5 00:00:00.00000 t6 00:00:00.000000 wst0 800000 wst1 80000000 wst2 80000000 wst3 8000000000 wst4 8000000000 wst5 800000000000 wst6 800000000000 a6 00:00:01.000000 t0 00:00:01 t1 00:00:01.0 t2 00:00:01.00 t3 00:00:01.000 t4 00:00:01.0000 t5 00:00:01.00000 t6 00:00:01.000000 wst0 800001 wst1 80000100 wst2 80000100 wst3 8000010000 wst4 8000010000 wst5 800001000000 wst6 800001000000 a6 838:59:59.000000 t0 838:59:59 t1 838:59:59.0 t2 838:59:59.00 t3 838:59:59.000 t4 838:59:59.0000 t5 838:59:59.00000 t6 838:59:59.000000 wst0 B46EFB wst1 B46EFB00 wst2 B46EFB00 wst3 B46EFB0000 wst4 B46EFB0000 wst5 B46EFB000000 wst6 B46EFB000000 SELECT * FROM v1 WHERE a6 LIKE '%.100000' ORDER BY a6, t6;; a6 -00:00:00.100000 t0 00:00:00 t1 -00:00:00.1 t2 -00:00:00.10 t3 -00:00:00.100 t4 -00:00:00.1000 t5 -00:00:00.10000 t6 -00:00:00.100000 wst0 800000 wst1 7FFFFFF6 wst2 7FFFFFF6 wst3 7FFFFFFC18 wst4 7FFFFFFC18 wst5 7FFFFFFE7960 wst6 7FFFFFFE7960 a6 -00:00:01.100000 t0 -00:00:01 t1 -00:00:01.1 t2 -00:00:01.10 t3 -00:00:01.100 t4 -00:00:01.1000 t5 -00:00:01.10000 t6 -00:00:01.100000 wst0 7FFFFF wst1 7FFFFEF6 wst2 7FFFFEF6 wst3 7FFFFEFC18 wst4 7FFFFEFC18 wst5 7FFFFEFE7960 wst6 7FFFFEFE7960 a6 -00:01:00.100000 t0 -00:01:00 t1 -00:01:00.1 t2 -00:01:00.10 t3 -00:01:00.100 t4 -00:01:00.1000 t5 -00:01:00.10000 t6 -00:01:00.100000 wst0 7FFFC0 wst1 7FFFBFF6 wst2 7FFFBFF6 wst3 7FFFBFFC18 wst4 7FFFBFFC18 wst5 7FFFBFFE7960 wst6 7FFFBFFE7960 a6 -01:00:00.100000 t0 -01:00:00 t1 -01:00:00.1 t2 -01:00:00.10 t3 -01:00:00.100 t4 -01:00:00.1000 t5 -01:00:00.10000 t6 -01:00:00.100000 wst0 7FF000 wst1 7FEFFFF6 wst2 7FEFFFF6 wst3 7FEFFFFC18 wst4 7FEFFFFC18 wst5 7FEFFFFE7960 wst6 7FEFFFFE7960 a6 -838:59:58.100000 t0 -838:59:58 t1 -838:59:58.1 t2 -838:59:58.10 t3 -838:59:58.100 t4 -838:59:58.1000 t5 -838:59:58.10000 t6 -838:59:58.100000 wst0 4B9106 wst1 4B9105F6 wst2 4B9105F6 wst3 4B9105FC18 wst4 4B9105FC18 wst5 4B9105FE7960 wst6 4B9105FE7960 a6 00:00:00.100000 t0 00:00:00 t1 00:00:00.1 t2 00:00:00.10 t3 00:00:00.100 t4 00:00:00.1000 t5 00:00:00.10000 t6 00:00:00.100000 wst0 800000 wst1 8000000A wst2 8000000A wst3 80000003E8 wst4 80000003E8 wst5 8000000186A0 wst6 8000000186A0 a6 00:00:01.100000 t0 00:00:01 t1 00:00:01.1 t2 00:00:01.10 t3 00:00:01.100 t4 00:00:01.1000 t5 00:00:01.10000 t6 00:00:01.100000 wst0 800001 wst1 8000010A wst2 8000010A wst3 80000103E8 wst4 80000103E8 wst5 8000010186A0 wst6 8000010186A0 a6 00:01:00.100000 t0 00:01:00 t1 00:01:00.1 t2 00:01:00.10 t3 00:01:00.100 t4 00:01:00.1000 t5 00:01:00.10000 t6 00:01:00.100000 wst0 800040 wst1 8000400A wst2 8000400A wst3 80004003E8 wst4 80004003E8 wst5 8000400186A0 wst6 8000400186A0 a6 01:00:00.100000 t0 01:00:00 t1 01:00:00.1 t2 01:00:00.10 t3 01:00:00.100 t4 01:00:00.1000 t5 01:00:00.10000 t6 01:00:00.100000 wst0 801000 wst1 8010000A wst2 8010000A wst3 80100003E8 wst4 80100003E8 wst5 8010000186A0 wst6 8010000186A0 a6 838:59:58.100000 t0 838:59:58 t1 838:59:58.1 t2 838:59:58.10 t3 838:59:58.100 t4 838:59:58.1000 t5 838:59:58.10000 t6 838:59:58.100000 wst0 B46EFA wst1 B46EFA0A wst2 B46EFA0A wst3 B46EFA03E8 wst4 B46EFA03E8 wst5 B46EFA0186A0 wst6 B46EFA0186A0 DROP VIEW v1; DROP TABLE t1; # # Testing that TIME(0) is a synonym to non-fractional TIME # CREATE TABLE t1 (a TIME(0) NOT NULL); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` time NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; # # Testing bad FSPs # CREATE TABLE t1 (a TIME(-1)); 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 '-1))' at line 1 CREATE TABLE t1 (a TIME(7)); ERROR 42000: Too-big precision 7 specified for 'a'. Maximum is 6. CREATE TABLE t1 (a TIME(31)); ERROR 42000: Too-big precision 31 specified for 'a'. Maximum is 6. # # Testing bad FSPs with TIME functions # SELECT CURTIME(-1); 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 '-1)' at line 1 SELECT CURTIME(7); ERROR 42000: Too-big precision 7 specified for 'curtime'. Maximum is 6. SELECT CURTIME(31); ERROR 42000: Too-big precision 31 specified for 'curtime'. Maximum is 6. # # Testing INSERT, ORDER, KEY, BETWEEN, comparison # CREATE TABLE t1 (a TIME(6) NOT NULL); INSERT INTO t1 VALUES ('-838:59:59.000000'); INSERT INTO t1 VALUES ('-01:00:00.999999'); INSERT INTO t1 VALUES ('-01:00:00.000001'); INSERT INTO t1 VALUES ('-01:00:00.000000'); INSERT INTO t1 VALUES ('-00:00:00.000001'); INSERT INTO t1 VALUES ('00:00:00.000000'); INSERT INTO t1 VALUES ('23:59:59.999999'); INSERT INTO t1 VALUES ('01:02:03'); INSERT INTO t1 VALUES ('01:02:03.4'); INSERT INTO t1 VALUES ('01:02:03.45'); INSERT INTO t1 VALUES ('01:02:03.456'); INSERT INTO t1 VALUES ('01:02:03.4567'); INSERT INTO t1 VALUES ('01:02:03.45678'); INSERT INTO t1 VALUES ('01:02:03.4567891'); INSERT INTO t1 VALUES ('838:59:59.000000'); SELECT * FROM t1; a -838:59:59.000000 -01:00:00.999999 -01:00:00.000001 -01:00:00.000000 -00:00:00.000001 00:00:00.000000 23:59:59.999999 01:02:03.000000 01:02:03.400000 01:02:03.450000 01:02:03.456000 01:02:03.456700 01:02:03.456780 01:02:03.456789 838:59:59.000000 SELECT * FROM t1 ORDER BY a DESC; a 838:59:59.000000 23:59:59.999999 01:02:03.456789 01:02:03.456780 01:02:03.456700 01:02:03.456000 01:02:03.450000 01:02:03.400000 01:02:03.000000 00:00:00.000000 -00:00:00.000001 -01:00:00.000000 -01:00:00.000001 -01:00:00.999999 -838:59:59.000000 SELECT * FROM t1 WHERE a='01:02:03.45'; a 01:02:03.450000 SELECT * FROM t1 WHERE a='01:02:03.4567'; a 01:02:03.456700 SELECT * FROM t1 WHERE a='01:02:03.45670'; a 01:02:03.456700 SELECT * FROM t1 WHERE a='01:02:03.456700'; a 01:02:03.456700 SELECT * FROM t1 WHERE a BETWEEN '01:02:00' AND '01:03:00'; a 01:02:03.000000 01:02:03.400000 01:02:03.450000 01:02:03.456000 01:02:03.456700 01:02:03.456780 01:02:03.456789 SELECT * FROM t1 WHERE a BETWEEN TIME'01:02:03.456' AND TIME'01:02:03.45678'; a 01:02:03.456000 01:02:03.456700 01:02:03.456780 ALTER TABLE t1 ADD KEY(a); SELECT * FROM t1 ORDER BY a; a -838:59:59.000000 -01:00:00.999999 -01:00:00.000001 -01:00:00.000000 -00:00:00.000001 00:00:00.000000 01:02:03.000000 01:02:03.400000 01:02:03.450000 01:02:03.456000 01:02:03.456700 01:02:03.456780 01:02:03.456789 23:59:59.999999 838:59:59.000000 SELECT * FROM t1 ORDER BY a DESC; a 838:59:59.000000 23:59:59.999999 01:02:03.456789 01:02:03.456780 01:02:03.456700 01:02:03.456000 01:02:03.450000 01:02:03.400000 01:02:03.000000 00:00:00.000000 -00:00:00.000001 -01:00:00.000000 -01:00:00.000001 -01:00:00.999999 -838:59:59.000000 EXPLAIN SELECT * FROM t1 WHERE a='01:02:03.456700'; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL ref a a 6 const 1 100.00 Using where; Using index Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where (`test`.`t1`.`a` = '01:02:03.456700') SELECT * FROM t1 WHERE a='01:02:03.456700'; a 01:02:03.456700 SELECT * FROM t1 WHERE a BETWEEN '01:02:00' AND '01:03:00'; a 01:02:03.000000 01:02:03.400000 01:02:03.450000 01:02:03.456000 01:02:03.456700 01:02:03.456780 01:02:03.456789 SELECT * FROM t1 WHERE a BETWEEN TIME'01:02:03.456' AND TIME'01:02:03.45678'; a 01:02:03.456000 01:02:03.456700 01:02:03.456780 DROP TABLE t1; # # Testing TIME with days # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('00:00:00'); INSERT INTO t1 VALUES ('-24:00:00'), ('24:00:00'); INSERT INTO t1 VALUES ('-1 00:00:00'), ('1 00:00:00'); INSERT INTO t1 VALUES ('-10 00:00:00'), ('10 00:00:00'); SELECT * FROM t1 ORDER BY a; a -240:00:00.000000 -24:00:00.000000 -24:00:00.000000 00:00:00.000000 24:00:00.000000 24:00:00.000000 240:00:00.000000 DROP TABLE t1; # # Testing rare formats # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES (1122), ('1:2:3'), ('112233'),('-00:00:00'),('-00:00:00.000000'); SELECT * FROM t1 ORDER BY a; a 00:00:00.000000 00:00:00.000000 00:11:22.000000 01:02:03.000000 11:22:33.000000 DROP TABLE t1; # # Testing bad values # SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; Warnings: Warning 3090 Changing sql mode 'NO_AUTO_CREATE_USER' is deprecated. It will be removed in a future release. CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES (106060); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (106060.0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (106060e0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('106060'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT * FROM t1; a 00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 DROP TABLE t1; SET sql_mode = default; # # Testing bad values with TRADITIONAL mode # SET sql_mode=traditional; CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('00:00:00.111111 xxx'); ERROR 22007: Incorrect time value: '00:00:00.111111 xxx' for column 'a' at row 1 INSERT INTO t1 VALUES (106060); ERROR 22007: Incorrect time value: '106060' for column 'a' at row 1 INSERT INTO t1 VALUES (106060.0); ERROR 22007: Incorrect time value: '106060.0' for column 'a' at row 1 INSERT INTO t1 VALUES (106060e0); ERROR 22007: Incorrect time value: '106060' for column 'a' at row 1 INSERT INTO t1 VALUES ('106060'); ERROR 22007: Incorrect time value: '106060' for column 'a' at row 1 INSERT INTO t1 VALUES ('838:59:59.0000009'); ERROR 22007: Incorrect time value: '838:59:59.0000009' for column 'a' at row 1 INSERT INTO t1 VALUES ('-838:59:59.0000009'); ERROR 22007: Incorrect time value: '-838:59:59.0000009' for column 'a' at row 1 INSERT INTO t1 VALUES (CAST(0xFFFFFFFF00000000 AS SIGNED)); ERROR 22007: Incorrect time value: '-4294967296' for column 'a' at row 1 INSERT INTO t1 VALUES (CAST(0xFFFFFFFF00000000 AS UNSIGNED)); ERROR 22007: Incorrect time value: '18446744069414584320' for column 'a' at row 1 SELECT * FROM t1; a DROP TABLE t1; SET sql_mode=default; # # Testing rounding # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES (105959.1234567); INSERT INTO t1 VALUES ('00:00:00.1111110'); INSERT INTO t1 VALUES ('00:00:00.1111111'); INSERT INTO t1 VALUES ('00:00:00.1111114'); INSERT INTO t1 VALUES ('00:00:00.1111115'); INSERT INTO t1 VALUES ('00:00:00.1111119'); SELECT * FROM t1; a 10:59:59.123457 00:00:00.111111 00:00:00.111111 00:00:00.111111 00:00:00.111112 00:00:00.111112 DELETE FROM t1; INSERT INTO t1 VALUES (0.1111110); INSERT INTO t1 VALUES (0.1111111); INSERT INTO t1 VALUES (0.1111114); INSERT INTO t1 VALUES (0.1111115); INSERT INTO t1 VALUES (0.1111119); SELECT * FROM t1; a 00:00:00.111111 00:00:00.111111 00:00:00.111111 00:00:00.111112 00:00:00.111112 DELETE FROM t1; INSERT INTO t1 VALUES (0.1111110e0); INSERT INTO t1 VALUES (0.1111111e0); INSERT INTO t1 VALUES (0.1111114e0); INSERT INTO t1 VALUES (0.1111115e0); INSERT INTO t1 VALUES (0.1111119e0); SELECT * FROM t1; a 00:00:00.111111 00:00:00.111111 00:00:00.111111 00:00:00.111112 00:00:00.111112 DROP TABLE t1; # # Testing huge values # SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; Warnings: Warning 3090 Changing sql mode 'NO_AUTO_CREATE_USER' is deprecated. It will be removed in a future release. CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES (CAST(0xFFFFFFFF00000000 AS SIGNED)); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (CAST(0xFFFFFFFF00000000 AS UNSIGNED)); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ( 100000000000000000.1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ( 100000000000000000.1e0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-100000000000000000.1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-100000000000000000.1e0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (1000000000.0 * 1000000000); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-1000000000.0 * 1000000000); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT * FROM t1; a -838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 -838:59:59.000000 -838:59:59.000000 838:59:59.000000 -838:59:59.000000 DROP TABLE t1; # # Testing truncation warnings # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('00:00:00.111111 xxx'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; a 00:00:00.111111 DROP TABLE t1; SET sql_mode = default; # # Testing IN # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('-99:00:00.000000'); INSERT INTO t1 VALUES ('-99:00:00.000001'); INSERT INTO t1 VALUES ('-99:00:00.000002'); INSERT INTO t1 VALUES ('-00:00:00.000001'); INSERT INTO t1 VALUES ('-00:00:00.000002'); INSERT INTO t1 VALUES ('00:00:00.000000'); INSERT INTO t1 VALUES ('00:00:00.000001'); INSERT INTO t1 VALUES ('00:00:00.000002'); INSERT INTO t1 VALUES ('10:00:00.000000'); INSERT INTO t1 VALUES ('10:00:00.000001'); INSERT INTO t1 VALUES ('10:00:00.000002'); INSERT INTO t1 VALUES ('99:00:00.000000'); INSERT INTO t1 VALUES ('99:00:00.000001'); INSERT INTO t1 VALUES ('99:00:00.000002'); SELECT * FROM t1 WHERE a IN ('00:00:00', '-99:00:00.000001', '99:00:00.000002'); a -99:00:00.000001 00:00:00.000000 99:00:00.000002 SELECT * FROM t1 WHERE a IN (0, -990000, 990000); a -99:00:00.000000 00:00:00.000000 99:00:00.000000 SELECT * FROM t1 WHERE a IN (0.000001, -990000.000001, 990000.000001); a -99:00:00.000001 00:00:00.000001 99:00:00.000001 # # Testing Item_temporal_with_ref::print # EXPLAIN EXTENDED SELECT * FROM t1 WHERE a IN (990000,0); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 14 20.00 Using where Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where (`test`.`t1`.`a` in ('99:00:00.000000','00:00:00.000000')) # # Testing IN with index: field->store_packed # ALTER TABLE t1 ADD KEY(a); SELECT * FROM t1 WHERE a IN ('00:00:00', '-99:00:00.000001', '99:00:00.000002'); a -99:00:00.000001 00:00:00.000000 99:00:00.000002 SELECT * FROM t1 WHERE a IN (0, -990000, 990000); a -99:00:00.000000 00:00:00.000000 99:00:00.000000 SELECT * FROM t1 WHERE a IN (0.000001, -990000.000001, 990000.000001); a -99:00:00.000001 00:00:00.000001 99:00:00.000001 DROP TABLE t1; # # Testing CREATE TABLE LIKE # CREATE TABLE t1 (a TIME(6)); CREATE TABLE t2 LIKE t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` time(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2, t1; # # Testing CREATE TABLE .. SELECT # CREATE TABLE t1 (a TIME(6)); CREATE TABLE t2 AS SELECT * FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` time(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2, t1; # # Testing JOIN between TIME(6) and TIME(6) # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('00:01:03.1'); INSERT INTO t1 VALUES ('00:01:03.12'); INSERT INTO t1 VALUES ('00:01:03.123'); INSERT INTO t1 VALUES ('00:01:03.1234'); INSERT INTO t1 VALUES ('00:01:03.12345'); INSERT INTO t1 VALUES ('00:01:03.123456'); CREATE TABLE t2 (a TIME(6)); INSERT INTO t2 SELECT * FROM t1; SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 00:01:03.100000 00:01:03.100000 00:01:03.120000 00:01:03.120000 00:01:03.123000 00:01:03.123000 00:01:03.123400 00:01:03.123400 00:01:03.123450 00:01:03.123450 00:01:03.123456 00:01:03.123456 ALTER TABLE t1 ADD KEY(a); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 00:01:03.100000 00:01:03.100000 00:01:03.120000 00:01:03.120000 00:01:03.123000 00:01:03.123000 00:01:03.123400 00:01:03.123400 00:01:03.123450 00:01:03.123450 00:01:03.123456 00:01:03.123456 ALTER TABLE t2 ADD KEY(a); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 00:01:03.100000 00:01:03.100000 00:01:03.120000 00:01:03.120000 00:01:03.123000 00:01:03.123000 00:01:03.123400 00:01:03.123400 00:01:03.123450 00:01:03.123450 00:01:03.123456 00:01:03.123456 ALTER TABLE t1 DROP KEY a; SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 00:01:03.100000 00:01:03.100000 00:01:03.120000 00:01:03.120000 00:01:03.123000 00:01:03.123000 00:01:03.123400 00:01:03.123400 00:01:03.123450 00:01:03.123450 00:01:03.123456 00:01:03.123456 DROP TABLE t2; DROP TABLE t1; # # Testing JOIN between TIME and TIME(6) # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('-836:59:59.000000'); INSERT INTO t1 VALUES ('10:11:12.000000'); INSERT INTO t1 VALUES ('10:11:12.000001'); INSERT INTO t1 VALUES ('10:11:12.000002'); INSERT INTO t1 VALUES ('10:11:13.000000'); INSERT INTO t1 VALUES ('10:11:13.000001'); INSERT INTO t1 VALUES ('10:11:13.000002'); INSERT INTO t1 VALUES ('835:59:59.999999'); INSERT INTO t1 VALUES ('836:59:59.000000'); CREATE TABLE t2 (a TIME); INSERT INTO t2 VALUES ('10:11:12'); INSERT INTO t2 VALUES ('10:11:13'); INSERT INTO t2 VALUES ('-836:59:59'); INSERT INTO t2 VALUES ('836:59:59'); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a -836:59:59.000000 -836:59:59 10:11:12.000000 10:11:12 10:11:13.000000 10:11:13 836:59:59.000000 836:59:59 ALTER TABLE t1 ADD KEY(a); ALTER TABLE t2 ADD KEY(a); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a -836:59:59.000000 -836:59:59 10:11:12.000000 10:11:12 10:11:13.000000 10:11:13 836:59:59.000000 836:59:59 DROP TABLE t2, t1; # # Testing unique index # CREATE TABLE t1 (a TIME(6), UNIQUE(a)); INSERT INTO t1 VALUES ('00:01:02'); INSERT INTO t1 VALUES ('00:01:02.1'); INSERT INTO t1 VALUES ('00:01:02.12'); INSERT INTO t1 VALUES ('00:01:02.123'); INSERT INTO t1 VALUES ('00:01:02.1234'); INSERT INTO t1 VALUES ('00:01:02.12345'); INSERT INTO t1 VALUES ('00:01:02.12345'); ERROR 23000: Duplicate entry '00:01:02.123450' for key 'a' DROP TABLE t1; # # Testing GROUP BY # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('00:01:02'); INSERT INTO t1 VALUES ('00:01:02.0'); INSERT INTO t1 VALUES ('00:01:02.01'); INSERT INTO t1 VALUES ('00:01:02.010'); INSERT INTO t1 VALUES ('00:01:02.02'); INSERT INTO t1 VALUES ('00:01:02.020'); SELECT a, COUNT(*) FROM t1 GROUP BY a; a COUNT(*) 00:01:02.000000 2 00:01:02.010000 2 00:01:02.020000 2 DROP TABLE t1; # # Testing MIN() and MAX() # CREATE TABLE t1 (a INT, b TIME(6)); INSERT INTO t1 VALUES (1, '00:01:02.000001'); INSERT INTO t1 VALUES (1, '00:01:02'); INSERT INTO t1 VALUES (2, '10:01:02'); INSERT INTO t1 VALUES (2, '10:01:02.000001'); INSERT INTO t1 VALUES (3, '10:11:02'); INSERT INTO t1 VALUES (3, '10:11:02.000001'); SELECT MIN(b), MAX(b) FROM t1; MIN(b) MAX(b) 00:01:02.000000 10:11:02.000001 SELECT a, MIN(b), MAX(b) FROM t1 GROUP BY a; a MIN(b) MAX(b) 1 00:01:02.000000 00:01:02.000001 2 10:01:02.000000 10:01:02.000001 3 10:11:02.000000 10:11:02.000001 UPDATE t1 SET b=-b; SELECT MIN(b), MAX(b) FROM t1; MIN(b) MAX(b) -10:11:02.000001 -00:01:02.000000 SELECT a, MIN(b), MAX(b) FROM t1 GROUP BY a; a MIN(b) MAX(b) 1 -00:01:02.000001 -00:01:02.000000 2 -10:01:02.000001 -10:01:02.000000 3 -10:11:02.000001 -10:11:02.000000 DROP TABLE t1; # # Testing MIN(TIME) and MAX(TIME) in arithmetic expressions and CAST # This covers Item_sum_hybrid::val_int(), val_real(), val_decimal() # CREATE TABLE t1 ( t0 TIME, t1 TIME(1), t2 TIME(2), t3 TIME(3), t4 TIME(4), t5 TIME(5), t6 TIME(6) ); INSERT INTO t1 VALUES ( '10:10:10', '10:10:10.9', '10:10:10.99', '10:10:10.999', '10:10:10.9999', '10:10:10.99999', '10:10:10.999999' ); CREATE TABLE t2 AS SELECT MAX(t0) + 1, MAX(t1) + 1, MAX(t2) + 1, MAX(t3) + 1, MAX(t4) + 1, MAX(t5) + 1, MAX(t6) + 1 FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra MAX(t0) + 1 int(9) YES NULL MAX(t1) + 1 decimal(9,1) YES NULL MAX(t2) + 1 decimal(10,2) YES NULL MAX(t3) + 1 decimal(11,3) YES NULL MAX(t4) + 1 decimal(12,4) YES NULL MAX(t5) + 1 decimal(13,5) YES NULL MAX(t6) + 1 decimal(14,6) YES NULL SELECT * FROM t2; MAX(t0) + 1 MAX(t1) + 1 MAX(t2) + 1 MAX(t3) + 1 MAX(t4) + 1 MAX(t5) + 1 MAX(t6) + 1 101011 101011.9 101011.99 101011.999 101011.9999 101011.99999 101011.999999 DROP TABLE t2; CREATE TABLE t2 AS SELECT MAX(t0) + 1.1, MAX(t1) + 1.1, MAX(t2) + 1.1, MAX(t3) + 1.1, MAX(t4) + 1.1, MAX(t5) + 1.1, MAX(t6) + 1.1 FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra MAX(t0) + 1.1 decimal(9,1) YES NULL MAX(t1) + 1.1 decimal(9,1) YES NULL MAX(t2) + 1.1 decimal(10,2) YES NULL MAX(t3) + 1.1 decimal(11,3) YES NULL MAX(t4) + 1.1 decimal(12,4) YES NULL MAX(t5) + 1.1 decimal(13,5) YES NULL MAX(t6) + 1.1 decimal(14,6) YES NULL SELECT * FROM t2; MAX(t0) + 1.1 MAX(t1) + 1.1 MAX(t2) + 1.1 MAX(t3) + 1.1 MAX(t4) + 1.1 MAX(t5) + 1.1 MAX(t6) + 1.1 101011.1 101012.0 101012.09 101012.099 101012.0999 101012.09999 101012.099999 DROP TABLE t2; CREATE TABLE t2 AS SELECT MAX(t0) + 1.0e0, MAX(t1) + 1.0e0, MAX(t2) + 1.0e0, MAX(t3) + 1.0e0, MAX(t4) + 1.0e0, MAX(t5) + 1.0e0, MAX(t6) + 1.0e0 FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra MAX(t0) + 1.0e0 double YES NULL MAX(t1) + 1.0e0 double YES NULL MAX(t2) + 1.0e0 double YES NULL MAX(t3) + 1.0e0 double YES NULL MAX(t4) + 1.0e0 double YES NULL MAX(t5) + 1.0e0 double YES NULL MAX(t6) + 1.0e0 double YES NULL SELECT * FROM t2; MAX(t0) + 1.0e0 MAX(t1) + 1.0e0 MAX(t2) + 1.0e0 MAX(t3) + 1.0e0 MAX(t4) + 1.0e0 MAX(t5) + 1.0e0 MAX(t6) + 1.0e0 101011 101011.9 101011.99 101011.999 101011.9999 101011.99999 101011.999999 DROP TABLE t2; SELECT MAX(t0) + 1, MAX(t1) + 1, MAX(t2) + 1, MAX(t3) + 1, MAX(t4) + 1, MAX(t5) + 1, MAX(t6) + 1 FROM t1; MAX(t0) + 1 MAX(t1) + 1 MAX(t2) + 1 MAX(t3) + 1 MAX(t4) + 1 MAX(t5) + 1 MAX(t6) + 1 101011 101011.9 101011.99 101011.999 101011.9999 101011.99999 101011.999999 SELECT CAST(MAX(t0) AS SIGNED), CAST(MAX(t1) AS SIGNED), CAST(MAX(t2) AS SIGNED), CAST(MAX(t3) AS SIGNED), CAST(MAX(t4) AS SIGNED), CAST(MAX(t5) AS SIGNED), CAST(MAX(t6) AS SIGNED) FROM t1; CAST(MAX(t0) AS SIGNED) CAST(MAX(t1) AS SIGNED) CAST(MAX(t2) AS SIGNED) CAST(MAX(t3) AS SIGNED) CAST(MAX(t4) AS SIGNED) CAST(MAX(t5) AS SIGNED) CAST(MAX(t6) AS SIGNED) 101010 101011 101011 101011 101011 101011 101011 DROP TABLE t1; # # Testing LEAST, GREATEST # SELECT LEAST(CAST('00:00:00.1' as TIME(6)), '00:00:01.1') AS a; a 00:00:00.100000 SELECT LEAST(TIME'00:00:00.1', TIME'00:00:00.12') AS a; a 00:00:00.10 SELECT GREATEST(CAST('00:00:00.1' as TIME(6)), '00:00:01.1') AS a; a 00:00:01.1 SELECT GREATEST(TIME'00:00:00.1', TIME'00:00:00.12') AS a; a 00:00:00.12 CREATE TABLE t1 AS SELECT LEAST(TIME'00:00:00.1', TIME'00:00:00.12'), GREATEST(TIME'00:00:00.1', TIME'00:00:00.12'); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `LEAST(TIME'00:00:00.1', TIME'00:00:00.12')` time(2) NOT NULL DEFAULT '00:00:00.00', `GREATEST(TIME'00:00:00.1', TIME'00:00:00.12')` time(2) NOT NULL DEFAULT '00:00:00.00' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; # # Testing INSERT with near-maximum and near-minimum supported values. # SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; Warnings: Warning 3090 Changing sql mode 'NO_AUTO_CREATE_USER' is deprecated. It will be removed in a future release. CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('838:59:59.999999'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('838:59:59'); INSERT INTO t1 VALUES ('838:59:59.0000001'); INSERT INTO t1 VALUES ('838:59:59.0000002'); INSERT INTO t1 VALUES ('838:59:59.0000003'); INSERT INTO t1 VALUES ('838:59:59.0000004'); INSERT INTO t1 VALUES ('838:59:59.0000005'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('838:59:59.0000006'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('838:59:59.0000007'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('838:59:59.0000008'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('838:59:59.0000009'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('838:59:59.1'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('839:00:00'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('-838:59:59'); INSERT INTO t1 VALUES ('-838:59:59.0000001'); INSERT INTO t1 VALUES ('-838:59:59.0000002'); INSERT INTO t1 VALUES ('-838:59:59.0000003'); INSERT INTO t1 VALUES ('-838:59:59.0000004'); INSERT INTO t1 VALUES ('-838:59:59.0000005'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('-838:59:59.0000006'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('-838:59:59.0000007'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('-838:59:59.0000008'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('-838:59:59.0000009'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('-838:59:59.000001'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('-838:59:59.999999'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('-839:00:00'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('-839:00:00.1'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('-838:59:59.999999'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT * FROM t1; a 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 DROP TABLE t1; # # Testing integer INSERT value # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES (20203); INSERT INTO t1 VALUES (8385959); INSERT INTO t1 VALUES (8390000); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-8385959); INSERT INTO t1 VALUES (-8390000); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT * FROM t1; a 02:02:03.000000 838:59:59.000000 838:59:59.000000 -838:59:59.000000 -838:59:59.000000 DROP TABLE t1; # # Testing decimal INSERT values # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES (20203.4); INSERT INTO t1 VALUES (20203.45); INSERT INTO t1 VALUES (20203.456); INSERT INTO t1 VALUES (20203.4567); INSERT INTO t1 VALUES (20203.45678); INSERT INTO t1 VALUES (20203.456789); INSERT INTO t1 VALUES (20203.4567894); INSERT INTO t1 VALUES (20203.4567895); INSERT INTO t1 VALUES (20203.4567896); INSERT INTO t1 VALUES (20203.456789678); INSERT INTO t1 VALUES (8385959.999999); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (8385959.000000); INSERT INTO t1 VALUES (8385959.0000001); INSERT INTO t1 VALUES (8385959.0000002); INSERT INTO t1 VALUES (8385959.0000003); INSERT INTO t1 VALUES (8385959.0000004); INSERT INTO t1 VALUES (8385959.0000005); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (8385959.0000006); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (8385959.0000007); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (8385959.0000008); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (8385959.0000009); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (8385959.000001); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (8390000.000000); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-8385959.000000); INSERT INTO t1 VALUES (-8385959.0000001); INSERT INTO t1 VALUES (-8385959.0000002); INSERT INTO t1 VALUES (-8385959.0000003); INSERT INTO t1 VALUES (-8385959.0000004); INSERT INTO t1 VALUES (-8385959.0000005); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-8385959.0000006); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-8385959.0000007); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-8385959.0000008); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-8385959.0000009); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-8385959.000001); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-8390000.000000); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-8385959.999999); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT * FROM t1; a 02:02:03.400000 02:02:03.450000 02:02:03.456000 02:02:03.456700 02:02:03.456780 02:02:03.456789 02:02:03.456789 02:02:03.456790 02:02:03.456790 02:02:03.456790 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 DROP TABLE t1; # # Testing double INSERT values # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES (123.4567e-3); INSERT INTO t1 VALUES (123.4567e-2); INSERT INTO t1 VALUES (123.4567e-1); INSERT INTO t1 VALUES (123.4567e0); INSERT INTO t1 VALUES (123.4567e1); INSERT INTO t1 VALUES (123.4567e2); INSERT INTO t1 VALUES (123.4567e3); INSERT INTO t1 VALUES (8385959.999999e0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (8385959e0); INSERT INTO t1 VALUES (8385959.1e0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (8390000.0e0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-8385959.0e0); INSERT INTO t1 VALUES (-8385959.1e0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-8385959.999999e0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-8390000.0e0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT * FROM t1; a 00:00:00.123457 00:00:01.234567 00:00:12.345670 00:01:23.456700 00:12:34.567000 01:23:45.670000 12:34:56.700000 838:59:59.000000 838:59:59.000000 838:59:59.000000 838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 -838:59:59.000000 DROP TABLE t1; SET sql_mode = default; # # Testing UPDATE between TIME(6) and TIME/INT/DECIMAL/FLOAT # CREATE TABLE t1 (t0 TIME, t6 TIME(6), i INT, d DECIMAL(20,6), f DOUBLE); INSERT INTO t1 (t0) VALUES ('11:22:33'); UPDATE t1 SET t6=t0, i=t0, d=t0, f=t0; SELECT * FROM t1; t0 t6 i d f 11:22:33 11:22:33.000000 112233 112233.000000 112233 UPDATE t1 SET t6='11:22:33.123'; UPDATE t1 SET t0=t6, i=t6, d=t6, f=t6; SELECT * FROM t1; t0 t6 i d f 11:22:33 11:22:33.123000 112233 112233.123000 112233.123 UPDATE t1 SET i=112233, d=112233.123, f=112233.123; UPDATE t1 SET t6=i; SELECT t6 FROM t1; t6 11:22:33.000000 UPDATE t1 SET t6=d; SELECT t6 FROM t1; t6 11:22:33.123000 UPDATE t1 SET t6=f; SELECT t6 FROM t1; t6 11:22:33.123000 DROP TABLE t1; # # Testing JOIN with comparison between TIME(6) and INT # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('11:22:33'); INSERT INTO t1 VALUES ('11:22:33.123'); INSERT INTO t1 VALUES ('-11:22:33'); INSERT INTO t1 VALUES ('-11:22:33.123456'); CREATE TABLE t2 (b INT); INSERT INTO t2 VALUES (112233); INSERT INTO t2 VALUES (-112233); SELECT * FROM t1, t2 WHERE a=b; a b 11:22:33.000000 112233 -11:22:33.000000 -112233 DROP TABLE t1, t2; # # Testing JOIN with comparison between TIME(6) and DECIMAL(20,6) # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('11:22:33'); INSERT INTO t1 VALUES ('11:22:33.123'); INSERT INTO t1 VALUES ('-11:22:33'); INSERT INTO t1 VALUES ('-11:22:33.123456'); CREATE TABLE t2 (b DECIMAL(20,6)); INSERT INTO t2 VALUES (112233.123); INSERT INTO t2 VALUES (-112233.123456); SELECT * FROM t1, t2 WHERE a=b; a b 11:22:33.123000 112233.123000 -11:22:33.123456 -112233.123456 DROP TABLE t1, t2; # # Testing JOIN with comparison between TIME(6) and DECIMAL(20,3) # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('11:22:33'); INSERT INTO t1 VALUES ('11:22:33.123'); INSERT INTO t1 VALUES ('-11:22:33'); INSERT INTO t1 VALUES ('-11:22:33.123456'); CREATE TABLE t2 (b DECIMAL(20,3)); INSERT INTO t2 VALUES (112233.123); INSERT INTO t2 VALUES (-112233.123456); Warnings: Note 1265 Data truncated for column 'b' at row 1 SELECT * FROM t1, t2 WHERE a=b; a b 11:22:33.123000 112233.123 DROP TABLE t1, t2; # # Testing JOIN with comparison between TIME(6) and DOUBLE # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('11:22:33'); INSERT INTO t1 VALUES ('11:22:33.123'); INSERT INTO t1 VALUES ('-11:22:33'); INSERT INTO t1 VALUES ('-11:22:33.123456'); CREATE TABLE t2 (b DOUBLE); INSERT INTO t2 VALUES (112233.123); INSERT INTO t2 VALUES (-112233.123456); SELECT * FROM t1, t2 WHERE a=b; a b 11:22:33.123000 112233.123 -11:22:33.123456 -112233.123456 DROP TABLE t1, t2; # # Testing JOIN with comparison between TIME(6) and VARCHAR # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('11:22:33'); INSERT INTO t1 VALUES ('11:22:33.123'); INSERT INTO t1 VALUES ('-11:22:33'); INSERT INTO t1 VALUES ('-11:22:33.123456'); CREATE TABLE t2 (b VARCHAR(20)); INSERT INTO t2 VALUES ('11:22:33.123'); INSERT INTO t2 VALUES ('-11:22:33.123456'); SELECT * FROM t1, t2 WHERE a=b; a b -11:22:33.123456 -11:22:33.123456 DROP TABLE t1, t2; # # Testing arithmetic with INT, DECIMAL, FLOAT # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('-00:00:00.000001'); INSERT INTO t1 VALUES ('00:00:00.000000'); INSERT INTO t1 VALUES ('00:00:00.000001'); SELECT a, a + 0, a + 1, a + 1.0, a + 1e0 FROM t1; a a + 0 a + 1 a + 1.0 a + 1e0 -00:00:00.000001 -0.000001 0.999999 0.999999 0.999999 00:00:00.000000 0.000000 1.000000 1.000000 1 00:00:00.000001 0.000001 1.000001 1.000001 1.000001 CREATE TABLE t2 AS SELECT a + 1 AS i, a + 1.0 AS d, a + 1e0 AS f FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `i` decimal(14,6) DEFAULT NULL, `d` decimal(14,6) DEFAULT NULL, `f` double DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1, t2; # # Testing that TIME behaves as INT/DECIMAL for numeric arithmetic # CREATE TABLE t1 (t0 TIME, t3 TIME(3), t6 TIME(6)); CREATE TABLE t2 AS SELECT t0 + 1, t3 + 1, t6 + 1, t0 - 1, t3 - 1, t6 - 1, t0 * 1, t3 * 1, t6 * 1, t0 / 1, t3 / 1, t6 / 1, TIME'10:10:10' + 1, TIME'10:10:10.123' + 1, TIME'10:10:10.123456' + 1, TIME'10:10:10' - 1, TIME'10:10:10.123' - 1, TIME'10:10:10.123456' - 1, TIME'10:10:10' * 1, TIME'10:10:10.123' * 1, TIME'10:10:10.123456' * 1, TIME'10:10:10' / 1, TIME'10:10:10.123' / 1, TIME'10:10:10.123456' / 1 FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `t0 + 1` int(9) DEFAULT NULL, `t3 + 1` decimal(11,3) DEFAULT NULL, `t6 + 1` decimal(14,6) DEFAULT NULL, `t0 - 1` int(9) DEFAULT NULL, `t3 - 1` decimal(11,3) DEFAULT NULL, `t6 - 1` decimal(14,6) DEFAULT NULL, `t0 * 1` int(9) DEFAULT NULL, `t3 * 1` decimal(11,3) DEFAULT NULL, `t6 * 1` decimal(14,6) DEFAULT NULL, `t0 / 1` decimal(11,4) DEFAULT NULL, `t3 / 1` decimal(14,7) DEFAULT NULL, `t6 / 1` decimal(17,10) DEFAULT NULL, `TIME'10:10:10' + 1` int(9) NOT NULL DEFAULT '0', `TIME'10:10:10.123' + 1` decimal(11,3) NOT NULL DEFAULT '0.000', `TIME'10:10:10.123456' + 1` decimal(14,6) NOT NULL DEFAULT '0.000000', `TIME'10:10:10' - 1` int(9) NOT NULL DEFAULT '0', `TIME'10:10:10.123' - 1` decimal(11,3) NOT NULL DEFAULT '0.000', `TIME'10:10:10.123456' - 1` decimal(14,6) NOT NULL DEFAULT '0.000000', `TIME'10:10:10' * 1` int(9) NOT NULL DEFAULT '0', `TIME'10:10:10.123' * 1` decimal(11,3) NOT NULL DEFAULT '0.000', `TIME'10:10:10.123456' * 1` decimal(14,6) NOT NULL DEFAULT '0.000000', `TIME'10:10:10' / 1` decimal(11,4) DEFAULT NULL, `TIME'10:10:10.123' / 1` decimal(14,7) DEFAULT NULL, `TIME'10:10:10.123456' / 1` decimal(17,10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # # Testing that TIME behaves as DECIMAL for SUM() and AVG() # SET @t='800:11:12.123456'; CREATE TABLE t1 (t0 TIME, t3 TIME(3), t6 TIME(6)); INSERT INTO t1 VALUES (@t, @t, @t); SELECT MIN(t0), MAX(t0), AVG(t0), SUM(t0) FROM t1; MIN(t0) 800:11:12 MAX(t0) 800:11:12 AVG(t0) 8001112.0000 SUM(t0) 8001112 SELECT MIN(t3), MAX(t3), AVG(t3), SUM(t3) FROM t1; MIN(t3) 800:11:12.123 MAX(t3) 800:11:12.123 AVG(t3) 8001112.1230000 SUM(t3) 8001112.123 SELECT MIN(t6), MAX(t6), AVG(t6), SUM(t6) FROM t1; MIN(t6) 800:11:12.123456 MAX(t6) 800:11:12.123456 AVG(t6) 8001112.1234560000 SUM(t6) 8001112.123456 SET @t='800:11:12.000000'; INSERT INTO t1 VALUES (@t, @t, @t); SELECT MIN(t0), MAX(t0), AVG(t0), SUM(t0) FROM t1; MIN(t0) 800:11:12 MAX(t0) 800:11:12 AVG(t0) 8001112.0000 SUM(t0) 16002224 SELECT MIN(t3), MAX(t3), AVG(t3), SUM(t3) FROM t1; MIN(t3) 800:11:12.000 MAX(t3) 800:11:12.123 AVG(t3) 8001112.0615000 SUM(t3) 16002224.123 SELECT MIN(t6), MAX(t6), AVG(t6), SUM(t6) FROM t1; MIN(t6) 800:11:12.000000 MAX(t6) 800:11:12.123456 AVG(t6) 8001112.0617280000 SUM(t6) 16002224.123456 CREATE TABLE t2 AS SELECT MIN(t0), MAX(t0), AVG(t0), SUM(t0), MIN(t3), MAX(t3), AVG(t3), SUM(t3), MIN(t6), MAX(t6), AVG(t6), SUM(t6) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `MIN(t0)` time DEFAULT NULL, `MAX(t0)` time DEFAULT NULL, `AVG(t0)` decimal(11,4) DEFAULT NULL, `SUM(t0)` decimal(29,0) DEFAULT NULL, `MIN(t3)` time(3) DEFAULT NULL, `MAX(t3)` time(3) DEFAULT NULL, `AVG(t3)` decimal(14,7) DEFAULT NULL, `SUM(t3)` decimal(32,3) DEFAULT NULL, `MIN(t6)` time(6) DEFAULT NULL, `MAX(t6)` time(6) DEFAULT NULL, `AVG(t6)` decimal(17,10) DEFAULT NULL, `SUM(t6)` decimal(35,6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # # Testing functions ADDTIME, SUBTIME, TIMEDIFF # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('-01:00:00.000001'); INSERT INTO t1 VALUES ('-01:00:00.000000'); INSERT INTO t1 VALUES ('-00:00:00.000001'); INSERT INTO t1 VALUES ('00:00:00.000000'); INSERT INTO t1 VALUES ('00:00:00.000001'); INSERT INTO t1 VALUES ('01:00:00.000000'); INSERT INTO t1 VALUES ('01:00:00.000001'); SELECT ADDTIME(a, '00:00:00.000001') FROM t1; ADDTIME(a, '00:00:00.000001') -01:00:00.000000 -00:59:59.999999 00:00:00.000000 00:00:00.000001 00:00:00.000002 01:00:00.000001 01:00:00.000002 SELECT ADDTIME(a, '10:00:00.000001') FROM t1; ADDTIME(a, '10:00:00.000001') 09:00:00.000000 09:00:00.000001 10:00:00.000000 10:00:00.000001 10:00:00.000002 11:00:00.000001 11:00:00.000002 SELECT ADDTIME(a, a) FROM t1; ADDTIME(a, a) -02:00:00.000002 -02:00:00.000000 -00:00:00.000002 00:00:00.000000 00:00:00.000002 02:00:00.000000 02:00:00.000002 SELECT SUBTIME(a, '00:00:00.000001') FROM t1; SUBTIME(a, '00:00:00.000001') -01:00:00.000002 -01:00:00.000001 -00:00:00.000002 -00:00:00.000001 00:00:00.000000 00:59:59.999999 01:00:00.000000 SELECT SUBTIME(a, '10:00:00.000001') FROM t1; SUBTIME(a, '10:00:00.000001') -11:00:00.000002 -11:00:00.000001 -10:00:00.000002 -10:00:00.000001 -10:00:00.000000 -09:00:00.000001 -09:00:00.000000 SELECT SUBTIME(a, a) FROM t1; SUBTIME(a, a) 00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 SELECT TIMEDIFF(a, '00:00:00.000001') FROM t1; TIMEDIFF(a, '00:00:00.000001') -01:00:00.000002 -01:00:00.000001 -00:00:00.000002 -00:00:00.000001 00:00:00.000000 00:59:59.999999 01:00:00.000000 SELECT TIMEDIFF('00:00:00.000001', a) FROM t1; TIMEDIFF('00:00:00.000001', a) 01:00:00.000002 01:00:00.000001 00:00:00.000002 00:00:00.000001 00:00:00.000000 -00:59:59.999999 -01:00:00.000000 SELECT TIMEDIFF(a, a) FROM t1; TIMEDIFF(a, a) 00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 00:00:00.000000 SELECT TIMEDIFF(CAST(a AS TIME(0)), CAST('10:10:10' AS TIME(0))) FROM t1; TIMEDIFF(CAST(a AS TIME(0)), CAST('10:10:10' AS TIME(0))) -11:10:10 -11:10:10 -10:10:10 -10:10:10 -10:10:10 -09:10:10 -09:10:10 CREATE TABLE t2 AS SELECT ADDTIME(a, '00:00:00.000001'), ADDTIME(a,a), SUBTIME(a, '00:00:00.000001'), SUBTIME(a,a), TIMEDIFF(a,'00:00:00.000001'), TIMEDIFF(a,a), TIMEDIFF(CAST(a AS TIME(0)), CAST('10:10:10' AS TIME(0))) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `ADDTIME(a, '00:00:00.000001')` time(6) DEFAULT NULL, `ADDTIME(a,a)` time(6) DEFAULT NULL, `SUBTIME(a, '00:00:00.000001')` time(6) DEFAULT NULL, `SUBTIME(a,a)` time(6) DEFAULT NULL, `TIMEDIFF(a,'00:00:00.000001')` time(6) DEFAULT NULL, `TIMEDIFF(a,a)` time(6) DEFAULT NULL, `TIMEDIFF(CAST(a AS TIME(0)), CAST('10:10:10' AS TIME(0)))` time DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT MAX(ADDTIME(a, '00:00:00.1')) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `MAX(ADDTIME(a, '00:00:00.1'))` time(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t2; MAX(ADDTIME(a, '00:00:00.1')) 01:00:00.100001 DROP TABLE t2; DROP TABLE t1; SELECT TIMEDIFF(TIME'00:00:00', TIME'00:00:00'); TIMEDIFF(TIME'00:00:00', TIME'00:00:00') 00:00:00 SELECT TIMEDIFF(TIME'00:00:00', TIME'00:00:00.0'); TIMEDIFF(TIME'00:00:00', TIME'00:00:00.0') 00:00:00.0 SELECT TIMEDIFF(TIME'00:00:00', TIME'00:00:00.00'); TIMEDIFF(TIME'00:00:00', TIME'00:00:00.00') 00:00:00.00 SELECT TIMEDIFF(TIME'00:00:00', TIME'00:00:00.000'); TIMEDIFF(TIME'00:00:00', TIME'00:00:00.000') 00:00:00.000 SELECT TIMEDIFF(TIME'00:00:00', TIME'00:00:00.0000'); TIMEDIFF(TIME'00:00:00', TIME'00:00:00.0000') 00:00:00.0000 SELECT TIMEDIFF(TIME'00:00:00', TIME'00:00:00.00000'); TIMEDIFF(TIME'00:00:00', TIME'00:00:00.00000') 00:00:00.00000 SELECT TIMEDIFF(TIME'00:00:00', TIME'00:00:00.000000'); TIMEDIFF(TIME'00:00:00', TIME'00:00:00.000000') 00:00:00.000000 SELECT TIMEDIFF(TIME'00:00:00.0', TIME'00:00:00'); TIMEDIFF(TIME'00:00:00.0', TIME'00:00:00') 00:00:00.0 SELECT TIMEDIFF(TIME'00:00:00.00', TIME'00:00:00'); TIMEDIFF(TIME'00:00:00.00', TIME'00:00:00') 00:00:00.00 SELECT TIMEDIFF(TIME'00:00:00.000', TIME'00:00:00'); TIMEDIFF(TIME'00:00:00.000', TIME'00:00:00') 00:00:00.000 SELECT TIMEDIFF(TIME'00:00:00.0000', TIME'00:00:00'); TIMEDIFF(TIME'00:00:00.0000', TIME'00:00:00') 00:00:00.0000 SELECT TIMEDIFF(TIME'00:00:00.00000', TIME'00:00:00'); TIMEDIFF(TIME'00:00:00.00000', TIME'00:00:00') 00:00:00.00000 SELECT TIMEDIFF(TIME'00:00:00.000000', TIME'00:00:00'); TIMEDIFF(TIME'00:00:00.000000', TIME'00:00:00') 00:00:00.000000 CREATE TABLE t1 AS SELECT TIMEDIFF(TIME'00:00:00', TIME'00:00:00'), TIMEDIFF(TIME'00:00:00', TIME'00:00:00.0'), TIMEDIFF(TIME'00:00:00', TIME'00:00:00.00'), TIMEDIFF(TIME'00:00:00', TIME'00:00:00.000'), TIMEDIFF(TIME'00:00:00', TIME'00:00:00.0000'), TIMEDIFF(TIME'00:00:00', TIME'00:00:00.00000'), TIMEDIFF(TIME'00:00:00', TIME'00:00:00.000000'), TIMEDIFF(TIME'00:00:00.0', TIME'00:00:00'), TIMEDIFF(TIME'00:00:00.00', TIME'00:00:00'), TIMEDIFF(TIME'00:00:00.000', TIME'00:00:00'), TIMEDIFF(TIME'00:00:00.0000', TIME'00:00:00'), TIMEDIFF(TIME'00:00:00.00000', TIME'00:00:00'), TIMEDIFF(TIME'00:00:00.000000', TIME'00:00:00'); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `TIMEDIFF(TIME'00:00:00', TIME'00:00:00')` time DEFAULT NULL, `TIMEDIFF(TIME'00:00:00', TIME'00:00:00.0')` time(1) DEFAULT NULL, `TIMEDIFF(TIME'00:00:00', TIME'00:00:00.00')` time(2) DEFAULT NULL, `TIMEDIFF(TIME'00:00:00', TIME'00:00:00.000')` time(3) DEFAULT NULL, `TIMEDIFF(TIME'00:00:00', TIME'00:00:00.0000')` time(4) DEFAULT NULL, `TIMEDIFF(TIME'00:00:00', TIME'00:00:00.00000')` time(5) DEFAULT NULL, `TIMEDIFF(TIME'00:00:00', TIME'00:00:00.000000')` time(6) DEFAULT NULL, `TIMEDIFF(TIME'00:00:00.0', TIME'00:00:00')` time(1) DEFAULT NULL, `TIMEDIFF(TIME'00:00:00.00', TIME'00:00:00')` time(2) DEFAULT NULL, `TIMEDIFF(TIME'00:00:00.000', TIME'00:00:00')` time(3) DEFAULT NULL, `TIMEDIFF(TIME'00:00:00.0000', TIME'00:00:00')` time(4) DEFAULT NULL, `TIMEDIFF(TIME'00:00:00.00000', TIME'00:00:00')` time(5) DEFAULT NULL, `TIMEDIFF(TIME'00:00:00.000000', TIME'00:00:00')` time(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; SELECT ADDTIME(TIME'00:00:00', TIME'00:00:00'); ADDTIME(TIME'00:00:00', TIME'00:00:00') 00:00:00 SELECT ADDTIME(TIME'00:00:00', TIME'00:00:00.0'); ADDTIME(TIME'00:00:00', TIME'00:00:00.0') 00:00:00.0 SELECT ADDTIME(TIME'00:00:00', TIME'00:00:00.00'); ADDTIME(TIME'00:00:00', TIME'00:00:00.00') 00:00:00.00 SELECT ADDTIME(TIME'00:00:00', TIME'00:00:00.000'); ADDTIME(TIME'00:00:00', TIME'00:00:00.000') 00:00:00.000 SELECT ADDTIME(TIME'00:00:00', TIME'00:00:00.0000'); ADDTIME(TIME'00:00:00', TIME'00:00:00.0000') 00:00:00.0000 SELECT ADDTIME(TIME'00:00:00', TIME'00:00:00.00000'); ADDTIME(TIME'00:00:00', TIME'00:00:00.00000') 00:00:00.00000 SELECT ADDTIME(TIME'00:00:00', TIME'00:00:00.000000'); ADDTIME(TIME'00:00:00', TIME'00:00:00.000000') 00:00:00.000000 SELECT ADDTIME(TIME'00:00:00.0', TIME'00:00:00'); ADDTIME(TIME'00:00:00.0', TIME'00:00:00') 00:00:00.0 SELECT ADDTIME(TIME'00:00:00.00', TIME'00:00:00'); ADDTIME(TIME'00:00:00.00', TIME'00:00:00') 00:00:00.00 SELECT ADDTIME(TIME'00:00:00.000', TIME'00:00:00'); ADDTIME(TIME'00:00:00.000', TIME'00:00:00') 00:00:00.000 SELECT ADDTIME(TIME'00:00:00.0000', TIME'00:00:00'); ADDTIME(TIME'00:00:00.0000', TIME'00:00:00') 00:00:00.0000 SELECT ADDTIME(TIME'00:00:00.00000', TIME'00:00:00'); ADDTIME(TIME'00:00:00.00000', TIME'00:00:00') 00:00:00.00000 SELECT ADDTIME(TIME'00:00:00.000000', TIME'00:00:00'); ADDTIME(TIME'00:00:00.000000', TIME'00:00:00') 00:00:00.000000 SELECT SUBTIME(TIME'00:00:00', TIME'00:00:00'); SUBTIME(TIME'00:00:00', TIME'00:00:00') 00:00:00 SELECT SUBTIME(TIME'00:00:00', TIME'00:00:00.0'); SUBTIME(TIME'00:00:00', TIME'00:00:00.0') 00:00:00.0 SELECT SUBTIME(TIME'00:00:00', TIME'00:00:00.00'); SUBTIME(TIME'00:00:00', TIME'00:00:00.00') 00:00:00.00 SELECT SUBTIME(TIME'00:00:00', TIME'00:00:00.000'); SUBTIME(TIME'00:00:00', TIME'00:00:00.000') 00:00:00.000 SELECT SUBTIME(TIME'00:00:00', TIME'00:00:00.0000'); SUBTIME(TIME'00:00:00', TIME'00:00:00.0000') 00:00:00.0000 SELECT SUBTIME(TIME'00:00:00', TIME'00:00:00.00000'); SUBTIME(TIME'00:00:00', TIME'00:00:00.00000') 00:00:00.00000 SELECT SUBTIME(TIME'00:00:00', TIME'00:00:00.000000'); SUBTIME(TIME'00:00:00', TIME'00:00:00.000000') 00:00:00.000000 SELECT SUBTIME(TIME'00:00:00.0', TIME'00:00:00'); SUBTIME(TIME'00:00:00.0', TIME'00:00:00') 00:00:00.0 SELECT SUBTIME(TIME'00:00:00.00', TIME'00:00:00'); SUBTIME(TIME'00:00:00.00', TIME'00:00:00') 00:00:00.00 SELECT SUBTIME(TIME'00:00:00.000', TIME'00:00:00'); SUBTIME(TIME'00:00:00.000', TIME'00:00:00') 00:00:00.000 SELECT SUBTIME(TIME'00:00:00.0000', TIME'00:00:00'); SUBTIME(TIME'00:00:00.0000', TIME'00:00:00') 00:00:00.0000 SELECT SUBTIME(TIME'00:00:00.00000', TIME'00:00:00'); SUBTIME(TIME'00:00:00.00000', TIME'00:00:00') 00:00:00.00000 SELECT SUBTIME(TIME'00:00:00.000000', TIME'00:00:00'); SUBTIME(TIME'00:00:00.000000', TIME'00:00:00') 00:00:00.000000 # # Testing TIME + INTERVAL # SELECT CAST('00:00:00' AS TIME) + INTERVAL 2000 HOUR; CAST('00:00:00' AS TIME) + INTERVAL 2000 HOUR NULL Warnings: Warning 1441 Datetime function: time field overflow SELECT CAST('00:00:00' AS TIME) + INTERVAL 34 DAY; CAST('00:00:00' AS TIME) + INTERVAL 34 DAY 816:00:00 SELECT CAST('00:00:00' AS TIME) + INTERVAL 35 DAY; CAST('00:00:00' AS TIME) + INTERVAL 35 DAY NULL Warnings: Warning 1441 Datetime function: time field overflow SELECT CAST('00:00:00' AS TIME) + INTERVAL 1 MONTH; CAST('00:00:00' AS TIME) + INTERVAL 1 MONTH NULL Warnings: Warning 1441 Datetime function: time field overflow SELECT CAST('00:00:00' AS TIME) + INTERVAL 1 YEAR; CAST('00:00:00' AS TIME) + INTERVAL 1 YEAR NULL Warnings: Warning 1441 Datetime function: time field overflow SET @@timestamp=UNIX_TIMESTAMP('2001-01-01 00:00:00'); SELECT CAST(CAST('00:00:00.123456' AS TIME(6)) + INTERVAL 1 DAY AS DATETIME(6)); CAST(CAST('00:00:00.123456' AS TIME(6)) + INTERVAL 1 DAY AS DATETIME(6)) 2001-01-02 00:00:00.123456 SET @@timestamp=default; SELECT CAST(CAST('2001-01-01 00:00:00.123456' AS DATETIME(6)) + INTERVAL 30 HOUR AS TIME(6)); CAST(CAST('2001-01-01 00:00:00.123456' AS DATETIME(6)) + INTERVAL 30 HOUR AS TIME(6)) 06:00:00.123456 CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('-10:00:00.1'), ('00:00:00.1'), ('10:00:00.1'); SELECT a, a + INTERVAL 1 HOUR, a - INTERVAL 1 HOUR FROM t1; a a + INTERVAL 1 HOUR a - INTERVAL 1 HOUR -10:00:00.100000 -09:00:00.100000 -11:00:00.100000 00:00:00.100000 01:00:00.100000 -00:59:59.900000 10:00:00.100000 11:00:00.100000 09:00:00.100000 SELECT a, a + INTERVAL 1 SECOND, a - INTERVAL 1 SECOND FROM t1; a a + INTERVAL 1 SECOND a - INTERVAL 1 SECOND -10:00:00.100000 -09:59:59.100000 -10:00:01.100000 00:00:00.100000 00:00:01.100000 -00:00:00.900000 10:00:00.100000 10:00:01.100000 09:59:59.100000 SELECT a, a + INTERVAL 1.1 SECOND, a - INTERVAL 1.1 SECOND FROM t1; a a + INTERVAL 1.1 SECOND a - INTERVAL 1.1 SECOND -10:00:00.100000 -09:59:59.000000 -10:00:01.200000 00:00:00.100000 00:00:01.200000 -00:00:01.000000 10:00:00.100000 10:00:01.200000 09:59:59.000000 CREATE TABLE t2 AS SELECT a + INTERVAL 1 HOUR, a - INTERVAL 1 HOUR, a + INTERVAL 1 SECOND, a - INTERVAL 1 SECOND, a + INTERVAL 1.1 SECOND, a - INTERVAL 1.1 SECOND FROM t1; DESCRIBE t2; Field Type Null Key Default Extra a + INTERVAL 1 HOUR time(6) YES NULL a - INTERVAL 1 HOUR time(6) YES NULL a + INTERVAL 1 SECOND time(6) YES NULL a - INTERVAL 1 SECOND time(6) YES NULL a + INTERVAL 1.1 SECOND time(6) YES NULL a - INTERVAL 1.1 SECOND time(6) YES NULL DROP TABLE t2; ALTER TABLE t1 MODIFY a TIME; SELECT a, a + INTERVAL 1 HOUR, a - INTERVAL 1 HOUR FROM t1; a a + INTERVAL 1 HOUR a - INTERVAL 1 HOUR -10:00:00 -09:00:00 -11:00:00 00:00:00 01:00:00 -01:00:00 10:00:00 11:00:00 09:00:00 SELECT a, a + INTERVAL 1 SECOND, a - INTERVAL 1 SECOND FROM t1; a a + INTERVAL 1 SECOND a - INTERVAL 1 SECOND -10:00:00 -09:59:59 -10:00:01 00:00:00 00:00:01 -00:00:01 10:00:00 10:00:01 09:59:59 SELECT a, a + INTERVAL 1.1 SECOND, a - INTERVAL 1.1 SECOND FROM t1; a a + INTERVAL 1.1 SECOND a - INTERVAL 1.1 SECOND -10:00:00 -09:59:58.9 -10:00:01.1 00:00:00 00:00:01.1 -00:00:01.1 10:00:00 10:00:01.1 09:59:58.9 CREATE TABLE t2 AS SELECT a + INTERVAL 1 HOUR, a - INTERVAL 1 HOUR, a + INTERVAL 1 SECOND, a - INTERVAL 1 SECOND, a + INTERVAL 1.1 SECOND, a - INTERVAL 1.1 SECOND FROM t1; DESCRIBE t2; Field Type Null Key Default Extra a + INTERVAL 1 HOUR time YES NULL a - INTERVAL 1 HOUR time YES NULL a + INTERVAL 1 SECOND time YES NULL a - INTERVAL 1 SECOND time YES NULL a + INTERVAL 1.1 SECOND time(1) YES NULL a - INTERVAL 1.1 SECOND time(1) YES NULL DROP TABLE t2; DROP TABLE t1; # # Testing SEC_TO_TIME # CREATE TABLE t1 AS SELECT SEC_TO_TIME(3661), CAST(SEC_TO_TIME(3661) AS CHAR); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `SEC_TO_TIME(3661)` time DEFAULT NULL, `CAST(SEC_TO_TIME(3661) AS CHAR)` varchar(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t1; SEC_TO_TIME(3661) CAST(SEC_TO_TIME(3661) AS CHAR) 01:01:01 01:01:01 DROP TABLE t1; CREATE TABLE t1 AS SELECT SEC_TO_TIME(3661.1), SEC_TO_TIME(3661.11), SEC_TO_TIME(3661.111), SEC_TO_TIME(3661.1111), SEC_TO_TIME(3661.11111), SEC_TO_TIME(3661.111111), SEC_TO_TIME(3661.1111111); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `SEC_TO_TIME(3661.1)` time(1) DEFAULT NULL, `SEC_TO_TIME(3661.11)` time(2) DEFAULT NULL, `SEC_TO_TIME(3661.111)` time(3) DEFAULT NULL, `SEC_TO_TIME(3661.1111)` time(4) DEFAULT NULL, `SEC_TO_TIME(3661.11111)` time(5) DEFAULT NULL, `SEC_TO_TIME(3661.111111)` time(6) DEFAULT NULL, `SEC_TO_TIME(3661.1111111)` time(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t1; SEC_TO_TIME(3661.1) SEC_TO_TIME(3661.11) SEC_TO_TIME(3661.111) SEC_TO_TIME(3661.1111) SEC_TO_TIME(3661.11111) SEC_TO_TIME(3661.111111) SEC_TO_TIME(3661.1111111) 01:01:01.1 01:01:01.11 01:01:01.111 01:01:01.1111 01:01:01.11111 01:01:01.111111 01:01:01.111111 DROP TABLE t1; # # Testing copy from TIME to TIME(6) and vice versa # CREATE TABLE t1 (a TIME(6), b TIME); INSERT INTO t1 VALUES ('01:02:03.123456', '00:00:00'); UPDATE t1 SET b=a; SELECT * FROM t1; a b 01:02:03.123456 01:02:03 UPDATE t1 SET b='10:11:12'; UPDATE t1 SET a=b; SELECT * FROM t1; a b 10:11:12.000000 10:11:12 DROP TABLE t1; # # Testing ALTER from TIME(6) to TIME and vice versa # CREATE TABLE t1 (a TIME); INSERT INTO t1 VALUES ('01:02:03'); ALTER TABLE t1 MODIFY a TIME(6); SELECT * FROM t1; a 01:02:03.000000 UPDATE t1 SET a='01:03:03.456'; SELECT * FROM t1; a 01:03:03.456000 ALTER TABLE t1 MODIFY a TIME; SELECT * FROM t1; a 01:03:03 DROP TABLE t1; # # Testing ALTER between TIME and INT # CREATE TABLE t1 (a TIME, b TIME(6)); INSERT INTO t1 VALUES ('11:22:33', '11:22:33'); ALTER TABLE t1 MODIFY a INT, MODIFY b INT; SELECT * FROM t1; a b 112233 112233 UPDATE t1 SET a=112233, b=112233; ALTER TABLE t1 MODIFY a TIME, MODIFY b TIME(6); SELECT * FROM t1; a b 11:22:33 11:22:33.000000 DROP TABLE t1; # # Testing ALTER between TIME and DOUBLE # CREATE TABLE t1 (a TIME, b TIME(6)); INSERT INTO t1 VALUES ('11:22:33', '11:22:33.1234'); ALTER TABLE t1 MODIFY a DOUBLE, MODIFY b DOUBLE; SELECT * FROM t1; a b 112233 112233.1234 UPDATE t1 SET a=112233, b=112233.1234; ALTER TABLE t1 MODIFY a TIME, MODIFY b TIME(6); SELECT * FROM t1; a b 11:22:33 11:22:33.123400 DROP TABLE t1; # # Testing ALTER between TIME and DECIMAL # CREATE TABLE t1 (a TIME, b TIME(6)); INSERT INTO t1 VALUES ('11:22:33', '11:22:33.1234'); ALTER TABLE t1 MODIFY a DECIMAL(20,6), MODIFY b DECIMAL(20,6); SELECT * FROM t1; a b 112233.000000 112233.123400 UPDATE t1 SET a=112233, b=112233.1234; ALTER TABLE t1 MODIFY a TIME, MODIFY b TIME(6); SELECT * FROM t1; a b 11:22:33 11:22:33.123400 DROP TABLE t1; # # Testing ALTER from TIME to various other temporal types # SET @@timestamp=UNIX_TIMESTAMP('2001-01-01 00:00:00'); CREATE TABLE t1 (a TIME(6), b TIME(6), c TIME(6)); INSERT INTO t1 VALUES ('10:10:10.1', '10:10:10.1', '10:10:10.1'); INSERT INTO t1 VALUES ('34:10:10.1', '34:10:10.1', '34:10:10.1'); ALTER TABLE t1 MODIFY a DATETIME(6), MODIFY b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), MODIFY c DATE; Warnings: Note 1292 Incorrect date value: '10:10:10' for column 'c' at row 1 Note 1292 Incorrect date value: '34:10:10' for column 'c' at row 2 SELECT * FROM t1; a b c 2001-01-01 10:10:10.100000 2001-01-01 10:10:10.100000 2001-01-01 2001-01-02 10:10:10.100000 2001-01-02 10:10:10.100000 2001-01-02 DROP TABLE t1; SET @@timestamp=default; # # Testing UPDATE from TIME to various other temporal types # SET @@timestamp=UNIX_TIMESTAMP('2001-01-01 00:00:00'); CREATE TABLE t1 (t6 TIME(6), d DATE, ts6 TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), dt6 DATETIME(6)); INSERT INTO t1 (t6) VALUES ('10:10:10.1'), ('34:10:10.1'); UPDATE t1 SET d=t6, ts6=t6, dt6=t6; Warnings: Note 1292 Incorrect date value: '10:10:10' for column 'd' at row 1 Note 1292 Incorrect date value: '34:10:10' for column 'd' at row 2 SELECT * FROM t1; t6 d ts6 dt6 10:10:10.100000 2001-01-01 2001-01-01 10:10:10.100000 2001-01-01 10:10:10.100000 34:10:10.100000 2001-01-02 2001-01-02 10:10:10.100000 2001-01-02 10:10:10.100000 DROP TABLE t1; SET @@timestamp=default; # # Testing EXPLAIN EXTENDED SELECT for CAST(TIME(N)) # EXPLAIN EXTENDED SELECT CAST('10:10:10' AS TIME); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select cast('10:10:10' as time) AS `CAST('10:10:10' AS TIME)` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS TIME(0)); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select cast('10:10:10' as time) AS `CAST('10:10:10' AS TIME(0))` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS TIME(1)); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select cast('10:10:10' as time(1)) AS `CAST('10:10:10' AS TIME(1))` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS TIME(2)); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select cast('10:10:10' as time(2)) AS `CAST('10:10:10' AS TIME(2))` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS TIME(3)); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select cast('10:10:10' as time(3)) AS `CAST('10:10:10' AS TIME(3))` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS TIME(4)); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select cast('10:10:10' as time(4)) AS `CAST('10:10:10' AS TIME(4))` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS TIME(5)); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select cast('10:10:10' as time(5)) AS `CAST('10:10:10' AS TIME(5))` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS TIME(6)); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select cast('10:10:10' as time(6)) AS `CAST('10:10:10' AS TIME(6))` # # Testing CAST with bad FSPs # SELECT CAST(1 AS TIME(-1)); 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 '-1))' at line 1 SELECT CAST(1 AS TIME(7)); ERROR 42000: Too-big precision 7 specified for 'CAST'. Maximum is 6. SELECT CAST(1 AS TIME(31)); ERROR 42000: Too-big precision 31 specified for 'CAST'. Maximum is 6. # # Testing conversion from TIME(6) to INT # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('10:10:58.499'); INSERT INTO t1 VALUES ('10:10:58.999'); INSERT INTO t1 VALUES ('10:10:59.499'); INSERT INTO t1 VALUES ('10:10:59.999'); INSERT INTO t1 VALUES ('-10:10:58.499'); INSERT INTO t1 VALUES ('-10:10:58.999'); INSERT INTO t1 VALUES ('-10:10:59.499'); INSERT INTO t1 VALUES ('-10:10:59.999'); ALTER TABLE t1 ADD b BIGINT, ADD c TIME(6); UPDATE t1 SET b=a, c=a; ALTER TABLE t1 MODIFY c BIGINT; SELECT a, CAST(a AS SIGNED), b, c FROM t1; a CAST(a AS SIGNED) b c 10:10:58.499000 101058 101058 101058 10:10:58.999000 101059 101059 101059 10:10:59.499000 101059 101059 101059 10:10:59.999000 101100 101100 101100 -10:10:58.499000 -101058 -101058 -101058 -10:10:58.999000 -101059 -101059 -101059 -10:10:59.499000 -101059 -101059 -101059 -10:10:59.999000 -101100 -101100 -101100 DROP TABLE t1; # # Testing INT value and CAST of TIME(6) to various other types # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('11:22:33.123'); INSERT INTO t1 VALUES ('11:22:33.999'); INSERT INTO t1 VALUES ('-11:22:33.123'); INSERT INTO t1 VALUES ('-11:22:33.999'); INSERT INTO t1 VALUES ('-836:56:56.999999'); SELECT a << 0 FROM t1; a << 0 112233 112234 18446744073709439383 18446744073709439382 18446744073701185959 SELECT CAST(a AS SIGNED) FROM t1; CAST(a AS SIGNED) 112233 112234 -112233 -112234 -8365657 SELECT CAST(a AS UNSIGNED) FROM t1; CAST(a AS UNSIGNED) 112233 112234 18446744073709439383 18446744073709439382 18446744073701185959 SELECT CAST(a AS DECIMAL(20,6)) FROM t1; CAST(a AS DECIMAL(20,6)) 112233.123000 112233.999000 -112233.123000 -112233.999000 -8365656.999999 SELECT CAST(a AS DECIMAL(20,3)) FROM t1; CAST(a AS DECIMAL(20,3)) 112233.123 112233.999 -112233.123 -112233.999 -8365657.000 SELECT CAST(a AS CHAR) FROM t1; CAST(a AS CHAR) 11:22:33.123000 11:22:33.999000 -11:22:33.123000 -11:22:33.999000 -836:56:56.999999 SELECT CAST(a AS CHAR(6)) FROM t1; CAST(a AS CHAR(6)) 11:22: 11:22: -11:22 -11:22 -836:5 Warnings: Warning 1292 Truncated incorrect CHAR(6) value: '11:22:33.123000' Warning 1292 Truncated incorrect CHAR(6) value: '11:22:33.999000' Warning 1292 Truncated incorrect CHAR(6) value: '-11:22:33.123000' Warning 1292 Truncated incorrect CHAR(6) value: '-11:22:33.999000' Warning 1292 Truncated incorrect CHAR(6) value: '-836:56:56.999999' CREATE TABLE t2 AS SELECT CAST(a AS CHAR) AS a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(17) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT a, LENGTH(a) FROM t2; a LENGTH(a) 11:22:33.123000 15 11:22:33.999000 15 -11:22:33.123000 16 -11:22:33.999000 16 -836:56:56.999999 17 DROP TABLE t2; DROP TABLE t1; # # Testing DEFAULT value # CREATE TABLE t1 (a TIME(6) NOT NULL DEFAULT '11:22:33.123456'); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` time(6) NOT NULL DEFAULT '11:22:33.123456' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; # # Mixing TIME(6) with another TIME(6) in IF # CREATE TABLE t1 (a TIME(6), b TIME(6)); CREATE TABLE t2 AS SELECT IF(1, a, b) AS a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` time(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # # Mixing TIME(N) with TIME(M) in IF # CREATE TABLE t1 (a TIME(1), b TIME(2)); CREATE TABLE t2 AS SELECT IF(1, a, b) AS a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` time(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # # Mixing varios TIME(N) in CASE # CREATE TABLE t1 (t0 TIME, t1 TIME(1), t3 TIME(3), t4 TIME(4), t6 TIME(6)); CREATE TABLE t2 AS SELECT CASE WHEN 1 THEN t0 ELSE t1 END, CASE WHEN 1 THEN t0 ELSE t3 END, CASE WHEN 1 THEN t0 ELSE t4 END, CASE WHEN 1 THEN t0 ELSE t6 END, CASE WHEN 1 THEN t1 ELSE t0 END, CASE WHEN 1 THEN t1 ELSE t3 END, CASE WHEN 1 THEN t1 ELSE t4 END, CASE WHEN 1 THEN t1 ELSE t6 END, CASE WHEN 1 THEN t3 ELSE t0 END, CASE WHEN 1 THEN t3 ELSE t1 END, CASE WHEN 1 THEN t3 ELSE t4 END, CASE WHEN 1 THEN t3 ELSE t6 END, CASE WHEN 1 THEN t4 ELSE t0 END, CASE WHEN 1 THEN t4 ELSE t1 END, CASE WHEN 1 THEN t4 ELSE t3 END, CASE WHEN 1 THEN t4 ELSE t6 END, CASE WHEN 1 THEN t6 ELSE t0 END, CASE WHEN 1 THEN t6 ELSE t1 END, CASE WHEN 1 THEN t6 ELSE t3 END, CASE WHEN 1 THEN t6 ELSE t4 END FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CASE WHEN 1 THEN t0 ELSE t1 END` time(1) DEFAULT NULL, `CASE WHEN 1 THEN t0 ELSE t3 END` time(3) DEFAULT NULL, `CASE WHEN 1 THEN t0 ELSE t4 END` time(4) DEFAULT NULL, `CASE WHEN 1 THEN t0 ELSE t6 END` time(6) DEFAULT NULL, `CASE WHEN 1 THEN t1 ELSE t0 END` time(1) DEFAULT NULL, `CASE WHEN 1 THEN t1 ELSE t3 END` time(3) DEFAULT NULL, `CASE WHEN 1 THEN t1 ELSE t4 END` time(4) DEFAULT NULL, `CASE WHEN 1 THEN t1 ELSE t6 END` time(6) DEFAULT NULL, `CASE WHEN 1 THEN t3 ELSE t0 END` time(3) DEFAULT NULL, `CASE WHEN 1 THEN t3 ELSE t1 END` time(3) DEFAULT NULL, `CASE WHEN 1 THEN t3 ELSE t4 END` time(4) DEFAULT NULL, `CASE WHEN 1 THEN t3 ELSE t6 END` time(6) DEFAULT NULL, `CASE WHEN 1 THEN t4 ELSE t0 END` time(4) DEFAULT NULL, `CASE WHEN 1 THEN t4 ELSE t1 END` time(4) DEFAULT NULL, `CASE WHEN 1 THEN t4 ELSE t3 END` time(4) DEFAULT NULL, `CASE WHEN 1 THEN t4 ELSE t6 END` time(6) DEFAULT NULL, `CASE WHEN 1 THEN t6 ELSE t0 END` time(6) DEFAULT NULL, `CASE WHEN 1 THEN t6 ELSE t1 END` time(6) DEFAULT NULL, `CASE WHEN 1 THEN t6 ELSE t3 END` time(6) DEFAULT NULL, `CASE WHEN 1 THEN t6 ELSE t4 END` time(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # # Mixing various TIME(N) in COALESCE # CREATE TABLE t1 (a TIME(6), b TIME(6), c TIME, d TIME, e TIME(3), f TIME(4)); CREATE TABLE t2 AS SELECT COALESCE(a,b), COALESCE(c,b), COALESCE(c,d), COALESCE(e,f), COALESCE(c,e), COALESCE(c,f) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `COALESCE(a,b)` time(6) DEFAULT NULL, `COALESCE(c,b)` time(6) DEFAULT NULL, `COALESCE(c,d)` time DEFAULT NULL, `COALESCE(e,f)` time(4) DEFAULT NULL, `COALESCE(c,e)` time(3) DEFAULT NULL, `COALESCE(c,f)` time(4) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT CONCAT(COALESCE(a, b)), CONCAT(COALESCE(c, b)), CONCAT(COALESCE(c, d)), CONCAT(COALESCE(e, f)), CONCAT(COALESCE(c, e)), CONCAT(COALESCE(c, f)) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CONCAT(COALESCE(a, b))` varchar(17) DEFAULT NULL, `CONCAT(COALESCE(c, b))` varchar(17) DEFAULT NULL, `CONCAT(COALESCE(c, d))` varchar(10) DEFAULT NULL, `CONCAT(COALESCE(e, f))` varchar(15) DEFAULT NULL, `CONCAT(COALESCE(c, e))` varchar(14) DEFAULT NULL, `CONCAT(COALESCE(c, f))` varchar(15) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # # Mixing TIME(6) NOT NULL with another TIME(6) NOT NULL # CREATE TABLE t1 (a TIME(6) NOT NULL, b TIME(6) NOT NULL); CREATE TABLE t2 AS SELECT IF(1, a, b) AS a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` time(6) NOT NULL DEFAULT '00:00:00.000000' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # # UNION between TIME(6) and TIME(6) # CREATE TABLE t1 (a TIME(6) NOT NULL, b TIME(6) NOT NULL); INSERT INTO t1 VALUES ('11:22:33.123456', '00:11:22.123456'); CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT b FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` time(6) NOT NULL DEFAULT '00:00:00.000000' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t2 ORDER BY a; a 00:11:22.123456 11:22:33.123456 DROP TABLE t2; DROP TABLE t1; # # UNION between TIME(6) and TIME # CREATE TABLE t1 (t0 TIME NOT NULL, t6 TIME(6) NOT NULL, t3 TIME(3), t4 TIME(4)); INSERT INTO t1 VALUES ('11:22:33.123456', '00:11:22.123456', '00:11:23.123', '00:11:24.123'); CREATE TABLE t2 AS SELECT t0 FROM t1 UNION SELECT t6 FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `t0` time(6) NOT NULL DEFAULT '00:00:00.000000' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t2 ORDER BY t0; t0 00:11:22.123456 11:22:33.000000 DROP TABLE t2; CREATE TABLE t2 AS SELECT t6 FROM t1 UNION SELECT t0 FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `t6` time(6) NOT NULL DEFAULT '00:00:00.000000' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t2 ORDER BY t6; t6 00:11:22.123456 11:22:33.000000 DROP TABLE t2; CREATE TABLE t2 AS SELECT t3 FROM t1 UNION SELECT t4 FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `t3` time(4) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t2 ORDER BY t3; t3 00:11:23.1230 00:11:24.1230 DROP TABLE t2; DROP TABLE t1; # # UNION between TIME(6) and various other types # CREATE TABLE t1 (a TIME(6), b INT, c DOUBLE, d DECIMAL(20,6), e VARCHAR(20)); CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT b FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(17) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT c FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(22) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT d FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(22) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT e FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(20) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # # Testing TIME(6) field in combination with TIME type functions # CREATE TABLE t1 (a TIME(6), b TIME(6)); INSERT INTO t1 VALUES ('10:00:00.123456', '00:00:00.123456'); INSERT INTO t1 VALUES ('10:00:00', '00:00:00'); SELECT * FROM t1 WHERE a=ADDTIME(b, '10:00:00'); a b 10:00:00.123456 00:00:00.123456 10:00:00.000000 00:00:00.000000 SELECT * FROM t1 WHERE b=TIMEDIFF(a, '10:00:00'); a b 10:00:00.123456 00:00:00.123456 10:00:00.000000 00:00:00.000000 SELECT a FROM t1 WHERE a=MAKETIME(10,0,0); a 10:00:00.000000 SELECT a FROM t1 WHERE a=SEC_TO_TIME(36000); a 10:00:00.000000 DELETE FROM t1; INSERT INTO t1 VALUES (CURTIME(), CURTIME()); SELECT COUNT(*) FROM t1 WHERE a <= CURTIME(); COUNT(*) 1 DROP TABLE t1; # # ORDER BY a TIME(6) function # CREATE TABLE t1(a TIME(6)); INSERT INTO t1 (a) VALUES ('835:00:00.000002'); INSERT INTO t1 (a) VALUES ('835:00:00.000000'); INSERT INTO t1 (a) VALUES ('835:00:00.000001'); INSERT INTO t1 (a) VALUES ('00:00:00.000003'); INSERT INTO t1 (a) VALUES ('00:00:00.000000'); INSERT INTO t1 (a) VALUES ('00:00:00.000001'); INSERT INTO t1 (a) VALUES ('-836:00:00.000000'); INSERT INTO t1 (a) VALUES ('-836:00:00.000001'); INSERT INTO t1 (a) VALUES ('-836:00:00.000002'); SELECT * FROM t1 ORDER BY ADDTIME(a, '00:00:00'); a -836:00:00.000002 -836:00:00.000001 -836:00:00.000000 00:00:00.000000 00:00:00.000001 00:00:00.000003 835:00:00.000000 835:00:00.000001 835:00:00.000002 SELECT * FROM t1 ORDER BY TIMEDIFF(a, '00:00:00'); a -836:00:00.000002 -836:00:00.000001 -836:00:00.000000 00:00:00.000000 00:00:00.000001 00:00:00.000003 835:00:00.000000 835:00:00.000001 835:00:00.000002 SELECT * FROM t1 ORDER BY ADDTIME(a, '00:00:00') DESC; a 835:00:00.000002 835:00:00.000001 835:00:00.000000 00:00:00.000003 00:00:00.000001 00:00:00.000000 -836:00:00.000000 -836:00:00.000001 -836:00:00.000002 SELECT * FROM t1 ORDER BY TIMEDIFF(a, '00:00:00') DESC; a 835:00:00.000002 835:00:00.000001 835:00:00.000000 00:00:00.000003 00:00:00.000001 00:00:00.000000 -836:00:00.000000 -836:00:00.000001 -836:00:00.000002 DROP TABLE t1; # # Testing partitions # CREATE TABLE t1 (a TIME(6)) PARTITION BY KEY(a) PARTITIONS 4; Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. INSERT INTO t1 VALUES ('00:00:00.000000'); Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. INSERT INTO t1 VALUES ('00:00:00.000001'); INSERT INTO t1 VALUES ('00:00:00.000002'); INSERT INTO t1 VALUES ('00:00:00.000003'); INSERT INTO t1 VALUES ('00:00:00.000004'); INSERT INTO t1 VALUES ('00:00:00.000005'); INSERT INTO t1 VALUES ('00:00:00.000006'); INSERT INTO t1 VALUES ('00:00:00.000010'); INSERT INTO t1 VALUES ('00:00:00.000011'); INSERT INTO t1 VALUES ('00:00:00.000012'); INSERT INTO t1 VALUES ('00:00:00.000013'); INSERT INTO t1 VALUES ('00:00:00.000014'); INSERT INTO t1 VALUES ('00:00:00.000015'); INSERT INTO t1 VALUES ('00:00:00.000016'); INSERT INTO t1 VALUES ('00:00:00.000110'); INSERT INTO t1 VALUES ('00:00:00.000111'); INSERT INTO t1 VALUES ('00:00:00.000112'); INSERT INTO t1 VALUES ('00:00:00.000113'); INSERT INTO t1 VALUES ('00:00:00.000114'); INSERT INTO t1 VALUES ('00:00:00.000115'); INSERT INTO t1 VALUES ('00:00:00.000116'); INSERT INTO t1 VALUES ('00:00:00.000210'); INSERT INTO t1 VALUES ('00:00:00.000211'); INSERT INTO t1 VALUES ('00:00:00.000212'); INSERT INTO t1 VALUES ('00:00:00.000213'); INSERT INTO t1 VALUES ('00:00:00.000214'); INSERT INTO t1 VALUES ('00:00:00.000215'); INSERT INTO t1 VALUES ('00:00:00.000216'); INSERT INTO t1 VALUES ('00:00:01.000000'); INSERT INTO t1 VALUES ('00:00:01.000001'); INSERT INTO t1 VALUES ('00:00:01.000002'); INSERT INTO t1 VALUES ('00:00:01.000003'); INSERT INTO t1 VALUES ('00:00:01.000004'); INSERT INTO t1 VALUES ('00:00:01.000005'); INSERT INTO t1 VALUES ('00:00:01.000006'); INSERT INTO t1 VALUES ('00:00:02.000000'); INSERT INTO t1 VALUES ('00:00:02.000001'); INSERT INTO t1 VALUES ('00:00:02.000002'); INSERT INTO t1 VALUES ('00:00:02.000003'); INSERT INTO t1 VALUES ('00:00:02.000004'); INSERT INTO t1 VALUES ('00:00:02.000005'); INSERT INTO t1 VALUES ('00:00:02.000006'); SELECT * FROM t1 PARTITION(p0); a 00:00:01.000002 00:00:01.000006 SELECT * FROM t1 PARTITION(p1); a 00:00:00.000000 00:00:00.000001 00:00:00.000002 00:00:00.000003 00:00:00.000004 00:00:00.000005 00:00:00.000006 00:00:00.000010 00:00:00.000011 00:00:00.000012 00:00:00.000013 00:00:00.000014 00:00:00.000015 00:00:00.000016 00:00:00.000110 00:00:00.000111 00:00:00.000112 00:00:00.000113 00:00:00.000114 00:00:00.000115 00:00:00.000116 00:00:00.000210 00:00:00.000211 00:00:00.000212 00:00:00.000213 00:00:00.000214 00:00:00.000215 00:00:00.000216 00:00:01.000003 00:00:02.000001 00:00:02.000003 00:00:02.000005 SELECT * FROM t1 PARTITION(p2); a 00:00:01.000000 00:00:01.000004 SELECT * FROM t1 PARTITION(p3); a 00:00:01.000001 00:00:01.000005 00:00:02.000000 00:00:02.000002 00:00:02.000004 00:00:02.000006 ALTER TABLE t1 PARTITION BY RANGE COLUMNS (a) ( PARTITION p0 VALUES LESS THAN ('00:00:00.000200'), PARTITION p1 VALUES LESS THAN ('00:00:01'), PARTITION p2 VALUES LESS THAN ('00:00:02.000003'), PARTITION p3 VALUES LESS THAN MAXVALUE ); Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. SELECT * FROM t1 PARTITION(p0); a 00:00:00.000000 00:00:00.000001 00:00:00.000002 00:00:00.000003 00:00:00.000004 00:00:00.000005 00:00:00.000006 00:00:00.000010 00:00:00.000011 00:00:00.000012 00:00:00.000013 00:00:00.000014 00:00:00.000015 00:00:00.000016 00:00:00.000110 00:00:00.000111 00:00:00.000112 00:00:00.000113 00:00:00.000114 00:00:00.000115 00:00:00.000116 Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. SELECT * FROM t1 PARTITION(p1); a 00:00:00.000210 00:00:00.000211 00:00:00.000212 00:00:00.000213 00:00:00.000214 00:00:00.000215 00:00:00.000216 SELECT * FROM t1 PARTITION(p2); a 00:00:01.000002 00:00:01.000006 00:00:01.000003 00:00:02.000001 00:00:01.000000 00:00:01.000004 00:00:01.000001 00:00:01.000005 00:00:02.000000 00:00:02.000002 SELECT * FROM t1 PARTITION(p3); a 00:00:02.000003 00:00:02.000005 00:00:02.000004 00:00:02.000006 DROP TABLE t1; # # Checking that a TIME literal can be a partition LESS value # CREATE TABLE t1 (s1 TIME(6)) PARTITION BY RANGE COLUMNS (s1) (PARTITION p1 VALUES LESS THAN (TIME'01:01:01.000001')); Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `s1` time(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50500 PARTITION BY RANGE COLUMNS(s1) (PARTITION p1 VALUES LESS THAN ('01:01:01.000001') ENGINE = MyISAM) */ Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. DROP TABLE t1; # # Testing MAKETIME() # CREATE TABLE t1 AS SELECT CAST(MAKETIME(1, 1, 1) AS TIME) as a, CAST(MAKETIME(1, 1, 1) AS CHAR) as b; SELECT MAKETIME(1, 1, 1); MAKETIME(1, 1, 1) 01:01:01 SELECT MAKETIME(1, 1, 1.0); MAKETIME(1, 1, 1.0) 01:01:01.0 SELECT MAKETIME(1, 1, 1.00); MAKETIME(1, 1, 1.00) 01:01:01.00 SELECT MAKETIME(1, 1, 1.000); MAKETIME(1, 1, 1.000) 01:01:01.000 SELECT MAKETIME(1, 1, 1.0000); MAKETIME(1, 1, 1.0000) 01:01:01.0000 SELECT MAKETIME(1, 1, 1.00000); MAKETIME(1, 1, 1.00000) 01:01:01.00000 SELECT MAKETIME(1, 1, 1.000000); MAKETIME(1, 1, 1.000000) 01:01:01.000000 SELECT MAKETIME(0, 0, -0.123); MAKETIME(0, 0, -0.123) NULL SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` time DEFAULT NULL, `b` varchar(10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 AS SELECT MAKETIME(1, 1, 1), MAKETIME(1, 1, 1.0), MAKETIME(1, 1, 1.00), MAKETIME(1, 1, 1.000), MAKETIME(1, 1, 1.0000), MAKETIME(1, 1, 1.00000), MAKETIME(1, 1, 1.000000); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `MAKETIME(1, 1, 1)` time DEFAULT NULL, `MAKETIME(1, 1, 1.0)` time(1) DEFAULT NULL, `MAKETIME(1, 1, 1.00)` time(2) DEFAULT NULL, `MAKETIME(1, 1, 1.000)` time(3) DEFAULT NULL, `MAKETIME(1, 1, 1.0000)` time(4) DEFAULT NULL, `MAKETIME(1, 1, 1.00000)` time(5) DEFAULT NULL, `MAKETIME(1, 1, 1.000000)` time(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; # # Testing rounding with MAKETIME() # CREATE TABLE t1 (hour INT, minute INT, second DECIMAL(23,7)); INSERT INTO t1 VALUES (836, 59, 59.999999), (836, 59, 59.9999990), (836, 59, 59.9999991), (836, 59, 59.9999992), (836, 59, 59.9999993), (836, 59, 59.9999995), (836, 59, 59.9999996), (836, 59, 59.9999997), (836, 59, 59.9999998), (836, 59, 59.9999999); SELECT hour, minute, second, MAKETIME(hour, minute, second) FROM t1; hour minute second MAKETIME(hour, minute, second) 836 59 59.9999990 836:59:59.999999 836 59 59.9999990 836:59:59.999999 836 59 59.9999991 836:59:59.999999 836 59 59.9999992 836:59:59.999999 836 59 59.9999993 836:59:59.999999 836 59 59.9999995 837:00:00.000000 836 59 59.9999996 837:00:00.000000 836 59 59.9999997 837:00:00.000000 836 59 59.9999998 837:00:00.000000 836 59 59.9999999 837:00:00.000000 SELECT hour + 1, minute, second, MAKETIME(hour + 1, minute, second) FROM t1; hour + 1 minute second MAKETIME(hour + 1, minute, second) 837 59 59.9999990 837:59:59.999999 837 59 59.9999990 837:59:59.999999 837 59 59.9999991 837:59:59.999999 837 59 59.9999992 837:59:59.999999 837 59 59.9999993 837:59:59.999999 837 59 59.9999995 838:00:00.000000 837 59 59.9999996 838:00:00.000000 837 59 59.9999997 838:00:00.000000 837 59 59.9999998 838:00:00.000000 837 59 59.9999999 838:00:00.000000 SELECT -hour, minute, second, MAKETIME(-hour, minute, second) FROM t1; -hour minute second MAKETIME(-hour, minute, second) -836 59 59.9999990 -836:59:59.999999 -836 59 59.9999990 -836:59:59.999999 -836 59 59.9999991 -836:59:59.999999 -836 59 59.9999992 -836:59:59.999999 -836 59 59.9999993 -836:59:59.999999 -836 59 59.9999995 -837:00:00.000000 -836 59 59.9999996 -837:00:00.000000 -836 59 59.9999997 -837:00:00.000000 -836 59 59.9999998 -837:00:00.000000 -836 59 59.9999999 -837:00:00.000000 SELECT -hour - 1, minute, second, MAKETIME(-hour - 1, minute, second) FROM t1; -hour - 1 minute second MAKETIME(-hour - 1, minute, second) -837 59 59.9999990 -837:59:59.999999 -837 59 59.9999990 -837:59:59.999999 -837 59 59.9999991 -837:59:59.999999 -837 59 59.9999992 -837:59:59.999999 -837 59 59.9999993 -837:59:59.999999 -837 59 59.9999995 -838:00:00.000000 -837 59 59.9999996 -838:00:00.000000 -837 59 59.9999997 -838:00:00.000000 -837 59 59.9999998 -838:00:00.000000 -837 59 59.9999999 -838:00:00.000000 DROP TABLE t1; SELECT MAKETIME(838, 59, 59.0000005); MAKETIME(838, 59, 59.0000005) 838:59:59.000000 Warnings: Warning 1292 Truncated incorrect time value: '838:59:59.0000005' SELECT MAKETIME(838, 59, 59.00000056); MAKETIME(838, 59, 59.00000056) 838:59:59.000000 Warnings: Warning 1292 Truncated incorrect time value: '838:59:59.00000056' SELECT MAKETIME(838, 59, 59.000000567); MAKETIME(838, 59, 59.000000567) 838:59:59.000000 Warnings: Warning 1292 Truncated incorrect time value: '838:59:59.000000567' SELECT MAKETIME(838, 59, 59.0000005678); MAKETIME(838, 59, 59.0000005678) 838:59:59.000000 Warnings: Warning 1292 Truncated incorrect time value: '838:59:59.000000567' SELECT MAKETIME(838, 59, 59.00000056789); MAKETIME(838, 59, 59.00000056789) 838:59:59.000000 Warnings: Warning 1292 Truncated incorrect time value: '838:59:59.000000567' # # Testing CAST to TIME and TIME(6) # SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; Warnings: Warning 3090 Changing sql mode 'NO_AUTO_CREATE_USER' is deprecated. It will be removed in a future release. CREATE TABLE t1 AS SELECT CAST(1 AS TIME), CAST(100000000 AS TIME), CAST(1.1 AS TIME), CAST('1' AS TIME), CAST(1e0 AS TIME), CAST(1 AS TIME(0)), CAST(100000000 AS TIME(0)), CAST(1.1 AS TIME(0)), CAST('1' AS TIME(0)), CAST(1e0 AS TIME(0)), CAST(1 AS TIME(6)), CAST(100000000 AS TIME(6)), CAST(1.1 AS TIME(6)), CAST('1' AS TIME(6)), CAST(1e0 AS TIME(6)); Warnings: Warning 1292 Truncated incorrect time value: '100000000' Warning 1292 Truncated incorrect time value: '100000000' Warning 1292 Truncated incorrect time value: '100000000' SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `CAST(1 AS TIME)` time DEFAULT NULL, `CAST(100000000 AS TIME)` time DEFAULT NULL, `CAST(1.1 AS TIME)` time DEFAULT NULL, `CAST('1' AS TIME)` time DEFAULT NULL, `CAST(1e0 AS TIME)` time DEFAULT NULL, `CAST(1 AS TIME(0))` time DEFAULT NULL, `CAST(100000000 AS TIME(0))` time DEFAULT NULL, `CAST(1.1 AS TIME(0))` time DEFAULT NULL, `CAST('1' AS TIME(0))` time DEFAULT NULL, `CAST(1e0 AS TIME(0))` time DEFAULT NULL, `CAST(1 AS TIME(6))` time(6) DEFAULT NULL, `CAST(100000000 AS TIME(6))` time(6) DEFAULT NULL, `CAST(1.1 AS TIME(6))` time(6) DEFAULT NULL, `CAST('1' AS TIME(6))` time(6) DEFAULT NULL, `CAST(1e0 AS TIME(6))` time(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; SET sql_mode = default; CREATE TABLE t1 (a TIME, b TIME(6)); INSERT INTO t1 VALUES ('11:22:33', '11:22:33.123456'); CREATE TABLE t2 AS SELECT CAST(a AS TIME), CAST(b AS TIME) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CAST(a AS TIME)` time DEFAULT NULL, `CAST(b AS TIME)` time DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT CAST(a AS TIME(0)), CAST(b AS TIME(0)) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CAST(a AS TIME(0))` time DEFAULT NULL, `CAST(b AS TIME(0))` time DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT CAST(a AS TIME(6)), CAST(b AS TIME(6)) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CAST(a AS TIME(6))` time(6) DEFAULT NULL, `CAST(b AS TIME(6))` time(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; # # Testing Item_time_typecast::val_str # SELECT CONCAT(CAST(a AS TIME(0))), CONCAT(CAST(b AS TIME(0))) FROM t1; CONCAT(CAST(a AS TIME(0))) CONCAT(CAST(b AS TIME(0))) 11:22:33 11:22:33 SELECT CONCAT(CAST(a AS TIME(6))), CONCAT(CAST(b AS TIME(6))) FROM t1; CONCAT(CAST(a AS TIME(6))) CONCAT(CAST(b AS TIME(6))) 11:22:33.000000 11:22:33.123456 SELECT CONCAT(CAST(a AS TIME)), CONCAT(CAST(b AS TIME)) FROM t1; CONCAT(CAST(a AS TIME)) CONCAT(CAST(b AS TIME)) 11:22:33 11:22:33 # # Testing Item_time_typecast::get_time # SELECT CAST(a AS TIME(0)), CAST(b AS TIME(0)) FROM t1; CAST(a AS TIME(0)) CAST(b AS TIME(0)) 11:22:33 11:22:33 SELECT CAST(a AS TIME(6)), CAST(b AS TIME(6)) FROM t1; CAST(a AS TIME(6)) CAST(b AS TIME(6)) 11:22:33.000000 11:22:33.123456 SELECT CAST(a AS TIME), CAST(b AS TIME) FROM t1; CAST(a AS TIME) CAST(b AS TIME) 11:22:33 11:22:33 DROP TABLE t1; # # Testing Item_time_typecast::val_int # SELECT CAST('10:11:12' AS TIME(0)) + 1; CAST('10:11:12' AS TIME(0)) + 1 101113 # # Testing Item_time_typecast::val_decimal # SELECT CAST('10:11:12' AS TIME(6)) + 1; CAST('10:11:12' AS TIME(6)) + 1 101113.000000 # # Testing function TIME(expr) # CREATE TABLE t1 AS SELECT TIME(101), TIME(101.1), TIME(101.12), TIME(101.123), TIME(101.1234), TIME(101.12345), TIME(101.123456), TIME('00:01:01'), TIME('00:01:01.1'), TIME('00:01:01.12'), TIME('00:01:01.123'), TIME('00:01:01.1234'), TIME('00:01:01.12345'), TIME('00:01:01.123456'), TIME(CONCAT('00:01:01', '')), TIME(CONCAT('00:01:01', '.1')), TIME(CONCAT('00:01:01', '.12')), TIME(CONCAT('00:01:01', '.123')), TIME(CONCAT('00:01:01', '.1234')), TIME(CONCAT('00:01:01', '.12345')), TIME(CONCAT('00:01:01', '.123456')), TIME(TIME'00:01:01'), TIME(TIME'00:01:01.1'), TIME(TIME'00:01:01.12'), TIME(TIME'00:01:01.123'), TIME(TIME'00:01:01.1234'), TIME(TIME'00:01:01.12345'), TIME(TIME'00:01:01.123456'), TIME(TIMESTAMP('2001-01-01 00:00:00')), TIME(TIMESTAMP('2001-01-01 00:00:00.1')), TIME(TIMESTAMP('2001-01-01 00:00:00.12')), TIME(TIMESTAMP('2001-01-01 00:00:00.123')), TIME(TIMESTAMP('2001-01-01 00:00:00.1234')), TIME(TIMESTAMP('2001-01-01 00:00:00.12345')), TIME(TIMESTAMP('2001-01-01 00:00:00.123456')); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `TIME(101)` time DEFAULT NULL, `TIME(101.1)` time(1) DEFAULT NULL, `TIME(101.12)` time(2) DEFAULT NULL, `TIME(101.123)` time(3) DEFAULT NULL, `TIME(101.1234)` time(4) DEFAULT NULL, `TIME(101.12345)` time(5) DEFAULT NULL, `TIME(101.123456)` time(6) DEFAULT NULL, `TIME('00:01:01')` time DEFAULT NULL, `TIME('00:01:01.1')` time(1) DEFAULT NULL, `TIME('00:01:01.12')` time(2) DEFAULT NULL, `TIME('00:01:01.123')` time(3) DEFAULT NULL, `TIME('00:01:01.1234')` time(4) DEFAULT NULL, `TIME('00:01:01.12345')` time(5) DEFAULT NULL, `TIME('00:01:01.123456')` time(6) DEFAULT NULL, `TIME(CONCAT('00:01:01', ''))` time DEFAULT NULL, `TIME(CONCAT('00:01:01', '.1'))` time(1) DEFAULT NULL, `TIME(CONCAT('00:01:01', '.12'))` time(2) DEFAULT NULL, `TIME(CONCAT('00:01:01', '.123'))` time(3) DEFAULT NULL, `TIME(CONCAT('00:01:01', '.1234'))` time(4) DEFAULT NULL, `TIME(CONCAT('00:01:01', '.12345'))` time(5) DEFAULT NULL, `TIME(CONCAT('00:01:01', '.123456'))` time(6) DEFAULT NULL, `TIME(TIME'00:01:01')` time DEFAULT NULL, `TIME(TIME'00:01:01.1')` time(1) DEFAULT NULL, `TIME(TIME'00:01:01.12')` time(2) DEFAULT NULL, `TIME(TIME'00:01:01.123')` time(3) DEFAULT NULL, `TIME(TIME'00:01:01.1234')` time(4) DEFAULT NULL, `TIME(TIME'00:01:01.12345')` time(5) DEFAULT NULL, `TIME(TIME'00:01:01.123456')` time(6) DEFAULT NULL, `TIME(TIMESTAMP('2001-01-01 00:00:00'))` time DEFAULT NULL, `TIME(TIMESTAMP('2001-01-01 00:00:00.1'))` time(1) DEFAULT NULL, `TIME(TIMESTAMP('2001-01-01 00:00:00.12'))` time(2) DEFAULT NULL, `TIME(TIMESTAMP('2001-01-01 00:00:00.123'))` time(3) DEFAULT NULL, `TIME(TIMESTAMP('2001-01-01 00:00:00.1234'))` time(4) DEFAULT NULL, `TIME(TIMESTAMP('2001-01-01 00:00:00.12345'))` time(5) DEFAULT NULL, `TIME(TIMESTAMP('2001-01-01 00:00:00.123456'))` time(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; # # Testing comparison between a TIME(6) field and a TIME(N) type cast # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('10:11:12.000000'); INSERT INTO t1 VALUES ('10:11:12.000001'); INSERT INTO t1 VALUES ('10:11:12.000002'); INSERT INTO t1 VALUES ('10:11:12.000003'); SELECT * FROM t1 WHERE a=CAST('10:11:12.000003' AS TIME(6)); a 10:11:12.000003 SELECT * FROM t1 WHERE a=CAST('10:11:12.000003' AS TIME(0)); a 10:11:12.000000 DROP TABLE t1; # # Testing comparison between CAST(x AS TIME(N)) # SELECT CAST('10:11:12.123' AS TIME(0)) = 101112; CAST('10:11:12.123' AS TIME(0)) = 101112 1 SELECT CAST(101112.123 AS TIME(0)) = 101112; CAST(101112.123 AS TIME(0)) = 101112 1 SELECT CAST(101112.123e0 AS TIME(0)) = 101112; CAST(101112.123e0 AS TIME(0)) = 101112 1 # # Testing Item_time_typecast::val_int_packed() # CREATE TABLE t1 (a TIME, b TIME(6)); INSERT INTO t1 VALUES ('24:00:00', '24:00:00.123456'); SELECT CAST('24:00:00' AS TIME) = (SELECT a FROM t1); CAST('24:00:00' AS TIME) = (SELECT a FROM t1) 1 SELECT CAST('24:00:00' AS TIME(6)) = (SELECT a FROM t1); CAST('24:00:00' AS TIME(6)) = (SELECT a FROM t1) 1 SELECT CAST('24:00:00.123456' AS TIME(0)) = (SELECT a FROM t1); CAST('24:00:00.123456' AS TIME(0)) = (SELECT a FROM t1) 1 SELECT CAST('24:00:00.123456' AS TIME(6)) = (SELECT b FROM t1); CAST('24:00:00.123456' AS TIME(6)) = (SELECT b FROM t1) 1 DROP TABLE t1; # # Testing function MICROSECOND # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('-11:12:13.000001'); INSERT INTO t1 VALUES ('11:12:13.000001'); INSERT INTO t1 VALUES ('11:12:13.100001'); INSERT INTO t1 VALUES ('11:12:13.999999'); SELECT a, MICROSECOND(a) FROM t1; a MICROSECOND(a) -11:12:13.000001 1 11:12:13.000001 1 11:12:13.100001 100001 11:12:13.999999 999999 SELECT a, EXTRACT(MICROSECOND FROM a) FROM t1; a EXTRACT(MICROSECOND FROM a) -11:12:13.000001 -1 11:12:13.000001 1 11:12:13.100001 100001 11:12:13.999999 999999 DROP TABLE t1; SELECT MICROSECOND(CAST(123.456 AS TIME(6))); MICROSECOND(CAST(123.456 AS TIME(6))) 456000 SELECT EXTRACT(MICROSECOND FROM CAST(123.456 AS TIME(6))); EXTRACT(MICROSECOND FROM CAST(123.456 AS TIME(6))) 456000 # # Testing PS # CREATE TABLE t1 (a TIME(6)); PREPARE stmt FROM 'INSERT INTO t1 VALUES (?)'; SET @a='11:22:33.123456'; SET @b=112233.123456; SET @c=112233.123456e0; EXECUTE stmt USING @a; DEALLOCATE PREPARE stmt; SELECT * FROM t1; a 11:22:33.123456 PREPARE stmt FROM 'SELECT * FROM t1 WHERE a=?'; EXECUTE stmt USING @a; a 11:22:33.123456 EXECUTE stmt USING @b; a 11:22:33.123456 EXECUTE stmt USING @c; a 11:22:33.123456 DEALLOCATE PREPARE stmt; DROP TABLE t1; # # Testing TIME(6) and user variables # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('11:22:33.123456'); SET @a='11:22:33.123456'; SELECT * FROM t1 WHERE a=@a; a 11:22:33.123456 SET @a=112233.123456; SELECT * FROM t1 WHERE a=@a; a 11:22:33.123456 SET @a=112233.123456e0; SELECT * FROM t1 WHERE a=@a; a 11:22:33.123456 SET @a=NULL; SELECT a INTO @a FROM t1 LIMIT 1; SELECT @a; @a 11:22:33.123456 DROP TABLE t1; CREATE TABLE t1 AS SELECT @a AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` longtext ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t1; a 11:22:33.123456 DROP TABLE t1; # # Testing SP # CREATE PROCEDURE p1 () BEGIN DECLARE a TIME(6); SET a='11:22:33.123'; SELECT a; END// SHOW CREATE PROCEDURE p1// Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation p1 ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() BEGIN DECLARE a TIME(6); SET a='11:22:33.123'; SELECT a; END latin1 latin1_swedish_ci latin1_swedish_ci CALL p1// a 11:22:33.123000 DROP PROCEDURE p1// CREATE PROCEDURE p1 (a TIME(6)) BEGIN SELECT a; END// SHOW CREATE PROCEDURE p1// Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation p1 ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`(a TIME(6)) BEGIN SELECT a; END latin1 latin1_swedish_ci latin1_swedish_ci CALL p1(112233)// a 11:22:33.000000 CALL p1(112233.123)// a 11:22:33.123000 CALL p1(112233.123e0)// a 11:22:33.123000 CALL p1('11:22:33.123')// a 11:22:33.123000 DROP PROCEDURE p1// CREATE PROCEDURE p1() BEGIN DECLARE a TIME(6); CREATE TABLE t1 AS SELECT a; SHOW CREATE TABLE t1; DROP TABLE t1; END// SHOW CREATE PROCEDURE p1// Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation p1 ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() BEGIN DECLARE a TIME(6); CREATE TABLE t1 AS SELECT a; SHOW CREATE TABLE t1; DROP TABLE t1; END latin1 latin1_swedish_ci latin1_swedish_ci CALL p1// Table Create Table t1 CREATE TABLE `t1` ( `a` time(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP PROCEDURE p1// CREATE FUNCTION p1 (a TIME(6)) RETURNS TIME(6) BEGIN RETURN a; END// SHOW CREATE FUNCTION p1// Function sql_mode Create Function character_set_client collation_connection Database Collation p1 ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `p1`(a TIME(6)) RETURNS time(6) BEGIN RETURN a; END latin1 latin1_swedish_ci latin1_swedish_ci SELECT p1(112233.123)// p1(112233.123) 11:22:33.123000 DROP FUNCTION p1// # # Testing INFORMATION_SCHEMA.COLUMNS # CREATE TABLE t1 (a TIME(6)); SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='t1';; TABLE_CATALOG def TABLE_SCHEMA test TABLE_NAME t1 COLUMN_NAME a ORDINAL_POSITION 1 COLUMN_DEFAULT NULL IS_NULLABLE YES DATA_TYPE time CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION 6 CHARACTER_SET_NAME NULL COLLATION_NAME NULL COLUMN_TYPE time(6) COLUMN_KEY EXTRA PRIVILEGES # COLUMN_COMMENT GENERATION_EXPRESSION DROP TABLE t1; # # SELECT from a subquery # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('00:00:00.123456'), ('11:11:11.123456'); SELECT * FROM (SELECT * FROM t1) t12; a 00:00:00.123456 11:11:11.123456 DROP TABLE t1; # # Testing IN and = subqueries # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('00:00:00.123456'), ('11:11:11.123456'); SELECT * FROM t1 WHERE a IN (SELECT MIN(a) FROM t1); a 00:00:00.123456 SELECT * FROM t1 WHERE a = (SELECT a FROM t1 ORDER BY a DESC LIMIT 1); a 11:11:11.123456 DROP TABLE t1; # # Testing IN subquery + GROUP # CREATE TABLE t1 (id INT, a TIME(6)); INSERT INTO t1 VALUES (1,'00:00:00.123456'), (1,'11:00:00.123456'); INSERT INTO t1 VALUES (2,'00:01:00.123456'), (2,'11:01:00.123456'); INSERT INTO t1 VALUES (3, NULL); SELECT * FROM t1 WHERE a IN (SELECT MAX(a) FROM t1 GROUP BY id); id a 1 11:00:00.123456 2 11:01:00.123456 DROP TABLE t1; # # Testing VIEW # CREATE TABLE t1 (a TIME(6)); INSERT INTO t1 VALUES ('00:00:00.123456'), ('11:11:11.123456'); CREATE VIEW v1 AS SELECT a FROM t1; SELECT * FROM v1 WHERE a='00:00:00.123456'; a 00:00:00.123456 SELECT MIN(a), MAX(a) FROM v1; MIN(a) MAX(a) 00:00:00.123456 11:11:11.123456 SELECT * FROM t1 WHERE a IN (SELECT MAX(a) FROM v1); a 11:11:11.123456 DROP VIEW v1; CREATE VIEW v1 AS SELECT MAX(a) AS a FROM t1; SELECT * FROM v1; a 11:11:11.123456 SELECT * FROM t1 WHERE a=(SELECT a FROM v1); a 11:11:11.123456 DROP VIEW v1; DROP TABLE t1; # # Testing hybrid functions in TIME context # SELECT DATE_ADD(TIME'00:00:00.0', INTERVAL 10.1 SECOND); DATE_ADD(TIME'00:00:00.0', INTERVAL 10.1 SECOND) 00:00:10.1 SELECT DATE_ADD(TIME'00:00:00.0', INTERVAL 10000000.1 SECOND); DATE_ADD(TIME'00:00:00.0', INTERVAL 10000000.1 SECOND) NULL Warnings: Warning 1441 Datetime function: time field overflow SELECT DATE_ADD(TIME'00:00:00.0', INTERVAL 100000000000000000.1 SECOND); DATE_ADD(TIME'00:00:00.0', INTERVAL 100000000000000000.1 SECOND) NULL Warnings: Warning 1441 Datetime function: time field overflow SELECT DATE_ADD(TIME'00:00:00.0', INTERVAL 1000000000000000000000.1 SECOND); DATE_ADD(TIME'00:00:00.0', INTERVAL 1000000000000000000000.1 SECOND) 00:00:00.0 Warnings: Warning 1292 Truncated incorrect DECIMAL value: '1000000000000000000000.1' CREATE TABLE t1 AS SELECT DATE_ADD(TIME'00:00:00', INTERVAL 1 SECOND) AS t0s0, DATE_ADD(TIME'00:00:00', INTERVAL 1.1 SECOND) AS t0s1, DATE_ADD(TIME'00:00:00', INTERVAL 1.12 SECOND) AS t0s2, DATE_ADD(TIME'00:00:00', INTERVAL 1.123 SECOND) AS t0s3, DATE_ADD(TIME'00:00:00', INTERVAL 1.1234 SECOND) AS t0s4, DATE_ADD(TIME'00:00:00', INTERVAL 1.12345 SECOND) AS t0s5, DATE_ADD(TIME'00:00:00', INTERVAL 1.123456 SECOND) AS t0s6, DATE_ADD(TIME'00:00:00.1', INTERVAL 1 SECOND) AS t1s0, DATE_ADD(TIME'00:00:00.12', INTERVAL 1 SECOND) AS t2s0, DATE_ADD(TIME'00:00:00.123', INTERVAL 1 SECOND) AS t3s0, DATE_ADD(TIME'00:00:00.1234', INTERVAL 1 SECOND) AS t4s0, DATE_ADD(TIME'00:00:00.12345', INTERVAL 1 SECOND) AS t5s0, DATE_ADD(TIME'00:00:00.123456', INTERVAL 1 SECOND) AS t6s0, DATE_ADD(TIME'00:00:00', INTERVAL 1 MICROSECOND) AS t0ms; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `t0s0` time DEFAULT NULL, `t0s1` time(1) DEFAULT NULL, `t0s2` time(2) DEFAULT NULL, `t0s3` time(3) DEFAULT NULL, `t0s4` time(4) DEFAULT NULL, `t0s5` time(5) DEFAULT NULL, `t0s6` time(6) DEFAULT NULL, `t1s0` time(1) DEFAULT NULL, `t2s0` time(2) DEFAULT NULL, `t3s0` time(3) DEFAULT NULL, `t4s0` time(4) DEFAULT NULL, `t5s0` time(5) DEFAULT NULL, `t6s0` time(6) DEFAULT NULL, `t0ms` time(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 AS SELECT ADDTIME(TIME'00:00:00', TIME'00:00:01') AS t0s0, ADDTIME(TIME'00:00:00', TIME'00:00:01.1') AS t0s1, ADDTIME(TIME'00:00:00', TIME'00:00:01.12') AS t0s2, ADDTIME(TIME'00:00:00', TIME'00:00:01.123') AS t0s3, ADDTIME(TIME'00:00:00', TIME'00:00:01.1234') AS t0s4, ADDTIME(TIME'00:00:00', TIME'00:00:01.12345') AS t0s5, ADDTIME(TIME'00:00:00', TIME'00:00:01.123457') AS t0s6, ADDTIME(TIME'00:00:00.1', TIME '00:00:00') AS t1s0, ADDTIME(TIME'00:00:00.12', TIME '00:00:00') AS t2s0, ADDTIME(TIME'00:00:00.123', TIME '00:00:00') AS t3s0, ADDTIME(TIME'00:00:00.1234', TIME '00:00:00') AS t4s0, ADDTIME(TIME'00:00:00.12345', TIME '00:00:00') AS t5s0, ADDTIME(TIME'00:00:00.123456', TIME '00:00:00') AS t6s0; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `t0s0` time DEFAULT NULL, `t0s1` time(1) DEFAULT NULL, `t0s2` time(2) DEFAULT NULL, `t0s3` time(3) DEFAULT NULL, `t0s4` time(4) DEFAULT NULL, `t0s5` time(5) DEFAULT NULL, `t0s6` time(6) DEFAULT NULL, `t1s0` time(1) DEFAULT NULL, `t2s0` time(2) DEFAULT NULL, `t3s0` time(3) DEFAULT NULL, `t4s0` time(4) DEFAULT NULL, `t5s0` time(5) DEFAULT NULL, `t6s0` time(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; # # Testing that CAST from various fields to TIME rounds. # This tests Field::get_time(). CREATE TABLE t1 (a VARCHAR(32)); INSERT INTO t1 VALUES ('838:59:58.0000009'), ('838:59:58.9'), ('-838:59:58.0000009'), ('-838:59:58.9'), ('10:10:10.9999994'), ('10:10:10.9999995'), ('-10:10:10.9999994'), ('-10:10:10.9999995'); SELECT a, CAST(a AS TIME), CAST(a AS TIME(6)) FROM t1; a CAST(a AS TIME) CAST(a AS TIME(6)) 838:59:58.0000009 838:59:58 838:59:58.000001 838:59:58.9 838:59:59 838:59:58.900000 -838:59:58.0000009 -838:59:58 -838:59:58.000001 -838:59:58.9 -838:59:59 -838:59:58.900000 10:10:10.9999994 10:10:11 10:10:10.999999 10:10:10.9999995 10:10:11 10:10:11.000000 -10:10:10.9999994 -10:10:11 -10:10:10.999999 -10:10:10.9999995 -10:10:11 -10:10:11.000000 DROP TABLE t1; CREATE TABLE t1 (a DECIMAL(30,7)); INSERT INTO t1 VALUES (8385958.0000009), (8385958.9), (-8385958.0000009), (-8385958.9), (101010.9999994), (101010.9999995), (-101010.9999994), (-101010.9999995); SELECT a, CAST(a AS TIME), CAST(a AS TIME(6)) FROM t1; a CAST(a AS TIME) CAST(a AS TIME(6)) 8385958.0000009 838:59:58 838:59:58.000001 8385958.9000000 838:59:59 838:59:58.900000 -8385958.0000009 -838:59:58 -838:59:58.000001 -8385958.9000000 -838:59:59 -838:59:58.900000 101010.9999994 10:10:11 10:10:10.999999 101010.9999995 10:10:11 10:10:11.000000 -101010.9999994 -10:10:11 -10:10:10.999999 -101010.9999995 -10:10:11 -10:10:11.000000 ALTER TABLE t1 MODIFY a DOUBLE; SELECT a, CAST(a AS TIME), CAST(a AS TIME(6)) FROM t1; a CAST(a AS TIME) CAST(a AS TIME(6)) 8385958.0000009 838:59:58 838:59:58.000001 8385958.9 838:59:59 838:59:58.900000 -8385958.0000009 -838:59:58 -838:59:58.000001 -8385958.9 -838:59:59 -838:59:58.900000 101010.9999994 10:10:11 10:10:10.999999 101010.9999995 10:10:11 10:10:11.000000 -101010.9999994 -10:10:11 -10:10:10.999999 -101010.9999995 -10:10:11 -10:10:11.000000 DROP TABLE t1; # # Testing that Item::get_time() rounds # SELECT CAST('10:10:10.9999994' AS TIME), CAST('10:10:10.9999995' AS TIME), CAST('10:10:10.9999994' AS TIME(6)), CAST('10:10:10.9999995' AS TIME(6)), CAST(101010.9999994 AS TIME), CAST(101010.9999995 AS TIME), CAST(101010.9999994 AS TIME(6)), CAST(101010.9999995 AS TIME(6)); CAST('10:10:10.9999994' AS TIME) 10:10:11 CAST('10:10:10.9999995' AS TIME) 10:10:11 CAST('10:10:10.9999994' AS TIME(6)) 10:10:10.999999 CAST('10:10:10.9999995' AS TIME(6)) 10:10:11.000000 CAST(101010.9999994 AS TIME) 10:10:11 CAST(101010.9999995 AS TIME) 10:10:11 CAST(101010.9999994 AS TIME(6)) 10:10:10.999999 CAST(101010.9999995 AS TIME(6)) 10:10:11.000000 # # Testing that comparison rounds # CREATE TABLE t1 (t0 TIME, t6 TIME(6)); INSERT INTO t1 VALUES ('00:00:00', '00:00:00.999999'); INSERT INTO t1 VALUES ('00:00:01', '00:00:01.000000'); SELECT t0 FROM t1 WHERE t6='00:00:00.9999998'; t0 00:00:01 SELECT t6 FROM t1 WHERE t6='00:00:00.9999998'; t6 00:00:01.000000 DROP TABLE t1; # # Testing that EXTRACT rounds # SELECT EXTRACT(MICROSECOND FROM '00:00:00.9999994'), EXTRACT(MICROSECOND FROM '00:00:00.9999995'), EXTRACT(MICROSECOND FROM 0.9999994), EXTRACT(MICROSECOND FROM 0.9999995); EXTRACT(MICROSECOND FROM '00:00:00.9999994') 999999 EXTRACT(MICROSECOND FROM '00:00:00.9999995') 0 EXTRACT(MICROSECOND FROM 0.9999994) 999999 EXTRACT(MICROSECOND FROM 0.9999995) 0 # # Testing that DATETIME(0) is a synonym to non-fractional DATETIME # CREATE TABLE t1 (a DATETIME(0) NOT NULL); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` datetime NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; # # Testing internal representation format for DATETIME(N) # CREATE TABLE t1 (a6 VARCHAR(32)); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000001'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000002'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000003'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000004'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000005'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000006'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000007'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000008'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000009'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000010'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000011'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000012'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000013'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000014'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000015'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000016'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000099'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000999'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.009999'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.099999'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.100000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.900000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.990000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.999000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.999900'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.999990'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.999999'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000001'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000002'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000003'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000004'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000005'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000006'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000007'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000008'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000009'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000010'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000011'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000012'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000013'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000014'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000015'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000016'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000099'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.000999'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.009999'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.090000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.099999'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.100000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.900000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.990000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.999000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.999900'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.999990'); INSERT INTO t1 VALUES ('0000-00-00 00:00:01.999999'); INSERT INTO t1 VALUES ('0000-00-00 00:01:00.000001'); INSERT INTO t1 VALUES ('0000-00-00 00:01:00.000008'); INSERT INTO t1 VALUES ('0000-00-00 00:01:00.000015'); INSERT INTO t1 VALUES ('0000-00-00 00:01:00.000016'); INSERT INTO t1 VALUES ('0000-00-00 00:01:00.000099'); INSERT INTO t1 VALUES ('0000-00-00 00:01:00.000999'); INSERT INTO t1 VALUES ('0000-00-00 00:01:00.009999'); INSERT INTO t1 VALUES ('0000-00-00 00:01:00.099999'); INSERT INTO t1 VALUES ('0000-00-00 00:01:00.100000'); INSERT INTO t1 VALUES ('0000-00-00 00:01:00.900000'); INSERT INTO t1 VALUES ('0000-00-00 00:01:00.999999'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.000001'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.000008'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.000015'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.000016'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.000099'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.000999'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.009999'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.099999'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.100000'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.900000'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.990000'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.999000'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.999900'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.999990'); INSERT INTO t1 VALUES ('0000-00-00 01:00:00.999999'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.000001'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.000008'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.000015'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.000016'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.000099'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.000999'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.009999'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.099999'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.100000'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.900000'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.990000'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.999000'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.999900'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.999990'); INSERT INTO t1 VALUES ('1001-01-01 00:00:00.999999'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.000001'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.000008'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.000015'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.000016'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.000099'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.000999'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.009999'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.099999'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.100000'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.900000'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.990000'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.999000'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.999900'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.999990'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.999999'); INSERT INTO t1 VALUES ('2001-01-01 23:59:59.000000'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.000001'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.000008'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.000015'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.000016'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.000099'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.000999'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.009999'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.099999'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.100000'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.900000'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.990000'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.999000'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.999900'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.999990'); INSERT INTO t1 VALUES ('9999-12-31 23:59:58.999999'); INSERT INTO t1 VALUES ('9999-12-31 23:59:59.000000'); ALTER TABLE t1 ADD a0 VARCHAR(32), ADD a1 VARCHAR(32), ADD a2 VARCHAR(32), ADD a3 VARCHAR(32), ADD a4 VARCHAR(32), ADD a5 VARCHAR(32), ADD d0 DATETIME(0), ADD d1 DATETIME(1), ADD d2 DATETIME(2), ADD d3 DATETIME(3), ADD d4 DATETIME(4), ADD d5 DATETIME(5), ADD d6 DATETIME(6); SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; Warnings: Warning 3090 Changing sql mode 'NO_AUTO_CREATE_USER' is deprecated. It will be removed in a future release. UPDATE t1 SET a0= LEFT(a6, LENGTH(a6) - 6), a1= LEFT(a6, LENGTH(a6) - 5), a2= LEFT(a6, LENGTH(a6) - 4), a3= LEFT(a6, LENGTH(a6) - 3), a4= LEFT(a6, LENGTH(a6) - 2), a5= LEFT(a6, LENGTH(a6) - 1); UPDATE IGNORE t1 SET d0= a0, d1= a1, d2= a2, d3= a3, d4= a4, d5= a5, d6= a6; SELECT a6, d6, HEX(WEIGHT_STRING(d6)) FROM t1 ORDER BY d6; a6 d6 HEX(WEIGHT_STRING(d6)) 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 8000000000000000 0000-00-00 00:00:00.000001 0000-00-00 00:00:00.000001 8000000000000001 0000-00-00 00:00:00.000002 0000-00-00 00:00:00.000002 8000000000000002 0000-00-00 00:00:00.000003 0000-00-00 00:00:00.000003 8000000000000003 0000-00-00 00:00:00.000004 0000-00-00 00:00:00.000004 8000000000000004 0000-00-00 00:00:00.000005 0000-00-00 00:00:00.000005 8000000000000005 0000-00-00 00:00:00.000006 0000-00-00 00:00:00.000006 8000000000000006 0000-00-00 00:00:00.000007 0000-00-00 00:00:00.000007 8000000000000007 0000-00-00 00:00:00.000008 0000-00-00 00:00:00.000008 8000000000000008 0000-00-00 00:00:00.000009 0000-00-00 00:00:00.000009 8000000000000009 0000-00-00 00:00:00.000010 0000-00-00 00:00:00.000010 800000000000000A 0000-00-00 00:00:00.000011 0000-00-00 00:00:00.000011 800000000000000B 0000-00-00 00:00:00.000012 0000-00-00 00:00:00.000012 800000000000000C 0000-00-00 00:00:00.000013 0000-00-00 00:00:00.000013 800000000000000D 0000-00-00 00:00:00.000014 0000-00-00 00:00:00.000014 800000000000000E 0000-00-00 00:00:00.000015 0000-00-00 00:00:00.000015 800000000000000F 0000-00-00 00:00:00.000016 0000-00-00 00:00:00.000016 8000000000000010 0000-00-00 00:00:00.000099 0000-00-00 00:00:00.000099 8000000000000063 0000-00-00 00:00:00.000999 0000-00-00 00:00:00.000999 80000000000003E7 0000-00-00 00:00:00.009999 0000-00-00 00:00:00.009999 800000000000270F 0000-00-00 00:00:00.099999 0000-00-00 00:00:00.099999 800000000001869F 0000-00-00 00:00:00.100000 0000-00-00 00:00:00.100000 80000000000186A0 0000-00-00 00:00:00.900000 0000-00-00 00:00:00.900000 80000000000DBBA0 0000-00-00 00:00:00.990000 0000-00-00 00:00:00.990000 80000000000F1B30 0000-00-00 00:00:00.999000 0000-00-00 00:00:00.999000 80000000000F3E58 0000-00-00 00:00:00.999900 0000-00-00 00:00:00.999900 80000000000F41DC 0000-00-00 00:00:00.999990 0000-00-00 00:00:00.999990 80000000000F4236 0000-00-00 00:00:00.999999 0000-00-00 00:00:00.999999 80000000000F423F 0000-00-00 00:00:01.000000 0000-00-00 00:00:01.000000 8000000001000000 0000-00-00 00:00:01.000001 0000-00-00 00:00:01.000001 8000000001000001 0000-00-00 00:00:01.000002 0000-00-00 00:00:01.000002 8000000001000002 0000-00-00 00:00:01.000003 0000-00-00 00:00:01.000003 8000000001000003 0000-00-00 00:00:01.000004 0000-00-00 00:00:01.000004 8000000001000004 0000-00-00 00:00:01.000005 0000-00-00 00:00:01.000005 8000000001000005 0000-00-00 00:00:01.000006 0000-00-00 00:00:01.000006 8000000001000006 0000-00-00 00:00:01.000007 0000-00-00 00:00:01.000007 8000000001000007 0000-00-00 00:00:01.000008 0000-00-00 00:00:01.000008 8000000001000008 0000-00-00 00:00:01.000009 0000-00-00 00:00:01.000009 8000000001000009 0000-00-00 00:00:01.000010 0000-00-00 00:00:01.000010 800000000100000A 0000-00-00 00:00:01.000011 0000-00-00 00:00:01.000011 800000000100000B 0000-00-00 00:00:01.000012 0000-00-00 00:00:01.000012 800000000100000C 0000-00-00 00:00:01.000013 0000-00-00 00:00:01.000013 800000000100000D 0000-00-00 00:00:01.000014 0000-00-00 00:00:01.000014 800000000100000E 0000-00-00 00:00:01.000015 0000-00-00 00:00:01.000015 800000000100000F 0000-00-00 00:00:01.000016 0000-00-00 00:00:01.000016 8000000001000010 0000-00-00 00:00:01.000099 0000-00-00 00:00:01.000099 8000000001000063 0000-00-00 00:00:01.000999 0000-00-00 00:00:01.000999 80000000010003E7 0000-00-00 00:00:01.009999 0000-00-00 00:00:01.009999 800000000100270F 0000-00-00 00:00:01.090000 0000-00-00 00:00:01.090000 8000000001015F90 0000-00-00 00:00:01.099999 0000-00-00 00:00:01.099999 800000000101869F 0000-00-00 00:00:01.100000 0000-00-00 00:00:01.100000 80000000010186A0 0000-00-00 00:00:01.900000 0000-00-00 00:00:01.900000 80000000010DBBA0 0000-00-00 00:00:01.990000 0000-00-00 00:00:01.990000 80000000010F1B30 0000-00-00 00:00:01.999000 0000-00-00 00:00:01.999000 80000000010F3E58 0000-00-00 00:00:01.999900 0000-00-00 00:00:01.999900 80000000010F41DC 0000-00-00 00:00:01.999990 0000-00-00 00:00:01.999990 80000000010F4236 0000-00-00 00:00:01.999999 0000-00-00 00:00:01.999999 80000000010F423F 0000-00-00 00:01:00.000001 0000-00-00 00:01:00.000001 8000000040000001 0000-00-00 00:01:00.000008 0000-00-00 00:01:00.000008 8000000040000008 0000-00-00 00:01:00.000015 0000-00-00 00:01:00.000015 800000004000000F 0000-00-00 00:01:00.000016 0000-00-00 00:01:00.000016 8000000040000010 0000-00-00 00:01:00.000099 0000-00-00 00:01:00.000099 8000000040000063 0000-00-00 00:01:00.000999 0000-00-00 00:01:00.000999 80000000400003E7 0000-00-00 00:01:00.009999 0000-00-00 00:01:00.009999 800000004000270F 0000-00-00 00:01:00.099999 0000-00-00 00:01:00.099999 800000004001869F 0000-00-00 00:01:00.100000 0000-00-00 00:01:00.100000 80000000400186A0 0000-00-00 00:01:00.900000 0000-00-00 00:01:00.900000 80000000400DBBA0 0000-00-00 00:01:00.999999 0000-00-00 00:01:00.999999 80000000400F423F 0000-00-00 01:00:00.000001 0000-00-00 01:00:00.000001 8000001000000001 0000-00-00 01:00:00.000008 0000-00-00 01:00:00.000008 8000001000000008 0000-00-00 01:00:00.000015 0000-00-00 01:00:00.000015 800000100000000F 0000-00-00 01:00:00.000016 0000-00-00 01:00:00.000016 8000001000000010 0000-00-00 01:00:00.000099 0000-00-00 01:00:00.000099 8000001000000063 0000-00-00 01:00:00.000999 0000-00-00 01:00:00.000999 80000010000003E7 0000-00-00 01:00:00.009999 0000-00-00 01:00:00.009999 800000100000270F 0000-00-00 01:00:00.099999 0000-00-00 01:00:00.099999 800000100001869F 0000-00-00 01:00:00.100000 0000-00-00 01:00:00.100000 80000010000186A0 0000-00-00 01:00:00.900000 0000-00-00 01:00:00.900000 80000010000DBBA0 0000-00-00 01:00:00.990000 0000-00-00 01:00:00.990000 80000010000F1B30 0000-00-00 01:00:00.999000 0000-00-00 01:00:00.999000 80000010000F3E58 0000-00-00 01:00:00.999900 0000-00-00 01:00:00.999900 80000010000F41DC 0000-00-00 01:00:00.999990 0000-00-00 01:00:00.999990 80000010000F4236 0000-00-00 01:00:00.999999 0000-00-00 01:00:00.999999 80000010000F423F 1001-01-01 00:00:00.000001 1001-01-01 00:00:00.000001 8CB5820000000001 1001-01-01 00:00:00.000008 1001-01-01 00:00:00.000008 8CB5820000000008 1001-01-01 00:00:00.000015 1001-01-01 00:00:00.000015 8CB582000000000F 1001-01-01 00:00:00.000016 1001-01-01 00:00:00.000016 8CB5820000000010 1001-01-01 00:00:00.000099 1001-01-01 00:00:00.000099 8CB5820000000063 1001-01-01 00:00:00.000999 1001-01-01 00:00:00.000999 8CB58200000003E7 1001-01-01 00:00:00.009999 1001-01-01 00:00:00.009999 8CB582000000270F 1001-01-01 00:00:00.099999 1001-01-01 00:00:00.099999 8CB582000001869F 1001-01-01 00:00:00.100000 1001-01-01 00:00:00.100000 8CB58200000186A0 1001-01-01 00:00:00.900000 1001-01-01 00:00:00.900000 8CB58200000DBBA0 1001-01-01 00:00:00.990000 1001-01-01 00:00:00.990000 8CB58200000F1B30 1001-01-01 00:00:00.999000 1001-01-01 00:00:00.999000 8CB58200000F3E58 1001-01-01 00:00:00.999900 1001-01-01 00:00:00.999900 8CB58200000F41DC 1001-01-01 00:00:00.999990 1001-01-01 00:00:00.999990 8CB58200000F4236 1001-01-01 00:00:00.999999 1001-01-01 00:00:00.999999 8CB58200000F423F 2001-01-01 23:59:58.000001 2001-01-01 23:59:58.000001 9967837EFA000001 2001-01-01 23:59:58.000008 2001-01-01 23:59:58.000008 9967837EFA000008 2001-01-01 23:59:58.000015 2001-01-01 23:59:58.000015 9967837EFA00000F 2001-01-01 23:59:58.000016 2001-01-01 23:59:58.000016 9967837EFA000010 2001-01-01 23:59:58.000099 2001-01-01 23:59:58.000099 9967837EFA000063 2001-01-01 23:59:58.000999 2001-01-01 23:59:58.000999 9967837EFA0003E7 2001-01-01 23:59:58.009999 2001-01-01 23:59:58.009999 9967837EFA00270F 2001-01-01 23:59:58.099999 2001-01-01 23:59:58.099999 9967837EFA01869F 2001-01-01 23:59:58.100000 2001-01-01 23:59:58.100000 9967837EFA0186A0 2001-01-01 23:59:58.900000 2001-01-01 23:59:58.900000 9967837EFA0DBBA0 2001-01-01 23:59:58.990000 2001-01-01 23:59:58.990000 9967837EFA0F1B30 2001-01-01 23:59:58.999000 2001-01-01 23:59:58.999000 9967837EFA0F3E58 2001-01-01 23:59:58.999900 2001-01-01 23:59:58.999900 9967837EFA0F41DC 2001-01-01 23:59:58.999990 2001-01-01 23:59:58.999990 9967837EFA0F4236 2001-01-01 23:59:58.999999 2001-01-01 23:59:58.999999 9967837EFA0F423F 2001-01-01 23:59:59.000000 2001-01-01 23:59:59.000000 9967837EFB000000 9999-12-31 23:59:58.000001 9999-12-31 23:59:58.000001 FEF3FF7EFA000001 9999-12-31 23:59:58.000008 9999-12-31 23:59:58.000008 FEF3FF7EFA000008 9999-12-31 23:59:58.000015 9999-12-31 23:59:58.000015 FEF3FF7EFA00000F 9999-12-31 23:59:58.000016 9999-12-31 23:59:58.000016 FEF3FF7EFA000010 9999-12-31 23:59:58.000099 9999-12-31 23:59:58.000099 FEF3FF7EFA000063 9999-12-31 23:59:58.000999 9999-12-31 23:59:58.000999 FEF3FF7EFA0003E7 9999-12-31 23:59:58.009999 9999-12-31 23:59:58.009999 FEF3FF7EFA00270F 9999-12-31 23:59:58.099999 9999-12-31 23:59:58.099999 FEF3FF7EFA01869F 9999-12-31 23:59:58.100000 9999-12-31 23:59:58.100000 FEF3FF7EFA0186A0 9999-12-31 23:59:58.900000 9999-12-31 23:59:58.900000 FEF3FF7EFA0DBBA0 9999-12-31 23:59:58.990000 9999-12-31 23:59:58.990000 FEF3FF7EFA0F1B30 9999-12-31 23:59:58.999000 9999-12-31 23:59:58.999000 FEF3FF7EFA0F3E58 9999-12-31 23:59:58.999900 9999-12-31 23:59:58.999900 FEF3FF7EFA0F41DC 9999-12-31 23:59:58.999990 9999-12-31 23:59:58.999990 FEF3FF7EFA0F4236 9999-12-31 23:59:58.999999 9999-12-31 23:59:58.999999 FEF3FF7EFA0F423F 9999-12-31 23:59:59.000000 9999-12-31 23:59:59.000000 FEF3FF7EFB000000 SELECT a5, d5, HEX(WEIGHT_STRING(d5)) FROM t1 ORDER BY d5, a6; a5 d5 HEX(WEIGHT_STRING(d5)) 0000-00-00 00:00:00.00000 0000-00-00 00:00:00.00000 8000000000000000 0000-00-00 00:00:00.00000 0000-00-00 00:00:00.00000 8000000000000000 0000-00-00 00:00:00.00000 0000-00-00 00:00:00.00000 8000000000000000 0000-00-00 00:00:00.00000 0000-00-00 00:00:00.00000 8000000000000000 0000-00-00 00:00:00.00000 0000-00-00 00:00:00.00000 8000000000000000 0000-00-00 00:00:00.00000 0000-00-00 00:00:00.00000 8000000000000000 0000-00-00 00:00:00.00000 0000-00-00 00:00:00.00000 8000000000000000 0000-00-00 00:00:00.00000 0000-00-00 00:00:00.00000 8000000000000000 0000-00-00 00:00:00.00000 0000-00-00 00:00:00.00000 8000000000000000 0000-00-00 00:00:00.00000 0000-00-00 00:00:00.00000 8000000000000000 0000-00-00 00:00:00.00001 0000-00-00 00:00:00.00001 800000000000000A 0000-00-00 00:00:00.00001 0000-00-00 00:00:00.00001 800000000000000A 0000-00-00 00:00:00.00001 0000-00-00 00:00:00.00001 800000000000000A 0000-00-00 00:00:00.00001 0000-00-00 00:00:00.00001 800000000000000A 0000-00-00 00:00:00.00001 0000-00-00 00:00:00.00001 800000000000000A 0000-00-00 00:00:00.00001 0000-00-00 00:00:00.00001 800000000000000A 0000-00-00 00:00:00.00001 0000-00-00 00:00:00.00001 800000000000000A 0000-00-00 00:00:00.00009 0000-00-00 00:00:00.00009 800000000000005A 0000-00-00 00:00:00.00099 0000-00-00 00:00:00.00099 80000000000003DE 0000-00-00 00:00:00.00999 0000-00-00 00:00:00.00999 8000000000002706 0000-00-00 00:00:00.09999 0000-00-00 00:00:00.09999 8000000000018696 0000-00-00 00:00:00.10000 0000-00-00 00:00:00.10000 80000000000186A0 0000-00-00 00:00:00.90000 0000-00-00 00:00:00.90000 80000000000DBBA0 0000-00-00 00:00:00.99000 0000-00-00 00:00:00.99000 80000000000F1B30 0000-00-00 00:00:00.99900 0000-00-00 00:00:00.99900 80000000000F3E58 0000-00-00 00:00:00.99990 0000-00-00 00:00:00.99990 80000000000F41DC 0000-00-00 00:00:00.99999 0000-00-00 00:00:00.99999 80000000000F4236 0000-00-00 00:00:00.99999 0000-00-00 00:00:00.99999 80000000000F4236 0000-00-00 00:00:01.00000 0000-00-00 00:00:01.00000 8000000001000000 0000-00-00 00:00:01.00000 0000-00-00 00:00:01.00000 8000000001000000 0000-00-00 00:00:01.00000 0000-00-00 00:00:01.00000 8000000001000000 0000-00-00 00:00:01.00000 0000-00-00 00:00:01.00000 8000000001000000 0000-00-00 00:00:01.00000 0000-00-00 00:00:01.00000 8000000001000000 0000-00-00 00:00:01.00000 0000-00-00 00:00:01.00000 8000000001000000 0000-00-00 00:00:01.00000 0000-00-00 00:00:01.00000 8000000001000000 0000-00-00 00:00:01.00000 0000-00-00 00:00:01.00000 8000000001000000 0000-00-00 00:00:01.00000 0000-00-00 00:00:01.00000 8000000001000000 0000-00-00 00:00:01.00000 0000-00-00 00:00:01.00000 8000000001000000 0000-00-00 00:00:01.00001 0000-00-00 00:00:01.00001 800000000100000A 0000-00-00 00:00:01.00001 0000-00-00 00:00:01.00001 800000000100000A 0000-00-00 00:00:01.00001 0000-00-00 00:00:01.00001 800000000100000A 0000-00-00 00:00:01.00001 0000-00-00 00:00:01.00001 800000000100000A 0000-00-00 00:00:01.00001 0000-00-00 00:00:01.00001 800000000100000A 0000-00-00 00:00:01.00001 0000-00-00 00:00:01.00001 800000000100000A 0000-00-00 00:00:01.00001 0000-00-00 00:00:01.00001 800000000100000A 0000-00-00 00:00:01.00009 0000-00-00 00:00:01.00009 800000000100005A 0000-00-00 00:00:01.00099 0000-00-00 00:00:01.00099 80000000010003DE 0000-00-00 00:00:01.00999 0000-00-00 00:00:01.00999 8000000001002706 0000-00-00 00:00:01.09000 0000-00-00 00:00:01.09000 8000000001015F90 0000-00-00 00:00:01.09999 0000-00-00 00:00:01.09999 8000000001018696 0000-00-00 00:00:01.10000 0000-00-00 00:00:01.10000 80000000010186A0 0000-00-00 00:00:01.90000 0000-00-00 00:00:01.90000 80000000010DBBA0 0000-00-00 00:00:01.99000 0000-00-00 00:00:01.99000 80000000010F1B30 0000-00-00 00:00:01.99900 0000-00-00 00:00:01.99900 80000000010F3E58 0000-00-00 00:00:01.99990 0000-00-00 00:00:01.99990 80000000010F41DC 0000-00-00 00:00:01.99999 0000-00-00 00:00:01.99999 80000000010F4236 0000-00-00 00:00:01.99999 0000-00-00 00:00:01.99999 80000000010F4236 0000-00-00 00:01:00.00000 0000-00-00 00:01:00.00000 8000000040000000 0000-00-00 00:01:00.00000 0000-00-00 00:01:00.00000 8000000040000000 0000-00-00 00:01:00.00001 0000-00-00 00:01:00.00001 800000004000000A 0000-00-00 00:01:00.00001 0000-00-00 00:01:00.00001 800000004000000A 0000-00-00 00:01:00.00009 0000-00-00 00:01:00.00009 800000004000005A 0000-00-00 00:01:00.00099 0000-00-00 00:01:00.00099 80000000400003DE 0000-00-00 00:01:00.00999 0000-00-00 00:01:00.00999 8000000040002706 0000-00-00 00:01:00.09999 0000-00-00 00:01:00.09999 8000000040018696 0000-00-00 00:01:00.10000 0000-00-00 00:01:00.10000 80000000400186A0 0000-00-00 00:01:00.90000 0000-00-00 00:01:00.90000 80000000400DBBA0 0000-00-00 00:01:00.99999 0000-00-00 00:01:00.99999 80000000400F4236 0000-00-00 01:00:00.00000 0000-00-00 01:00:00.00000 8000001000000000 0000-00-00 01:00:00.00000 0000-00-00 01:00:00.00000 8000001000000000 0000-00-00 01:00:00.00001 0000-00-00 01:00:00.00001 800000100000000A 0000-00-00 01:00:00.00001 0000-00-00 01:00:00.00001 800000100000000A 0000-00-00 01:00:00.00009 0000-00-00 01:00:00.00009 800000100000005A 0000-00-00 01:00:00.00099 0000-00-00 01:00:00.00099 80000010000003DE 0000-00-00 01:00:00.00999 0000-00-00 01:00:00.00999 8000001000002706 0000-00-00 01:00:00.09999 0000-00-00 01:00:00.09999 8000001000018696 0000-00-00 01:00:00.10000 0000-00-00 01:00:00.10000 80000010000186A0 0000-00-00 01:00:00.90000 0000-00-00 01:00:00.90000 80000010000DBBA0 0000-00-00 01:00:00.99000 0000-00-00 01:00:00.99000 80000010000F1B30 0000-00-00 01:00:00.99900 0000-00-00 01:00:00.99900 80000010000F3E58 0000-00-00 01:00:00.99990 0000-00-00 01:00:00.99990 80000010000F41DC 0000-00-00 01:00:00.99999 0000-00-00 01:00:00.99999 80000010000F4236 0000-00-00 01:00:00.99999 0000-00-00 01:00:00.99999 80000010000F4236 1001-01-01 00:00:00.00000 1001-01-01 00:00:00.00000 8CB5820000000000 1001-01-01 00:00:00.00000 1001-01-01 00:00:00.00000 8CB5820000000000 1001-01-01 00:00:00.00001 1001-01-01 00:00:00.00001 8CB582000000000A 1001-01-01 00:00:00.00001 1001-01-01 00:00:00.00001 8CB582000000000A 1001-01-01 00:00:00.00009 1001-01-01 00:00:00.00009 8CB582000000005A 1001-01-01 00:00:00.00099 1001-01-01 00:00:00.00099 8CB58200000003DE 1001-01-01 00:00:00.00999 1001-01-01 00:00:00.00999 8CB5820000002706 1001-01-01 00:00:00.09999 1001-01-01 00:00:00.09999 8CB5820000018696 1001-01-01 00:00:00.10000 1001-01-01 00:00:00.10000 8CB58200000186A0 1001-01-01 00:00:00.90000 1001-01-01 00:00:00.90000 8CB58200000DBBA0 1001-01-01 00:00:00.99000 1001-01-01 00:00:00.99000 8CB58200000F1B30 1001-01-01 00:00:00.99900 1001-01-01 00:00:00.99900 8CB58200000F3E58 1001-01-01 00:00:00.99990 1001-01-01 00:00:00.99990 8CB58200000F41DC 1001-01-01 00:00:00.99999 1001-01-01 00:00:00.99999 8CB58200000F4236 1001-01-01 00:00:00.99999 1001-01-01 00:00:00.99999 8CB58200000F4236 2001-01-01 23:59:58.00000 2001-01-01 23:59:58.00000 9967837EFA000000 2001-01-01 23:59:58.00000 2001-01-01 23:59:58.00000 9967837EFA000000 2001-01-01 23:59:58.00001 2001-01-01 23:59:58.00001 9967837EFA00000A 2001-01-01 23:59:58.00001 2001-01-01 23:59:58.00001 9967837EFA00000A 2001-01-01 23:59:58.00009 2001-01-01 23:59:58.00009 9967837EFA00005A 2001-01-01 23:59:58.00099 2001-01-01 23:59:58.00099 9967837EFA0003DE 2001-01-01 23:59:58.00999 2001-01-01 23:59:58.00999 9967837EFA002706 2001-01-01 23:59:58.09999 2001-01-01 23:59:58.09999 9967837EFA018696 2001-01-01 23:59:58.10000 2001-01-01 23:59:58.10000 9967837EFA0186A0 2001-01-01 23:59:58.90000 2001-01-01 23:59:58.90000 9967837EFA0DBBA0 2001-01-01 23:59:58.99000 2001-01-01 23:59:58.99000 9967837EFA0F1B30 2001-01-01 23:59:58.99900 2001-01-01 23:59:58.99900 9967837EFA0F3E58 2001-01-01 23:59:58.99990 2001-01-01 23:59:58.99990 9967837EFA0F41DC 2001-01-01 23:59:58.99999 2001-01-01 23:59:58.99999 9967837EFA0F4236 2001-01-01 23:59:58.99999 2001-01-01 23:59:58.99999 9967837EFA0F4236 2001-01-01 23:59:59.00000 2001-01-01 23:59:59.00000 9967837EFB000000 9999-12-31 23:59:58.00000 9999-12-31 23:59:58.00000 FEF3FF7EFA000000 9999-12-31 23:59:58.00000 9999-12-31 23:59:58.00000 FEF3FF7EFA000000 9999-12-31 23:59:58.00001 9999-12-31 23:59:58.00001 FEF3FF7EFA00000A 9999-12-31 23:59:58.00001 9999-12-31 23:59:58.00001 FEF3FF7EFA00000A 9999-12-31 23:59:58.00009 9999-12-31 23:59:58.00009 FEF3FF7EFA00005A 9999-12-31 23:59:58.00099 9999-12-31 23:59:58.00099 FEF3FF7EFA0003DE 9999-12-31 23:59:58.00999 9999-12-31 23:59:58.00999 FEF3FF7EFA002706 9999-12-31 23:59:58.09999 9999-12-31 23:59:58.09999 FEF3FF7EFA018696 9999-12-31 23:59:58.10000 9999-12-31 23:59:58.10000 FEF3FF7EFA0186A0 9999-12-31 23:59:58.90000 9999-12-31 23:59:58.90000 FEF3FF7EFA0DBBA0 9999-12-31 23:59:58.99000 9999-12-31 23:59:58.99000 FEF3FF7EFA0F1B30 9999-12-31 23:59:58.99900 9999-12-31 23:59:58.99900 FEF3FF7EFA0F3E58 9999-12-31 23:59:58.99990 9999-12-31 23:59:58.99990 FEF3FF7EFA0F41DC 9999-12-31 23:59:58.99999 9999-12-31 23:59:58.99999 FEF3FF7EFA0F4236 9999-12-31 23:59:58.99999 9999-12-31 23:59:58.99999 FEF3FF7EFA0F4236 9999-12-31 23:59:59.00000 9999-12-31 23:59:59.00000 FEF3FF7EFB000000 SELECT a4, d4, HEX(WEIGHT_STRING(d4)) FROM t1 ORDER BY d4, a6; a4 d4 HEX(WEIGHT_STRING(d4)) 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 80000000000000 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 80000000000000 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 80000000000000 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 80000000000000 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 80000000000000 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 80000000000000 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 80000000000000 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 80000000000000 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 80000000000000 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 80000000000000 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 80000000000000 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 80000000000000 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 80000000000000 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 80000000000000 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 80000000000000 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 80000000000000 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 80000000000000 0000-00-00 00:00:00.0000 0000-00-00 00:00:00.0000 80000000000000 0000-00-00 00:00:00.0009 0000-00-00 00:00:00.0009 80000000000009 0000-00-00 00:00:00.0099 0000-00-00 00:00:00.0099 80000000000063 0000-00-00 00:00:00.0999 0000-00-00 00:00:00.0999 800000000003E7 0000-00-00 00:00:00.1000 0000-00-00 00:00:00.1000 800000000003E8 0000-00-00 00:00:00.9000 0000-00-00 00:00:00.9000 80000000002328 0000-00-00 00:00:00.9900 0000-00-00 00:00:00.9900 800000000026AC 0000-00-00 00:00:00.9990 0000-00-00 00:00:00.9990 80000000002706 0000-00-00 00:00:00.9999 0000-00-00 00:00:00.9999 8000000000270F 0000-00-00 00:00:00.9999 0000-00-00 00:00:00.9999 8000000000270F 0000-00-00 00:00:00.9999 0000-00-00 00:00:00.9999 8000000000270F 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 80000000010000 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 80000000010000 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 80000000010000 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 80000000010000 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 80000000010000 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 80000000010000 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 80000000010000 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 80000000010000 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 80000000010000 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 80000000010000 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 80000000010000 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 80000000010000 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 80000000010000 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 80000000010000 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 80000000010000 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 80000000010000 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 80000000010000 0000-00-00 00:00:01.0000 0000-00-00 00:00:01.0000 80000000010000 0000-00-00 00:00:01.0009 0000-00-00 00:00:01.0009 80000000010009 0000-00-00 00:00:01.0099 0000-00-00 00:00:01.0099 80000000010063 0000-00-00 00:00:01.0900 0000-00-00 00:00:01.0900 80000000010384 0000-00-00 00:00:01.0999 0000-00-00 00:00:01.0999 800000000103E7 0000-00-00 00:00:01.1000 0000-00-00 00:00:01.1000 800000000103E8 0000-00-00 00:00:01.9000 0000-00-00 00:00:01.9000 80000000012328 0000-00-00 00:00:01.9900 0000-00-00 00:00:01.9900 800000000126AC 0000-00-00 00:00:01.9990 0000-00-00 00:00:01.9990 80000000012706 0000-00-00 00:00:01.9999 0000-00-00 00:00:01.9999 8000000001270F 0000-00-00 00:00:01.9999 0000-00-00 00:00:01.9999 8000000001270F 0000-00-00 00:00:01.9999 0000-00-00 00:00:01.9999 8000000001270F 0000-00-00 00:01:00.0000 0000-00-00 00:01:00.0000 80000000400000 0000-00-00 00:01:00.0000 0000-00-00 00:01:00.0000 80000000400000 0000-00-00 00:01:00.0000 0000-00-00 00:01:00.0000 80000000400000 0000-00-00 00:01:00.0000 0000-00-00 00:01:00.0000 80000000400000 0000-00-00 00:01:00.0000 0000-00-00 00:01:00.0000 80000000400000 0000-00-00 00:01:00.0009 0000-00-00 00:01:00.0009 80000000400009 0000-00-00 00:01:00.0099 0000-00-00 00:01:00.0099 80000000400063 0000-00-00 00:01:00.0999 0000-00-00 00:01:00.0999 800000004003E7 0000-00-00 00:01:00.1000 0000-00-00 00:01:00.1000 800000004003E8 0000-00-00 00:01:00.9000 0000-00-00 00:01:00.9000 80000000402328 0000-00-00 00:01:00.9999 0000-00-00 00:01:00.9999 8000000040270F 0000-00-00 01:00:00.0000 0000-00-00 01:00:00.0000 80000010000000 0000-00-00 01:00:00.0000 0000-00-00 01:00:00.0000 80000010000000 0000-00-00 01:00:00.0000 0000-00-00 01:00:00.0000 80000010000000 0000-00-00 01:00:00.0000 0000-00-00 01:00:00.0000 80000010000000 0000-00-00 01:00:00.0000 0000-00-00 01:00:00.0000 80000010000000 0000-00-00 01:00:00.0009 0000-00-00 01:00:00.0009 80000010000009 0000-00-00 01:00:00.0099 0000-00-00 01:00:00.0099 80000010000063 0000-00-00 01:00:00.0999 0000-00-00 01:00:00.0999 800000100003E7 0000-00-00 01:00:00.1000 0000-00-00 01:00:00.1000 800000100003E8 0000-00-00 01:00:00.9000 0000-00-00 01:00:00.9000 80000010002328 0000-00-00 01:00:00.9900 0000-00-00 01:00:00.9900 800000100026AC 0000-00-00 01:00:00.9990 0000-00-00 01:00:00.9990 80000010002706 0000-00-00 01:00:00.9999 0000-00-00 01:00:00.9999 8000001000270F 0000-00-00 01:00:00.9999 0000-00-00 01:00:00.9999 8000001000270F 0000-00-00 01:00:00.9999 0000-00-00 01:00:00.9999 8000001000270F 1001-01-01 00:00:00.0000 1001-01-01 00:00:00.0000 8CB58200000000 1001-01-01 00:00:00.0000 1001-01-01 00:00:00.0000 8CB58200000000 1001-01-01 00:00:00.0000 1001-01-01 00:00:00.0000 8CB58200000000 1001-01-01 00:00:00.0000 1001-01-01 00:00:00.0000 8CB58200000000 1001-01-01 00:00:00.0000 1001-01-01 00:00:00.0000 8CB58200000000 1001-01-01 00:00:00.0009 1001-01-01 00:00:00.0009 8CB58200000009 1001-01-01 00:00:00.0099 1001-01-01 00:00:00.0099 8CB58200000063 1001-01-01 00:00:00.0999 1001-01-01 00:00:00.0999 8CB582000003E7 1001-01-01 00:00:00.1000 1001-01-01 00:00:00.1000 8CB582000003E8 1001-01-01 00:00:00.9000 1001-01-01 00:00:00.9000 8CB58200002328 1001-01-01 00:00:00.9900 1001-01-01 00:00:00.9900 8CB582000026AC 1001-01-01 00:00:00.9990 1001-01-01 00:00:00.9990 8CB58200002706 1001-01-01 00:00:00.9999 1001-01-01 00:00:00.9999 8CB5820000270F 1001-01-01 00:00:00.9999 1001-01-01 00:00:00.9999 8CB5820000270F 1001-01-01 00:00:00.9999 1001-01-01 00:00:00.9999 8CB5820000270F 2001-01-01 23:59:58.0000 2001-01-01 23:59:58.0000 9967837EFA0000 2001-01-01 23:59:58.0000 2001-01-01 23:59:58.0000 9967837EFA0000 2001-01-01 23:59:58.0000 2001-01-01 23:59:58.0000 9967837EFA0000 2001-01-01 23:59:58.0000 2001-01-01 23:59:58.0000 9967837EFA0000 2001-01-01 23:59:58.0000 2001-01-01 23:59:58.0000 9967837EFA0000 2001-01-01 23:59:58.0009 2001-01-01 23:59:58.0009 9967837EFA0009 2001-01-01 23:59:58.0099 2001-01-01 23:59:58.0099 9967837EFA0063 2001-01-01 23:59:58.0999 2001-01-01 23:59:58.0999 9967837EFA03E7 2001-01-01 23:59:58.1000 2001-01-01 23:59:58.1000 9967837EFA03E8 2001-01-01 23:59:58.9000 2001-01-01 23:59:58.9000 9967837EFA2328 2001-01-01 23:59:58.9900 2001-01-01 23:59:58.9900 9967837EFA26AC 2001-01-01 23:59:58.9990 2001-01-01 23:59:58.9990 9967837EFA2706 2001-01-01 23:59:58.9999 2001-01-01 23:59:58.9999 9967837EFA270F 2001-01-01 23:59:58.9999 2001-01-01 23:59:58.9999 9967837EFA270F 2001-01-01 23:59:58.9999 2001-01-01 23:59:58.9999 9967837EFA270F 2001-01-01 23:59:59.0000 2001-01-01 23:59:59.0000 9967837EFB0000 9999-12-31 23:59:58.0000 9999-12-31 23:59:58.0000 FEF3FF7EFA0000 9999-12-31 23:59:58.0000 9999-12-31 23:59:58.0000 FEF3FF7EFA0000 9999-12-31 23:59:58.0000 9999-12-31 23:59:58.0000 FEF3FF7EFA0000 9999-12-31 23:59:58.0000 9999-12-31 23:59:58.0000 FEF3FF7EFA0000 9999-12-31 23:59:58.0000 9999-12-31 23:59:58.0000 FEF3FF7EFA0000 9999-12-31 23:59:58.0009 9999-12-31 23:59:58.0009 FEF3FF7EFA0009 9999-12-31 23:59:58.0099 9999-12-31 23:59:58.0099 FEF3FF7EFA0063 9999-12-31 23:59:58.0999 9999-12-31 23:59:58.0999 FEF3FF7EFA03E7 9999-12-31 23:59:58.1000 9999-12-31 23:59:58.1000 FEF3FF7EFA03E8 9999-12-31 23:59:58.9000 9999-12-31 23:59:58.9000 FEF3FF7EFA2328 9999-12-31 23:59:58.9900 9999-12-31 23:59:58.9900 FEF3FF7EFA26AC 9999-12-31 23:59:58.9990 9999-12-31 23:59:58.9990 FEF3FF7EFA2706 9999-12-31 23:59:58.9999 9999-12-31 23:59:58.9999 FEF3FF7EFA270F 9999-12-31 23:59:58.9999 9999-12-31 23:59:58.9999 FEF3FF7EFA270F 9999-12-31 23:59:58.9999 9999-12-31 23:59:58.9999 FEF3FF7EFA270F 9999-12-31 23:59:59.0000 9999-12-31 23:59:59.0000 FEF3FF7EFB0000 SELECT a3, d3, HEX(WEIGHT_STRING(d3)) FROM t1 ORDER BY d3, a6; a3 d3 HEX(WEIGHT_STRING(d3)) 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 80000000000000 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 80000000000000 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 80000000000000 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 80000000000000 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 80000000000000 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 80000000000000 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 80000000000000 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 80000000000000 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 80000000000000 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 80000000000000 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 80000000000000 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 80000000000000 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 80000000000000 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 80000000000000 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 80000000000000 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 80000000000000 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 80000000000000 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 80000000000000 0000-00-00 00:00:00.000 0000-00-00 00:00:00.000 80000000000000 0000-00-00 00:00:00.009 0000-00-00 00:00:00.009 8000000000005A 0000-00-00 00:00:00.099 0000-00-00 00:00:00.099 800000000003DE 0000-00-00 00:00:00.100 0000-00-00 00:00:00.100 800000000003E8 0000-00-00 00:00:00.900 0000-00-00 00:00:00.900 80000000002328 0000-00-00 00:00:00.990 0000-00-00 00:00:00.990 800000000026AC 0000-00-00 00:00:00.999 0000-00-00 00:00:00.999 80000000002706 0000-00-00 00:00:00.999 0000-00-00 00:00:00.999 80000000002706 0000-00-00 00:00:00.999 0000-00-00 00:00:00.999 80000000002706 0000-00-00 00:00:00.999 0000-00-00 00:00:00.999 80000000002706 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 80000000010000 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 80000000010000 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 80000000010000 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 80000000010000 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 80000000010000 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 80000000010000 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 80000000010000 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 80000000010000 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 80000000010000 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 80000000010000 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 80000000010000 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 80000000010000 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 80000000010000 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 80000000010000 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 80000000010000 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 80000000010000 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 80000000010000 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 80000000010000 0000-00-00 00:00:01.000 0000-00-00 00:00:01.000 80000000010000 0000-00-00 00:00:01.009 0000-00-00 00:00:01.009 8000000001005A 0000-00-00 00:00:01.090 0000-00-00 00:00:01.090 80000000010384 0000-00-00 00:00:01.099 0000-00-00 00:00:01.099 800000000103DE 0000-00-00 00:00:01.100 0000-00-00 00:00:01.100 800000000103E8 0000-00-00 00:00:01.900 0000-00-00 00:00:01.900 80000000012328 0000-00-00 00:00:01.990 0000-00-00 00:00:01.990 800000000126AC 0000-00-00 00:00:01.999 0000-00-00 00:00:01.999 80000000012706 0000-00-00 00:00:01.999 0000-00-00 00:00:01.999 80000000012706 0000-00-00 00:00:01.999 0000-00-00 00:00:01.999 80000000012706 0000-00-00 00:00:01.999 0000-00-00 00:00:01.999 80000000012706 0000-00-00 00:01:00.000 0000-00-00 00:01:00.000 80000000400000 0000-00-00 00:01:00.000 0000-00-00 00:01:00.000 80000000400000 0000-00-00 00:01:00.000 0000-00-00 00:01:00.000 80000000400000 0000-00-00 00:01:00.000 0000-00-00 00:01:00.000 80000000400000 0000-00-00 00:01:00.000 0000-00-00 00:01:00.000 80000000400000 0000-00-00 00:01:00.000 0000-00-00 00:01:00.000 80000000400000 0000-00-00 00:01:00.009 0000-00-00 00:01:00.009 8000000040005A 0000-00-00 00:01:00.099 0000-00-00 00:01:00.099 800000004003DE 0000-00-00 00:01:00.100 0000-00-00 00:01:00.100 800000004003E8 0000-00-00 00:01:00.900 0000-00-00 00:01:00.900 80000000402328 0000-00-00 00:01:00.999 0000-00-00 00:01:00.999 80000000402706 0000-00-00 01:00:00.000 0000-00-00 01:00:00.000 80000010000000 0000-00-00 01:00:00.000 0000-00-00 01:00:00.000 80000010000000 0000-00-00 01:00:00.000 0000-00-00 01:00:00.000 80000010000000 0000-00-00 01:00:00.000 0000-00-00 01:00:00.000 80000010000000 0000-00-00 01:00:00.000 0000-00-00 01:00:00.000 80000010000000 0000-00-00 01:00:00.000 0000-00-00 01:00:00.000 80000010000000 0000-00-00 01:00:00.009 0000-00-00 01:00:00.009 8000001000005A 0000-00-00 01:00:00.099 0000-00-00 01:00:00.099 800000100003DE 0000-00-00 01:00:00.100 0000-00-00 01:00:00.100 800000100003E8 0000-00-00 01:00:00.900 0000-00-00 01:00:00.900 80000010002328 0000-00-00 01:00:00.990 0000-00-00 01:00:00.990 800000100026AC 0000-00-00 01:00:00.999 0000-00-00 01:00:00.999 80000010002706 0000-00-00 01:00:00.999 0000-00-00 01:00:00.999 80000010002706 0000-00-00 01:00:00.999 0000-00-00 01:00:00.999 80000010002706 0000-00-00 01:00:00.999 0000-00-00 01:00:00.999 80000010002706 1001-01-01 00:00:00.000 1001-01-01 00:00:00.000 8CB58200000000 1001-01-01 00:00:00.000 1001-01-01 00:00:00.000 8CB58200000000 1001-01-01 00:00:00.000 1001-01-01 00:00:00.000 8CB58200000000 1001-01-01 00:00:00.000 1001-01-01 00:00:00.000 8CB58200000000 1001-01-01 00:00:00.000 1001-01-01 00:00:00.000 8CB58200000000 1001-01-01 00:00:00.000 1001-01-01 00:00:00.000 8CB58200000000 1001-01-01 00:00:00.009 1001-01-01 00:00:00.009 8CB5820000005A 1001-01-01 00:00:00.099 1001-01-01 00:00:00.099 8CB582000003DE 1001-01-01 00:00:00.100 1001-01-01 00:00:00.100 8CB582000003E8 1001-01-01 00:00:00.900 1001-01-01 00:00:00.900 8CB58200002328 1001-01-01 00:00:00.990 1001-01-01 00:00:00.990 8CB582000026AC 1001-01-01 00:00:00.999 1001-01-01 00:00:00.999 8CB58200002706 1001-01-01 00:00:00.999 1001-01-01 00:00:00.999 8CB58200002706 1001-01-01 00:00:00.999 1001-01-01 00:00:00.999 8CB58200002706 1001-01-01 00:00:00.999 1001-01-01 00:00:00.999 8CB58200002706 2001-01-01 23:59:58.000 2001-01-01 23:59:58.000 9967837EFA0000 2001-01-01 23:59:58.000 2001-01-01 23:59:58.000 9967837EFA0000 2001-01-01 23:59:58.000 2001-01-01 23:59:58.000 9967837EFA0000 2001-01-01 23:59:58.000 2001-01-01 23:59:58.000 9967837EFA0000 2001-01-01 23:59:58.000 2001-01-01 23:59:58.000 9967837EFA0000 2001-01-01 23:59:58.000 2001-01-01 23:59:58.000 9967837EFA0000 2001-01-01 23:59:58.009 2001-01-01 23:59:58.009 9967837EFA005A 2001-01-01 23:59:58.099 2001-01-01 23:59:58.099 9967837EFA03DE 2001-01-01 23:59:58.100 2001-01-01 23:59:58.100 9967837EFA03E8 2001-01-01 23:59:58.900 2001-01-01 23:59:58.900 9967837EFA2328 2001-01-01 23:59:58.990 2001-01-01 23:59:58.990 9967837EFA26AC 2001-01-01 23:59:58.999 2001-01-01 23:59:58.999 9967837EFA2706 2001-01-01 23:59:58.999 2001-01-01 23:59:58.999 9967837EFA2706 2001-01-01 23:59:58.999 2001-01-01 23:59:58.999 9967837EFA2706 2001-01-01 23:59:58.999 2001-01-01 23:59:58.999 9967837EFA2706 2001-01-01 23:59:59.000 2001-01-01 23:59:59.000 9967837EFB0000 9999-12-31 23:59:58.000 9999-12-31 23:59:58.000 FEF3FF7EFA0000 9999-12-31 23:59:58.000 9999-12-31 23:59:58.000 FEF3FF7EFA0000 9999-12-31 23:59:58.000 9999-12-31 23:59:58.000 FEF3FF7EFA0000 9999-12-31 23:59:58.000 9999-12-31 23:59:58.000 FEF3FF7EFA0000 9999-12-31 23:59:58.000 9999-12-31 23:59:58.000 FEF3FF7EFA0000 9999-12-31 23:59:58.000 9999-12-31 23:59:58.000 FEF3FF7EFA0000 9999-12-31 23:59:58.009 9999-12-31 23:59:58.009 FEF3FF7EFA005A 9999-12-31 23:59:58.099 9999-12-31 23:59:58.099 FEF3FF7EFA03DE 9999-12-31 23:59:58.100 9999-12-31 23:59:58.100 FEF3FF7EFA03E8 9999-12-31 23:59:58.900 9999-12-31 23:59:58.900 FEF3FF7EFA2328 9999-12-31 23:59:58.990 9999-12-31 23:59:58.990 FEF3FF7EFA26AC 9999-12-31 23:59:58.999 9999-12-31 23:59:58.999 FEF3FF7EFA2706 9999-12-31 23:59:58.999 9999-12-31 23:59:58.999 FEF3FF7EFA2706 9999-12-31 23:59:58.999 9999-12-31 23:59:58.999 FEF3FF7EFA2706 9999-12-31 23:59:58.999 9999-12-31 23:59:58.999 FEF3FF7EFA2706 9999-12-31 23:59:59.000 9999-12-31 23:59:59.000 FEF3FF7EFB0000 SELECT a2, d2, HEX(WEIGHT_STRING(d2)) FROM t1 ORDER BY d2, a6; a2 d2 HEX(WEIGHT_STRING(d2)) 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 800000000000 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 800000000000 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 800000000000 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 800000000000 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 800000000000 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 800000000000 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 800000000000 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 800000000000 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 800000000000 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 800000000000 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 800000000000 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 800000000000 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 800000000000 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 800000000000 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 800000000000 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 800000000000 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 800000000000 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 800000000000 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 800000000000 0000-00-00 00:00:00.00 0000-00-00 00:00:00.00 800000000000 0000-00-00 00:00:00.09 0000-00-00 00:00:00.09 800000000009 0000-00-00 00:00:00.10 0000-00-00 00:00:00.10 80000000000A 0000-00-00 00:00:00.90 0000-00-00 00:00:00.90 80000000005A 0000-00-00 00:00:00.99 0000-00-00 00:00:00.99 800000000063 0000-00-00 00:00:00.99 0000-00-00 00:00:00.99 800000000063 0000-00-00 00:00:00.99 0000-00-00 00:00:00.99 800000000063 0000-00-00 00:00:00.99 0000-00-00 00:00:00.99 800000000063 0000-00-00 00:00:00.99 0000-00-00 00:00:00.99 800000000063 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 800000000100 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 800000000100 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 800000000100 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 800000000100 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 800000000100 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 800000000100 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 800000000100 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 800000000100 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 800000000100 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 800000000100 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 800000000100 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 800000000100 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 800000000100 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 800000000100 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 800000000100 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 800000000100 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 800000000100 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 800000000100 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 800000000100 0000-00-00 00:00:01.00 0000-00-00 00:00:01.00 800000000100 0000-00-00 00:00:01.09 0000-00-00 00:00:01.09 800000000109 0000-00-00 00:00:01.09 0000-00-00 00:00:01.09 800000000109 0000-00-00 00:00:01.10 0000-00-00 00:00:01.10 80000000010A 0000-00-00 00:00:01.90 0000-00-00 00:00:01.90 80000000015A 0000-00-00 00:00:01.99 0000-00-00 00:00:01.99 800000000163 0000-00-00 00:00:01.99 0000-00-00 00:00:01.99 800000000163 0000-00-00 00:00:01.99 0000-00-00 00:00:01.99 800000000163 0000-00-00 00:00:01.99 0000-00-00 00:00:01.99 800000000163 0000-00-00 00:00:01.99 0000-00-00 00:00:01.99 800000000163 0000-00-00 00:01:00.00 0000-00-00 00:01:00.00 800000004000 0000-00-00 00:01:00.00 0000-00-00 00:01:00.00 800000004000 0000-00-00 00:01:00.00 0000-00-00 00:01:00.00 800000004000 0000-00-00 00:01:00.00 0000-00-00 00:01:00.00 800000004000 0000-00-00 00:01:00.00 0000-00-00 00:01:00.00 800000004000 0000-00-00 00:01:00.00 0000-00-00 00:01:00.00 800000004000 0000-00-00 00:01:00.00 0000-00-00 00:01:00.00 800000004000 0000-00-00 00:01:00.09 0000-00-00 00:01:00.09 800000004009 0000-00-00 00:01:00.10 0000-00-00 00:01:00.10 80000000400A 0000-00-00 00:01:00.90 0000-00-00 00:01:00.90 80000000405A 0000-00-00 00:01:00.99 0000-00-00 00:01:00.99 800000004063 0000-00-00 01:00:00.00 0000-00-00 01:00:00.00 800000100000 0000-00-00 01:00:00.00 0000-00-00 01:00:00.00 800000100000 0000-00-00 01:00:00.00 0000-00-00 01:00:00.00 800000100000 0000-00-00 01:00:00.00 0000-00-00 01:00:00.00 800000100000 0000-00-00 01:00:00.00 0000-00-00 01:00:00.00 800000100000 0000-00-00 01:00:00.00 0000-00-00 01:00:00.00 800000100000 0000-00-00 01:00:00.00 0000-00-00 01:00:00.00 800000100000 0000-00-00 01:00:00.09 0000-00-00 01:00:00.09 800000100009 0000-00-00 01:00:00.10 0000-00-00 01:00:00.10 80000010000A 0000-00-00 01:00:00.90 0000-00-00 01:00:00.90 80000010005A 0000-00-00 01:00:00.99 0000-00-00 01:00:00.99 800000100063 0000-00-00 01:00:00.99 0000-00-00 01:00:00.99 800000100063 0000-00-00 01:00:00.99 0000-00-00 01:00:00.99 800000100063 0000-00-00 01:00:00.99 0000-00-00 01:00:00.99 800000100063 0000-00-00 01:00:00.99 0000-00-00 01:00:00.99 800000100063 1001-01-01 00:00:00.00 1001-01-01 00:00:00.00 8CB582000000 1001-01-01 00:00:00.00 1001-01-01 00:00:00.00 8CB582000000 1001-01-01 00:00:00.00 1001-01-01 00:00:00.00 8CB582000000 1001-01-01 00:00:00.00 1001-01-01 00:00:00.00 8CB582000000 1001-01-01 00:00:00.00 1001-01-01 00:00:00.00 8CB582000000 1001-01-01 00:00:00.00 1001-01-01 00:00:00.00 8CB582000000 1001-01-01 00:00:00.00 1001-01-01 00:00:00.00 8CB582000000 1001-01-01 00:00:00.09 1001-01-01 00:00:00.09 8CB582000009 1001-01-01 00:00:00.10 1001-01-01 00:00:00.10 8CB58200000A 1001-01-01 00:00:00.90 1001-01-01 00:00:00.90 8CB58200005A 1001-01-01 00:00:00.99 1001-01-01 00:00:00.99 8CB582000063 1001-01-01 00:00:00.99 1001-01-01 00:00:00.99 8CB582000063 1001-01-01 00:00:00.99 1001-01-01 00:00:00.99 8CB582000063 1001-01-01 00:00:00.99 1001-01-01 00:00:00.99 8CB582000063 1001-01-01 00:00:00.99 1001-01-01 00:00:00.99 8CB582000063 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 9967837EFA00 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 9967837EFA00 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 9967837EFA00 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 9967837EFA00 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 9967837EFA00 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 9967837EFA00 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 9967837EFA00 2001-01-01 23:59:58.09 2001-01-01 23:59:58.09 9967837EFA09 2001-01-01 23:59:58.10 2001-01-01 23:59:58.10 9967837EFA0A 2001-01-01 23:59:58.90 2001-01-01 23:59:58.90 9967837EFA5A 2001-01-01 23:59:58.99 2001-01-01 23:59:58.99 9967837EFA63 2001-01-01 23:59:58.99 2001-01-01 23:59:58.99 9967837EFA63 2001-01-01 23:59:58.99 2001-01-01 23:59:58.99 9967837EFA63 2001-01-01 23:59:58.99 2001-01-01 23:59:58.99 9967837EFA63 2001-01-01 23:59:58.99 2001-01-01 23:59:58.99 9967837EFA63 2001-01-01 23:59:59.00 2001-01-01 23:59:59.00 9967837EFB00 9999-12-31 23:59:58.00 9999-12-31 23:59:58.00 FEF3FF7EFA00 9999-12-31 23:59:58.00 9999-12-31 23:59:58.00 FEF3FF7EFA00 9999-12-31 23:59:58.00 9999-12-31 23:59:58.00 FEF3FF7EFA00 9999-12-31 23:59:58.00 9999-12-31 23:59:58.00 FEF3FF7EFA00 9999-12-31 23:59:58.00 9999-12-31 23:59:58.00 FEF3FF7EFA00 9999-12-31 23:59:58.00 9999-12-31 23:59:58.00 FEF3FF7EFA00 9999-12-31 23:59:58.00 9999-12-31 23:59:58.00 FEF3FF7EFA00 9999-12-31 23:59:58.09 9999-12-31 23:59:58.09 FEF3FF7EFA09 9999-12-31 23:59:58.10 9999-12-31 23:59:58.10 FEF3FF7EFA0A 9999-12-31 23:59:58.90 9999-12-31 23:59:58.90 FEF3FF7EFA5A 9999-12-31 23:59:58.99 9999-12-31 23:59:58.99 FEF3FF7EFA63 9999-12-31 23:59:58.99 9999-12-31 23:59:58.99 FEF3FF7EFA63 9999-12-31 23:59:58.99 9999-12-31 23:59:58.99 FEF3FF7EFA63 9999-12-31 23:59:58.99 9999-12-31 23:59:58.99 FEF3FF7EFA63 9999-12-31 23:59:58.99 9999-12-31 23:59:58.99 FEF3FF7EFA63 9999-12-31 23:59:59.00 9999-12-31 23:59:59.00 FEF3FF7EFB00 SELECT a1, d1, HEX(WEIGHT_STRING(d1)) FROM t1 ORDER BY d1, a6; a1 d1 HEX(WEIGHT_STRING(d1)) 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 800000000000 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 800000000000 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 800000000000 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 800000000000 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 800000000000 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 800000000000 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 800000000000 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 800000000000 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 800000000000 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 800000000000 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 800000000000 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 800000000000 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 800000000000 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 800000000000 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 800000000000 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 800000000000 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 800000000000 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 800000000000 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 800000000000 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 800000000000 0000-00-00 00:00:00.0 0000-00-00 00:00:00.0 800000000000 0000-00-00 00:00:00.1 0000-00-00 00:00:00.1 80000000000A 0000-00-00 00:00:00.9 0000-00-00 00:00:00.9 80000000005A 0000-00-00 00:00:00.9 0000-00-00 00:00:00.9 80000000005A 0000-00-00 00:00:00.9 0000-00-00 00:00:00.9 80000000005A 0000-00-00 00:00:00.9 0000-00-00 00:00:00.9 80000000005A 0000-00-00 00:00:00.9 0000-00-00 00:00:00.9 80000000005A 0000-00-00 00:00:00.9 0000-00-00 00:00:00.9 80000000005A 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 800000000100 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 800000000100 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 800000000100 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 800000000100 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 800000000100 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 800000000100 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 800000000100 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 800000000100 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 800000000100 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 800000000100 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 800000000100 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 800000000100 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 800000000100 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 800000000100 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 800000000100 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 800000000100 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 800000000100 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 800000000100 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 800000000100 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 800000000100 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 800000000100 0000-00-00 00:00:01.0 0000-00-00 00:00:01.0 800000000100 0000-00-00 00:00:01.1 0000-00-00 00:00:01.1 80000000010A 0000-00-00 00:00:01.9 0000-00-00 00:00:01.9 80000000015A 0000-00-00 00:00:01.9 0000-00-00 00:00:01.9 80000000015A 0000-00-00 00:00:01.9 0000-00-00 00:00:01.9 80000000015A 0000-00-00 00:00:01.9 0000-00-00 00:00:01.9 80000000015A 0000-00-00 00:00:01.9 0000-00-00 00:00:01.9 80000000015A 0000-00-00 00:00:01.9 0000-00-00 00:00:01.9 80000000015A 0000-00-00 00:01:00.0 0000-00-00 00:01:00.0 800000004000 0000-00-00 00:01:00.0 0000-00-00 00:01:00.0 800000004000 0000-00-00 00:01:00.0 0000-00-00 00:01:00.0 800000004000 0000-00-00 00:01:00.0 0000-00-00 00:01:00.0 800000004000 0000-00-00 00:01:00.0 0000-00-00 00:01:00.0 800000004000 0000-00-00 00:01:00.0 0000-00-00 00:01:00.0 800000004000 0000-00-00 00:01:00.0 0000-00-00 00:01:00.0 800000004000 0000-00-00 00:01:00.0 0000-00-00 00:01:00.0 800000004000 0000-00-00 00:01:00.1 0000-00-00 00:01:00.1 80000000400A 0000-00-00 00:01:00.9 0000-00-00 00:01:00.9 80000000405A 0000-00-00 00:01:00.9 0000-00-00 00:01:00.9 80000000405A 0000-00-00 01:00:00.0 0000-00-00 01:00:00.0 800000100000 0000-00-00 01:00:00.0 0000-00-00 01:00:00.0 800000100000 0000-00-00 01:00:00.0 0000-00-00 01:00:00.0 800000100000 0000-00-00 01:00:00.0 0000-00-00 01:00:00.0 800000100000 0000-00-00 01:00:00.0 0000-00-00 01:00:00.0 800000100000 0000-00-00 01:00:00.0 0000-00-00 01:00:00.0 800000100000 0000-00-00 01:00:00.0 0000-00-00 01:00:00.0 800000100000 0000-00-00 01:00:00.0 0000-00-00 01:00:00.0 800000100000 0000-00-00 01:00:00.1 0000-00-00 01:00:00.1 80000010000A 0000-00-00 01:00:00.9 0000-00-00 01:00:00.9 80000010005A 0000-00-00 01:00:00.9 0000-00-00 01:00:00.9 80000010005A 0000-00-00 01:00:00.9 0000-00-00 01:00:00.9 80000010005A 0000-00-00 01:00:00.9 0000-00-00 01:00:00.9 80000010005A 0000-00-00 01:00:00.9 0000-00-00 01:00:00.9 80000010005A 0000-00-00 01:00:00.9 0000-00-00 01:00:00.9 80000010005A 1001-01-01 00:00:00.0 1001-01-01 00:00:00.0 8CB582000000 1001-01-01 00:00:00.0 1001-01-01 00:00:00.0 8CB582000000 1001-01-01 00:00:00.0 1001-01-01 00:00:00.0 8CB582000000 1001-01-01 00:00:00.0 1001-01-01 00:00:00.0 8CB582000000 1001-01-01 00:00:00.0 1001-01-01 00:00:00.0 8CB582000000 1001-01-01 00:00:00.0 1001-01-01 00:00:00.0 8CB582000000 1001-01-01 00:00:00.0 1001-01-01 00:00:00.0 8CB582000000 1001-01-01 00:00:00.0 1001-01-01 00:00:00.0 8CB582000000 1001-01-01 00:00:00.1 1001-01-01 00:00:00.1 8CB58200000A 1001-01-01 00:00:00.9 1001-01-01 00:00:00.9 8CB58200005A 1001-01-01 00:00:00.9 1001-01-01 00:00:00.9 8CB58200005A 1001-01-01 00:00:00.9 1001-01-01 00:00:00.9 8CB58200005A 1001-01-01 00:00:00.9 1001-01-01 00:00:00.9 8CB58200005A 1001-01-01 00:00:00.9 1001-01-01 00:00:00.9 8CB58200005A 1001-01-01 00:00:00.9 1001-01-01 00:00:00.9 8CB58200005A 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 9967837EFA00 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 9967837EFA00 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 9967837EFA00 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 9967837EFA00 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 9967837EFA00 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 9967837EFA00 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 9967837EFA00 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 9967837EFA00 2001-01-01 23:59:58.1 2001-01-01 23:59:58.1 9967837EFA0A 2001-01-01 23:59:58.9 2001-01-01 23:59:58.9 9967837EFA5A 2001-01-01 23:59:58.9 2001-01-01 23:59:58.9 9967837EFA5A 2001-01-01 23:59:58.9 2001-01-01 23:59:58.9 9967837EFA5A 2001-01-01 23:59:58.9 2001-01-01 23:59:58.9 9967837EFA5A 2001-01-01 23:59:58.9 2001-01-01 23:59:58.9 9967837EFA5A 2001-01-01 23:59:58.9 2001-01-01 23:59:58.9 9967837EFA5A 2001-01-01 23:59:59.0 2001-01-01 23:59:59.0 9967837EFB00 9999-12-31 23:59:58.0 9999-12-31 23:59:58.0 FEF3FF7EFA00 9999-12-31 23:59:58.0 9999-12-31 23:59:58.0 FEF3FF7EFA00 9999-12-31 23:59:58.0 9999-12-31 23:59:58.0 FEF3FF7EFA00 9999-12-31 23:59:58.0 9999-12-31 23:59:58.0 FEF3FF7EFA00 9999-12-31 23:59:58.0 9999-12-31 23:59:58.0 FEF3FF7EFA00 9999-12-31 23:59:58.0 9999-12-31 23:59:58.0 FEF3FF7EFA00 9999-12-31 23:59:58.0 9999-12-31 23:59:58.0 FEF3FF7EFA00 9999-12-31 23:59:58.0 9999-12-31 23:59:58.0 FEF3FF7EFA00 9999-12-31 23:59:58.1 9999-12-31 23:59:58.1 FEF3FF7EFA0A 9999-12-31 23:59:58.9 9999-12-31 23:59:58.9 FEF3FF7EFA5A 9999-12-31 23:59:58.9 9999-12-31 23:59:58.9 FEF3FF7EFA5A 9999-12-31 23:59:58.9 9999-12-31 23:59:58.9 FEF3FF7EFA5A 9999-12-31 23:59:58.9 9999-12-31 23:59:58.9 FEF3FF7EFA5A 9999-12-31 23:59:58.9 9999-12-31 23:59:58.9 FEF3FF7EFA5A 9999-12-31 23:59:58.9 9999-12-31 23:59:58.9 FEF3FF7EFA5A 9999-12-31 23:59:59.0 9999-12-31 23:59:59.0 FEF3FF7EFB00 SELECT a0, d0, HEX(WEIGHT_STRING(d0)) FROM t1 ORDER BY d0, a6; a0 d0 HEX(WEIGHT_STRING(d0)) 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:00. 0000-00-00 00:00:00 8000000000 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:00:01. 0000-00-00 00:00:01 8000000001 0000-00-00 00:01:00. 0000-00-00 00:01:00 8000000040 0000-00-00 00:01:00. 0000-00-00 00:01:00 8000000040 0000-00-00 00:01:00. 0000-00-00 00:01:00 8000000040 0000-00-00 00:01:00. 0000-00-00 00:01:00 8000000040 0000-00-00 00:01:00. 0000-00-00 00:01:00 8000000040 0000-00-00 00:01:00. 0000-00-00 00:01:00 8000000040 0000-00-00 00:01:00. 0000-00-00 00:01:00 8000000040 0000-00-00 00:01:00. 0000-00-00 00:01:00 8000000040 0000-00-00 00:01:00. 0000-00-00 00:01:00 8000000040 0000-00-00 00:01:00. 0000-00-00 00:01:00 8000000040 0000-00-00 00:01:00. 0000-00-00 00:01:00 8000000040 0000-00-00 01:00:00. 0000-00-00 01:00:00 8000001000 0000-00-00 01:00:00. 0000-00-00 01:00:00 8000001000 0000-00-00 01:00:00. 0000-00-00 01:00:00 8000001000 0000-00-00 01:00:00. 0000-00-00 01:00:00 8000001000 0000-00-00 01:00:00. 0000-00-00 01:00:00 8000001000 0000-00-00 01:00:00. 0000-00-00 01:00:00 8000001000 0000-00-00 01:00:00. 0000-00-00 01:00:00 8000001000 0000-00-00 01:00:00. 0000-00-00 01:00:00 8000001000 0000-00-00 01:00:00. 0000-00-00 01:00:00 8000001000 0000-00-00 01:00:00. 0000-00-00 01:00:00 8000001000 0000-00-00 01:00:00. 0000-00-00 01:00:00 8000001000 0000-00-00 01:00:00. 0000-00-00 01:00:00 8000001000 0000-00-00 01:00:00. 0000-00-00 01:00:00 8000001000 0000-00-00 01:00:00. 0000-00-00 01:00:00 8000001000 0000-00-00 01:00:00. 0000-00-00 01:00:00 8000001000 1001-01-01 00:00:00. 1001-01-01 00:00:00 8CB5820000 1001-01-01 00:00:00. 1001-01-01 00:00:00 8CB5820000 1001-01-01 00:00:00. 1001-01-01 00:00:00 8CB5820000 1001-01-01 00:00:00. 1001-01-01 00:00:00 8CB5820000 1001-01-01 00:00:00. 1001-01-01 00:00:00 8CB5820000 1001-01-01 00:00:00. 1001-01-01 00:00:00 8CB5820000 1001-01-01 00:00:00. 1001-01-01 00:00:00 8CB5820000 1001-01-01 00:00:00. 1001-01-01 00:00:00 8CB5820000 1001-01-01 00:00:00. 1001-01-01 00:00:00 8CB5820000 1001-01-01 00:00:00. 1001-01-01 00:00:00 8CB5820000 1001-01-01 00:00:00. 1001-01-01 00:00:00 8CB5820000 1001-01-01 00:00:00. 1001-01-01 00:00:00 8CB5820000 1001-01-01 00:00:00. 1001-01-01 00:00:00 8CB5820000 1001-01-01 00:00:00. 1001-01-01 00:00:00 8CB5820000 1001-01-01 00:00:00. 1001-01-01 00:00:00 8CB5820000 2001-01-01 23:59:58. 2001-01-01 23:59:58 9967837EFA 2001-01-01 23:59:58. 2001-01-01 23:59:58 9967837EFA 2001-01-01 23:59:58. 2001-01-01 23:59:58 9967837EFA 2001-01-01 23:59:58. 2001-01-01 23:59:58 9967837EFA 2001-01-01 23:59:58. 2001-01-01 23:59:58 9967837EFA 2001-01-01 23:59:58. 2001-01-01 23:59:58 9967837EFA 2001-01-01 23:59:58. 2001-01-01 23:59:58 9967837EFA 2001-01-01 23:59:58. 2001-01-01 23:59:58 9967837EFA 2001-01-01 23:59:58. 2001-01-01 23:59:58 9967837EFA 2001-01-01 23:59:58. 2001-01-01 23:59:58 9967837EFA 2001-01-01 23:59:58. 2001-01-01 23:59:58 9967837EFA 2001-01-01 23:59:58. 2001-01-01 23:59:58 9967837EFA 2001-01-01 23:59:58. 2001-01-01 23:59:58 9967837EFA 2001-01-01 23:59:58. 2001-01-01 23:59:58 9967837EFA 2001-01-01 23:59:58. 2001-01-01 23:59:58 9967837EFA 2001-01-01 23:59:59. 2001-01-01 23:59:59 9967837EFB 9999-12-31 23:59:58. 9999-12-31 23:59:58 FEF3FF7EFA 9999-12-31 23:59:58. 9999-12-31 23:59:58 FEF3FF7EFA 9999-12-31 23:59:58. 9999-12-31 23:59:58 FEF3FF7EFA 9999-12-31 23:59:58. 9999-12-31 23:59:58 FEF3FF7EFA 9999-12-31 23:59:58. 9999-12-31 23:59:58 FEF3FF7EFA 9999-12-31 23:59:58. 9999-12-31 23:59:58 FEF3FF7EFA 9999-12-31 23:59:58. 9999-12-31 23:59:58 FEF3FF7EFA 9999-12-31 23:59:58. 9999-12-31 23:59:58 FEF3FF7EFA 9999-12-31 23:59:58. 9999-12-31 23:59:58 FEF3FF7EFA 9999-12-31 23:59:58. 9999-12-31 23:59:58 FEF3FF7EFA 9999-12-31 23:59:58. 9999-12-31 23:59:58 FEF3FF7EFA 9999-12-31 23:59:58. 9999-12-31 23:59:58 FEF3FF7EFA 9999-12-31 23:59:58. 9999-12-31 23:59:58 FEF3FF7EFA 9999-12-31 23:59:58. 9999-12-31 23:59:58 FEF3FF7EFA 9999-12-31 23:59:58. 9999-12-31 23:59:58 FEF3FF7EFA 9999-12-31 23:59:59. 9999-12-31 23:59:59 FEF3FF7EFB CREATE VIEW v1 AS SELECT a6, d0, d1, d2, d3, d4, d5, d6, HEX(WEIGHT_STRING(d0)) as wst0, HEX(WEIGHT_STRING(d1)) as wst1, HEX(WEIGHT_STRING(d2)) as wst2, HEX(WEIGHT_STRING(d3)) as wst3, HEX(WEIGHT_STRING(d4)) as wst4, HEX(WEIGHT_STRING(d5)) as wst5, HEX(WEIGHT_STRING(d6)) as wst6 FROM t1; SELECT * FROM v1 WHERE a6 LIKE '%.999999' ORDER BY a6, d6;; a6 0000-00-00 00:00:00.999999 d0 0000-00-00 00:00:00 d1 0000-00-00 00:00:00.9 d2 0000-00-00 00:00:00.99 d3 0000-00-00 00:00:00.999 d4 0000-00-00 00:00:00.9999 d5 0000-00-00 00:00:00.99999 d6 0000-00-00 00:00:00.999999 wst0 8000000000 wst1 80000000005A wst2 800000000063 wst3 80000000002706 wst4 8000000000270F wst5 80000000000F4236 wst6 80000000000F423F a6 0000-00-00 00:00:01.999999 d0 0000-00-00 00:00:01 d1 0000-00-00 00:00:01.9 d2 0000-00-00 00:00:01.99 d3 0000-00-00 00:00:01.999 d4 0000-00-00 00:00:01.9999 d5 0000-00-00 00:00:01.99999 d6 0000-00-00 00:00:01.999999 wst0 8000000001 wst1 80000000015A wst2 800000000163 wst3 80000000012706 wst4 8000000001270F wst5 80000000010F4236 wst6 80000000010F423F a6 0000-00-00 00:01:00.999999 d0 0000-00-00 00:01:00 d1 0000-00-00 00:01:00.9 d2 0000-00-00 00:01:00.99 d3 0000-00-00 00:01:00.999 d4 0000-00-00 00:01:00.9999 d5 0000-00-00 00:01:00.99999 d6 0000-00-00 00:01:00.999999 wst0 8000000040 wst1 80000000405A wst2 800000004063 wst3 80000000402706 wst4 8000000040270F wst5 80000000400F4236 wst6 80000000400F423F a6 0000-00-00 01:00:00.999999 d0 0000-00-00 01:00:00 d1 0000-00-00 01:00:00.9 d2 0000-00-00 01:00:00.99 d3 0000-00-00 01:00:00.999 d4 0000-00-00 01:00:00.9999 d5 0000-00-00 01:00:00.99999 d6 0000-00-00 01:00:00.999999 wst0 8000001000 wst1 80000010005A wst2 800000100063 wst3 80000010002706 wst4 8000001000270F wst5 80000010000F4236 wst6 80000010000F423F a6 1001-01-01 00:00:00.999999 d0 1001-01-01 00:00:00 d1 1001-01-01 00:00:00.9 d2 1001-01-01 00:00:00.99 d3 1001-01-01 00:00:00.999 d4 1001-01-01 00:00:00.9999 d5 1001-01-01 00:00:00.99999 d6 1001-01-01 00:00:00.999999 wst0 8CB5820000 wst1 8CB58200005A wst2 8CB582000063 wst3 8CB58200002706 wst4 8CB5820000270F wst5 8CB58200000F4236 wst6 8CB58200000F423F a6 2001-01-01 23:59:58.999999 d0 2001-01-01 23:59:58 d1 2001-01-01 23:59:58.9 d2 2001-01-01 23:59:58.99 d3 2001-01-01 23:59:58.999 d4 2001-01-01 23:59:58.9999 d5 2001-01-01 23:59:58.99999 d6 2001-01-01 23:59:58.999999 wst0 9967837EFA wst1 9967837EFA5A wst2 9967837EFA63 wst3 9967837EFA2706 wst4 9967837EFA270F wst5 9967837EFA0F4236 wst6 9967837EFA0F423F a6 9999-12-31 23:59:58.999999 d0 9999-12-31 23:59:58 d1 9999-12-31 23:59:58.9 d2 9999-12-31 23:59:58.99 d3 9999-12-31 23:59:58.999 d4 9999-12-31 23:59:58.9999 d5 9999-12-31 23:59:58.99999 d6 9999-12-31 23:59:58.999999 wst0 FEF3FF7EFA wst1 FEF3FF7EFA5A wst2 FEF3FF7EFA63 wst3 FEF3FF7EFA2706 wst4 FEF3FF7EFA270F wst5 FEF3FF7EFA0F4236 wst6 FEF3FF7EFA0F423F SELECT * FROM v1 WHERE a6 LIKE '%.000000' ORDER BY a6, d6;; a6 0000-00-00 00:00:00.000000 d0 0000-00-00 00:00:00 d1 0000-00-00 00:00:00.0 d2 0000-00-00 00:00:00.00 d3 0000-00-00 00:00:00.000 d4 0000-00-00 00:00:00.0000 d5 0000-00-00 00:00:00.00000 d6 0000-00-00 00:00:00.000000 wst0 8000000000 wst1 800000000000 wst2 800000000000 wst3 80000000000000 wst4 80000000000000 wst5 8000000000000000 wst6 8000000000000000 a6 0000-00-00 00:00:01.000000 d0 0000-00-00 00:00:01 d1 0000-00-00 00:00:01.0 d2 0000-00-00 00:00:01.00 d3 0000-00-00 00:00:01.000 d4 0000-00-00 00:00:01.0000 d5 0000-00-00 00:00:01.00000 d6 0000-00-00 00:00:01.000000 wst0 8000000001 wst1 800000000100 wst2 800000000100 wst3 80000000010000 wst4 80000000010000 wst5 8000000001000000 wst6 8000000001000000 a6 2001-01-01 23:59:59.000000 d0 2001-01-01 23:59:59 d1 2001-01-01 23:59:59.0 d2 2001-01-01 23:59:59.00 d3 2001-01-01 23:59:59.000 d4 2001-01-01 23:59:59.0000 d5 2001-01-01 23:59:59.00000 d6 2001-01-01 23:59:59.000000 wst0 9967837EFB wst1 9967837EFB00 wst2 9967837EFB00 wst3 9967837EFB0000 wst4 9967837EFB0000 wst5 9967837EFB000000 wst6 9967837EFB000000 a6 9999-12-31 23:59:59.000000 d0 9999-12-31 23:59:59 d1 9999-12-31 23:59:59.0 d2 9999-12-31 23:59:59.00 d3 9999-12-31 23:59:59.000 d4 9999-12-31 23:59:59.0000 d5 9999-12-31 23:59:59.00000 d6 9999-12-31 23:59:59.000000 wst0 FEF3FF7EFB wst1 FEF3FF7EFB00 wst2 FEF3FF7EFB00 wst3 FEF3FF7EFB0000 wst4 FEF3FF7EFB0000 wst5 FEF3FF7EFB000000 wst6 FEF3FF7EFB000000 SELECT * FROM v1 WHERE a6 LIKE '%.100000' ORDER BY a6, d6;; a6 0000-00-00 00:00:00.100000 d0 0000-00-00 00:00:00 d1 0000-00-00 00:00:00.1 d2 0000-00-00 00:00:00.10 d3 0000-00-00 00:00:00.100 d4 0000-00-00 00:00:00.1000 d5 0000-00-00 00:00:00.10000 d6 0000-00-00 00:00:00.100000 wst0 8000000000 wst1 80000000000A wst2 80000000000A wst3 800000000003E8 wst4 800000000003E8 wst5 80000000000186A0 wst6 80000000000186A0 a6 0000-00-00 00:00:01.100000 d0 0000-00-00 00:00:01 d1 0000-00-00 00:00:01.1 d2 0000-00-00 00:00:01.10 d3 0000-00-00 00:00:01.100 d4 0000-00-00 00:00:01.1000 d5 0000-00-00 00:00:01.10000 d6 0000-00-00 00:00:01.100000 wst0 8000000001 wst1 80000000010A wst2 80000000010A wst3 800000000103E8 wst4 800000000103E8 wst5 80000000010186A0 wst6 80000000010186A0 a6 0000-00-00 00:01:00.100000 d0 0000-00-00 00:01:00 d1 0000-00-00 00:01:00.1 d2 0000-00-00 00:01:00.10 d3 0000-00-00 00:01:00.100 d4 0000-00-00 00:01:00.1000 d5 0000-00-00 00:01:00.10000 d6 0000-00-00 00:01:00.100000 wst0 8000000040 wst1 80000000400A wst2 80000000400A wst3 800000004003E8 wst4 800000004003E8 wst5 80000000400186A0 wst6 80000000400186A0 a6 0000-00-00 01:00:00.100000 d0 0000-00-00 01:00:00 d1 0000-00-00 01:00:00.1 d2 0000-00-00 01:00:00.10 d3 0000-00-00 01:00:00.100 d4 0000-00-00 01:00:00.1000 d5 0000-00-00 01:00:00.10000 d6 0000-00-00 01:00:00.100000 wst0 8000001000 wst1 80000010000A wst2 80000010000A wst3 800000100003E8 wst4 800000100003E8 wst5 80000010000186A0 wst6 80000010000186A0 a6 1001-01-01 00:00:00.100000 d0 1001-01-01 00:00:00 d1 1001-01-01 00:00:00.1 d2 1001-01-01 00:00:00.10 d3 1001-01-01 00:00:00.100 d4 1001-01-01 00:00:00.1000 d5 1001-01-01 00:00:00.10000 d6 1001-01-01 00:00:00.100000 wst0 8CB5820000 wst1 8CB58200000A wst2 8CB58200000A wst3 8CB582000003E8 wst4 8CB582000003E8 wst5 8CB58200000186A0 wst6 8CB58200000186A0 a6 2001-01-01 23:59:58.100000 d0 2001-01-01 23:59:58 d1 2001-01-01 23:59:58.1 d2 2001-01-01 23:59:58.10 d3 2001-01-01 23:59:58.100 d4 2001-01-01 23:59:58.1000 d5 2001-01-01 23:59:58.10000 d6 2001-01-01 23:59:58.100000 wst0 9967837EFA wst1 9967837EFA0A wst2 9967837EFA0A wst3 9967837EFA03E8 wst4 9967837EFA03E8 wst5 9967837EFA0186A0 wst6 9967837EFA0186A0 a6 9999-12-31 23:59:58.100000 d0 9999-12-31 23:59:58 d1 9999-12-31 23:59:58.1 d2 9999-12-31 23:59:58.10 d3 9999-12-31 23:59:58.100 d4 9999-12-31 23:59:58.1000 d5 9999-12-31 23:59:58.10000 d6 9999-12-31 23:59:58.100000 wst0 FEF3FF7EFA wst1 FEF3FF7EFA0A wst2 FEF3FF7EFA0A wst3 FEF3FF7EFA03E8 wst4 FEF3FF7EFA03E8 wst5 FEF3FF7EFA0186A0 wst6 FEF3FF7EFA0186A0 SET sql_mode = default; DROP VIEW v1; DROP TABLE t1; # # Testing bad FSPs # CREATE TABLE t1 (a DATETIME(-1)); 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 '-1))' at line 1 CREATE TABLE t1 (a DATETIME(7)); ERROR 42000: Too-big precision 7 specified for 'a'. Maximum is 6. CREATE TABLE t1 (a DATETIME(31)); ERROR 42000: Too-big precision 31 specified for 'a'. Maximum is 6. # # Testing bad FSPs with DATETIME functions # SELECT SYSDATE(-1); 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 '-1)' at line 1 SELECT SYSDATE(7); ERROR 42000: Too-big precision 7 specified for 'sysdate'. Maximum is 6. SELECT SYSDATE(31); ERROR 42000: Too-big precision 31 specified for 'sysdate'. Maximum is 6. SELECT NOW(-1); 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 '-1)' at line 1 SELECT NOW(7); ERROR 42000: Too-big precision 7 specified for 'now'. Maximum is 6. SELECT NOW(31); ERROR 42000: Too-big precision 31 specified for 'now'. Maximum is 6. # # Testing INSERT, ORDER, KEY, BETWEEN, comparison # SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; Warnings: Warning 3090 Changing sql mode 'NO_AUTO_CREATE_USER' is deprecated. It will be removed in a future release. CREATE TABLE t1 (a DATETIME(6) NOT NULL); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000000'); INSERT INTO t1 VALUES ('0000-00-00 23:59:59.999999'); INSERT INTO t1 VALUES ('2000-01-01 01:02:03'); INSERT INTO t1 VALUES ('2000-01-01 01:02:03.4'); INSERT INTO t1 VALUES ('2000-01-01 01:02:03.45'); INSERT INTO t1 VALUES ('2000-01-01 01:02:03.456'); INSERT INTO t1 VALUES ('2000-01-01 01:02:03.4567'); INSERT INTO t1 VALUES ('2000-01-01 01:02:03.45678'); INSERT INTO t1 VALUES ('2000-01-01 01:02:03.4567891'); INSERT INTO t1 VALUES ('9999-12-31 23:59:59.000000'); SELECT * FROM t1; a 0000-00-00 00:00:00.000000 0000-00-00 23:59:59.999999 2000-01-01 01:02:03.000000 2000-01-01 01:02:03.400000 2000-01-01 01:02:03.450000 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456780 2000-01-01 01:02:03.456789 9999-12-31 23:59:59.000000 SELECT * FROM t1 ORDER BY a DESC; a 9999-12-31 23:59:59.000000 2000-01-01 01:02:03.456789 2000-01-01 01:02:03.456780 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.450000 2000-01-01 01:02:03.400000 2000-01-01 01:02:03.000000 0000-00-00 23:59:59.999999 0000-00-00 00:00:00.000000 SELECT * FROM t1 WHERE a='2000-01-01 01:02:03.45'; a 2000-01-01 01:02:03.450000 SELECT * FROM t1 WHERE a='2000-01-01 01:02:03.4567'; a 2000-01-01 01:02:03.456700 SELECT * FROM t1 WHERE a='2000-01-01 01:02:03.45670'; a 2000-01-01 01:02:03.456700 SELECT * FROM t1 WHERE a='2000-01-01 01:02:03.456700'; a 2000-01-01 01:02:03.456700 SELECT * FROM t1 WHERE a BETWEEN '2000-01-01 01:02:00' AND '2000-01-01 01:03:00'; a 2000-01-01 01:02:03.000000 2000-01-01 01:02:03.400000 2000-01-01 01:02:03.450000 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456780 2000-01-01 01:02:03.456789 ALTER TABLE t1 ADD KEY(a); SELECT * FROM t1 ORDER BY a; a 0000-00-00 00:00:00.000000 0000-00-00 23:59:59.999999 2000-01-01 01:02:03.000000 2000-01-01 01:02:03.400000 2000-01-01 01:02:03.450000 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456780 2000-01-01 01:02:03.456789 9999-12-31 23:59:59.000000 SELECT * FROM t1 ORDER BY a DESC; a 9999-12-31 23:59:59.000000 2000-01-01 01:02:03.456789 2000-01-01 01:02:03.456780 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.450000 2000-01-01 01:02:03.400000 2000-01-01 01:02:03.000000 0000-00-00 23:59:59.999999 0000-00-00 00:00:00.000000 EXPLAIN SELECT * FROM t1 WHERE a='2000-01-01 01:02:03.456700'; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL ref a a 8 const 1 100.00 Using index Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where (`test`.`t1`.`a` = '2000-01-01 01:02:03.456700') SELECT * FROM t1 WHERE a='2000-01-01 01:02:03.456700'; a 2000-01-01 01:02:03.456700 SELECT * FROM t1 WHERE a BETWEEN '2000-01-01 01:02:00' AND '2000-01-01 01:03:00'; a 2000-01-01 01:02:03.000000 2000-01-01 01:02:03.400000 2000-01-01 01:02:03.450000 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456780 2000-01-01 01:02:03.456789 SELECT * FROM t1 WHERE a BETWEEN TIMESTAMP'2000-01-01 01:02:03.456' AND TIMESTAMP'2000-01-01 01:02:03.45678'; a 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456780 DROP TABLE t1; # # Tesint range: stored_field_cmp_to_item # CREATE TABLE t1 (a datetime(6), key(a)); INSERT INTO t1 VALUES ('2000-01-01 00:00:00'), ('2000-01-01 00:00:00'), ('2000-01-01 00:00:01'), ('2000-01-01 00:00:01'); SELECT * FROM t1 WHERE a >= 20000101000000; a 2000-01-01 00:00:00.000000 2000-01-01 00:00:00.000000 2000-01-01 00:00:01.000000 2000-01-01 00:00:01.000000 SELECT * FROM t1 WHERE a >= 20000101000000.0; a 2000-01-01 00:00:00.000000 2000-01-01 00:00:00.000000 2000-01-01 00:00:01.000000 2000-01-01 00:00:01.000000 UPDATE t1 SET a=ADDTIME(a, 0.000001); SELECT * FROM t1; a 2000-01-01 00:00:00.000001 2000-01-01 00:00:00.000001 2000-01-01 00:00:01.000001 2000-01-01 00:00:01.000001 SELECT * FROM t1 WHERE a >= 20000101000000.000001; a 2000-01-01 00:00:00.000001 2000-01-01 00:00:00.000001 2000-01-01 00:00:01.000001 2000-01-01 00:00:01.000001 DROP TABLE t1; # # Rare DATETIME formats # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES (101.101); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (990101.102); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('990101.103'); INSERT INTO t1 VALUES (131.104); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('000131.105'); SELECT * FROM t1; a 2000-01-01 00:00:00.000000 1999-01-01 00:00:00.000000 1999-01-01 10:03:00.000000 2000-01-31 00:00:00.000000 2000-01-31 10:05:00.000000 DROP TABLE t1; # # Testing bad values # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('xxxx'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('1999-01-01 00:00:00.123456 xxx'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('1999-01-01 00:00:00 xxx'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('1999-01-01 xxx'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('1999-00-00 00:00:00'); INSERT INTO t1 VALUES ('-0000-00-00'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('-0000-00-00 00:00:00'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('-0000-00-00 00:00:00.000000'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (-0.1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-1.0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-1.1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-0.1e0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-1.0e0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-1.1e0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT * FROM t1; a 0000-00-00 00:00:00.000000 1999-01-01 00:00:00.123456 1999-01-01 00:00:00.000000 1999-01-01 00:00:00.000000 1999-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing huge values # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES (CAST(0xFFFFFFFF00000000 AS SIGNED)); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (CAST(0xFFFFFFFF00000000 AS UNSIGNED)); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ( 100000000000000000.1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ( 100000000000000000.1e0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-100000000000000000.1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-100000000000000000.1e0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT * FROM t1; a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 DROP TABLE t1; SET sql_mode = default; # # Testing values with zeros in dates # SET sql_mode='NO_ZERO_IN_DATE'; Warnings: Warning 3135 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release. Warning 3090 Changing sql mode 'NO_AUTO_CREATE_USER' is deprecated. It will be removed in a future release. CREATE TABLE t1 (a DATETIME, b DATETIME(6)); INSERT INTO t1 VALUES ('1999-00-00 00:00:00', '1999-00-00 00:00:00'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 Warning 1264 Out of range value for column 'b' at row 1 SELECT * FROM t1; a b 0000-00-00 00:00:00 0000-00-00 00:00:00.000000 DROP TABLE t1; SET sql_mode=default; # # Testing bad values with TRADITIONAL mode # SET sql_mode=traditional; CREATE TABLE t1 (a DATETIME, b DATETIME(6)); INSERT INTO t1 VALUES ('xxx', NULL); ERROR 22007: Incorrect datetime value: 'xxx' for column 'a' at row 1 INSERT INTO t1 VALUES (NULL,'xxx'); ERROR 22007: Incorrect datetime value: 'xxx' for column 'b' at row 1 INSERT INTO t1 VALUES ('1999-01-01 00:00:00 xxx', NULL); ERROR 22007: Incorrect datetime value: '1999-01-01 00:00:00 xxx' for column 'a' at row 1 INSERT INTO t1 VALUES ('1999-00-00 00:00:00 xxx', NULL); ERROR 22007: Incorrect datetime value: '1999-00-00 00:00:00 xxx' for column 'a' at row 1 INSERT INTO t1 VALUES (NULL, '1999-00-00 00:00:00 xxx'); ERROR 22007: Incorrect datetime value: '1999-00-00 00:00:00 xxx' for column 'b' at row 1 INSERT INTO t1 VALUES ('1999-00-00 xxx', NULL); ERROR 22007: Incorrect datetime value: '1999-00-00 xxx' for column 'a' at row 1 INSERT INTO t1 VALUES (NULL, '1999-00-00 xxx'); ERROR 22007: Incorrect datetime value: '1999-00-00 xxx' for column 'b' at row 1 INSERT INTO t1 VALUES ('1999-00-00 00:00:00', NULL); ERROR 22007: Incorrect datetime value: '1999-00-00 00:00:00' for column 'a' at row 1 INSERT INTO t1 VALUES (NULL, '1999-00-00 00:00:00'); ERROR 22007: Incorrect datetime value: '1999-00-00 00:00:00' for column 'b' at row 1 INSERT INTO t1 VALUES (NULL, TIMESTAMP('0000-00-00 10:00:00')); ERROR 22007: Incorrect datetime value: '0000-00-00 10:00:00.000000' for column 'b' at row 1 INSERT INTO t1 VALUES (NULL, 199991231000000); ERROR 22007: Incorrect datetime value: '199991231000000' for column 'b' at row 1 INSERT INTO t1 VALUES (NULL, -0.1); ERROR 22007: Incorrect datetime value: '-0.1' for column 'b' at row 1 INSERT INTO t1 VALUES (NULL, -1.0); ERROR 22007: Incorrect datetime value: '-1.0' for column 'b' at row 1 INSERT INTO t1 VALUES (NULL, -1.1); ERROR 22007: Incorrect datetime value: '-1.1' for column 'b' at row 1 INSERT INTO t1 VALUES (NULL, -0.1e0); ERROR 22007: Incorrect datetime value: '-0.1' for column 'b' at row 1 INSERT INTO t1 VALUES (NULL, -1.0e0); ERROR 22007: Incorrect datetime value: '-1' for column 'b' at row 1 INSERT INTO t1 VALUES (NULL, -1.1e0); ERROR 22007: Incorrect datetime value: '-1.1' for column 'b' at row 1 INSERT INTO t1 VALUES (NULL, CAST(0xFFFFFFFF00000000 AS SIGNED)); ERROR 22007: Incorrect datetime value: '-4294967296' for column 'b' at row 1 INSERT INTO t1 VALUES (NULL, CAST(0xFFFFFFFF00000000 AS UNSIGNED)); ERROR 22007: Incorrect datetime value: '18446744069414584320' for column 'b' at row 1 SELECT * FROM t1; a b DROP TABLE t1; SET sql_mode=default; # # Testing rounding # SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; Warnings: Warning 3090 Changing sql mode 'NO_AUTO_CREATE_USER' is deprecated. It will be removed in a future release. CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES (20010101100000.1234567); INSERT INTO t1 VALUES (20010228235959.9999997); INSERT INTO t1 VALUES (99990228235959.9999997); INSERT INTO t1 VALUES (99991231235959.9999997); Warnings: Warning 1441 Datetime function: datetime field overflow Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('2001-01-01 10:00:00.1234567'); INSERT INTO t1 VALUES ('2001-02-28 23:59:59.9999997'); INSERT INTO t1 VALUES ('9999-02-28 23:59:59.9999997'); INSERT INTO t1 VALUES ('9999-12-31 23:59:59.9999997'); Warnings: Warning 1441 Datetime function: datetime field overflow Warning 1264 Out of range value for column 'a' at row 1 SELECT * FROM t1; a 2001-01-01 10:00:00.123457 2001-03-01 00:00:00.000000 9999-03-01 00:00:00.000000 0000-00-00 00:00:00.000000 2001-01-01 10:00:00.123457 2001-03-01 00:00:00.000000 9999-03-01 00:00:00.000000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing rounding when altering DATETIME(N) to a smaller size # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999999'); ALTER TABLE t1 MODIFY a DATETIME(5); SELECT * FROM t1; a 2001-01-01 10:10:11.00000 DROP TABLE t1; CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999999'); ALTER TABLE t1 MODIFY a TIME; SELECT * FROM t1; a 10:10:11 DROP TABLE t1; # # Testing rounding from VARCHAR and DATETIME(6) to DATETIME(N) # CREATE TABLE t1 (a VARCHAR(32), t6 DATETIME(6), t5 DATETIME(5), t4 DATETIME(4), t3 DATETIME(3), t2 DATETIME(2), t1 DATETIME(1), t0 DATETIME); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.999999'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.999994'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.999949'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.999499'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.994999'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.949999'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.499999'); UPDATE t1 SET t0=a, t1=a, t2=a, t3=a, t4=a, t5=a, t6=a; SELECT * FROM t1;; a 2001-01-01 10:10:10.999999 t6 2001-01-01 10:10:10.999999 t5 2001-01-01 10:10:11.00000 t4 2001-01-01 10:10:11.0000 t3 2001-01-01 10:10:11.000 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 2001-01-01 10:10:10.999994 t6 2001-01-01 10:10:10.999994 t5 2001-01-01 10:10:10.99999 t4 2001-01-01 10:10:11.0000 t3 2001-01-01 10:10:11.000 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 2001-01-01 10:10:10.999949 t6 2001-01-01 10:10:10.999949 t5 2001-01-01 10:10:10.99995 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:11.000 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 2001-01-01 10:10:10.999499 t6 2001-01-01 10:10:10.999499 t5 2001-01-01 10:10:10.99950 t4 2001-01-01 10:10:10.9995 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 2001-01-01 10:10:10.994999 t6 2001-01-01 10:10:10.994999 t5 2001-01-01 10:10:10.99500 t4 2001-01-01 10:10:10.9950 t3 2001-01-01 10:10:10.995 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 2001-01-01 10:10:10.949999 t6 2001-01-01 10:10:10.949999 t5 2001-01-01 10:10:10.95000 t4 2001-01-01 10:10:10.9500 t3 2001-01-01 10:10:10.950 t2 2001-01-01 10:10:10.95 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:11 a 2001-01-01 10:10:10.499999 t6 2001-01-01 10:10:10.499999 t5 2001-01-01 10:10:10.50000 t4 2001-01-01 10:10:10.5000 t3 2001-01-01 10:10:10.500 t2 2001-01-01 10:10:10.50 t1 2001-01-01 10:10:10.5 t0 2001-01-01 10:10:10 ALTER TABLE t1 MODIFY a DATETIME(6); UPDATE t1 SET t0=a, t1=a, t2=a, t3=a, t4=a, t5=a, t6=a; SELECT * FROM t1;; a 2001-01-01 10:10:10.999999 t6 2001-01-01 10:10:10.999999 t5 2001-01-01 10:10:11.00000 t4 2001-01-01 10:10:11.0000 t3 2001-01-01 10:10:11.000 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 2001-01-01 10:10:10.999994 t6 2001-01-01 10:10:10.999994 t5 2001-01-01 10:10:10.99999 t4 2001-01-01 10:10:11.0000 t3 2001-01-01 10:10:11.000 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 2001-01-01 10:10:10.999949 t6 2001-01-01 10:10:10.999949 t5 2001-01-01 10:10:10.99995 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:11.000 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 2001-01-01 10:10:10.999499 t6 2001-01-01 10:10:10.999499 t5 2001-01-01 10:10:10.99950 t4 2001-01-01 10:10:10.9995 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 2001-01-01 10:10:10.994999 t6 2001-01-01 10:10:10.994999 t5 2001-01-01 10:10:10.99500 t4 2001-01-01 10:10:10.9950 t3 2001-01-01 10:10:10.995 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 2001-01-01 10:10:10.949999 t6 2001-01-01 10:10:10.949999 t5 2001-01-01 10:10:10.95000 t4 2001-01-01 10:10:10.9500 t3 2001-01-01 10:10:10.950 t2 2001-01-01 10:10:10.95 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:11 a 2001-01-01 10:10:10.499999 t6 2001-01-01 10:10:10.499999 t5 2001-01-01 10:10:10.50000 t4 2001-01-01 10:10:10.5000 t3 2001-01-01 10:10:10.500 t2 2001-01-01 10:10:10.50 t1 2001-01-01 10:10:10.5 t0 2001-01-01 10:10:10 DROP TABLE t1; # # Testing rounding from DATETIME(N) to BIGINT # CREATE TABLE t1 (a BIGINT, b DATETIME(6)); INSERT INTO t1 (b) VALUES ('2001-01-01 10:10:59.500000'); INSERT INTO t1 (b) VALUES ('2001-01-01 10:10:10.500000'); INSERT INTO t1 (b) VALUES ('2001-01-01 10:10:10.499999'); UPDATE t1 SET a=b; SELECT * FROM t1; a b 20010101101100 2001-01-01 10:10:59.500000 20010101101011 2001-01-01 10:10:10.500000 20010101101010 2001-01-01 10:10:10.499999 DROP TABLE t1; # # Testing rounding from TIME(6) to DATETIME(N) # SET timestamp=UNIX_TIMESTAMP('2001-01-01 00:00:00'); CREATE TABLE t1 (a TIME(6), t6 DATETIME(6), t5 DATETIME(5), t4 DATETIME(4), t3 DATETIME(3), t2 DATETIME(2), t1 DATETIME(1), t0 DATETIME); INSERT INTO t1 (a) VALUES ('10:10:10.999999'); INSERT INTO t1 (a) VALUES ('10:10:10.999994'); INSERT INTO t1 (a) VALUES ('10:10:10.999949'); INSERT INTO t1 (a) VALUES ('10:10:10.999499'); INSERT INTO t1 (a) VALUES ('10:10:10.994999'); INSERT INTO t1 (a) VALUES ('10:10:10.949999'); INSERT INTO t1 (a) VALUES ('10:10:10.499999'); UPDATE t1 SET t0=a, t1=a, t2=a, t3=a, t4=a, t5=a, t6=a; SELECT * FROM t1;; a 10:10:10.999999 t6 2001-01-01 10:10:10.999999 t5 2001-01-01 10:10:11.00000 t4 2001-01-01 10:10:11.0000 t3 2001-01-01 10:10:11.000 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 10:10:10.999994 t6 2001-01-01 10:10:10.999994 t5 2001-01-01 10:10:10.99999 t4 2001-01-01 10:10:11.0000 t3 2001-01-01 10:10:11.000 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 10:10:10.999949 t6 2001-01-01 10:10:10.999949 t5 2001-01-01 10:10:10.99995 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:11.000 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 10:10:10.999499 t6 2001-01-01 10:10:10.999499 t5 2001-01-01 10:10:10.99950 t4 2001-01-01 10:10:10.9995 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 10:10:10.994999 t6 2001-01-01 10:10:10.994999 t5 2001-01-01 10:10:10.99500 t4 2001-01-01 10:10:10.9950 t3 2001-01-01 10:10:10.995 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 10:10:10.949999 t6 2001-01-01 10:10:10.949999 t5 2001-01-01 10:10:10.95000 t4 2001-01-01 10:10:10.9500 t3 2001-01-01 10:10:10.950 t2 2001-01-01 10:10:10.95 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:11 a 10:10:10.499999 t6 2001-01-01 10:10:10.499999 t5 2001-01-01 10:10:10.50000 t4 2001-01-01 10:10:10.5000 t3 2001-01-01 10:10:10.500 t2 2001-01-01 10:10:10.50 t1 2001-01-01 10:10:10.5 t0 2001-01-01 10:10:10 DROP TABLE t1; SET timestamp=default; # # Testing rounding from DECIMAL to DATETIME(N) # CREATE TABLE t1 (a DECIMAL(30,6), t6 DATETIME(6), t5 DATETIME(5), t4 DATETIME(4), t3 DATETIME(3), t2 DATETIME(2), t1 DATETIME(1), t0 DATETIME); INSERT INTO t1 (a) VALUES (20010101101010.999999); INSERT INTO t1 (a) VALUES (20010101101010.999994); INSERT INTO t1 (a) VALUES (20010101101010.999949); INSERT INTO t1 (a) VALUES (20010101101010.999499); INSERT INTO t1 (a) VALUES (20010101101010.994999); INSERT INTO t1 (a) VALUES (20010101101010.949999); INSERT INTO t1 (a) VALUES (20010101101010.499999); UPDATE t1 SET t0=a, t1=a, t2=a, t3=a, t4=a, t5=a, t6=a; SELECT * FROM t1;; a 20010101101010.999999 t6 2001-01-01 10:10:10.999999 t5 2001-01-01 10:10:11.00000 t4 2001-01-01 10:10:11.0000 t3 2001-01-01 10:10:11.000 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 20010101101010.999994 t6 2001-01-01 10:10:10.999994 t5 2001-01-01 10:10:10.99999 t4 2001-01-01 10:10:11.0000 t3 2001-01-01 10:10:11.000 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 20010101101010.999949 t6 2001-01-01 10:10:10.999949 t5 2001-01-01 10:10:10.99995 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:11.000 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 20010101101010.999499 t6 2001-01-01 10:10:10.999499 t5 2001-01-01 10:10:10.99950 t4 2001-01-01 10:10:10.9995 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 20010101101010.994999 t6 2001-01-01 10:10:10.994999 t5 2001-01-01 10:10:10.99500 t4 2001-01-01 10:10:10.9950 t3 2001-01-01 10:10:10.995 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 20010101101010.949999 t6 2001-01-01 10:10:10.949999 t5 2001-01-01 10:10:10.95000 t4 2001-01-01 10:10:10.9500 t3 2001-01-01 10:10:10.950 t2 2001-01-01 10:10:10.95 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:11 a 20010101101010.499999 t6 2001-01-01 10:10:10.499999 t5 2001-01-01 10:10:10.50000 t4 2001-01-01 10:10:10.5000 t3 2001-01-01 10:10:10.500 t2 2001-01-01 10:10:10.50 t1 2001-01-01 10:10:10.5 t0 2001-01-01 10:10:10 DROP TABLE t1; # # Testing truncation warnings # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.111111 xxx'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('0000-00-00 00:00:00.1111110'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.1111111'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.1111114'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.1111115'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.1111119'); SELECT * FROM t1; a 0000-00-00 00:00:00.111111 0000-00-00 00:00:00.111111 0000-00-00 00:00:00.111111 0000-00-00 00:00:00.111111 0000-00-00 00:00:00.111112 0000-00-00 00:00:00.111112 DELETE FROM t1; INSERT INTO t1 VALUES (0.1111110); INSERT INTO t1 VALUES (0.1111111); INSERT INTO t1 VALUES (0.1111114); INSERT INTO t1 VALUES (0.1111115); INSERT INTO t1 VALUES (0.1111119); SELECT * FROM t1; a 0000-00-00 00:00:00.111111 0000-00-00 00:00:00.111111 0000-00-00 00:00:00.111111 0000-00-00 00:00:00.111112 0000-00-00 00:00:00.111112 DELETE FROM t1; INSERT INTO t1 VALUES (0.1111110e0); INSERT INTO t1 VALUES (0.1111111e0); INSERT INTO t1 VALUES (0.1111114e0); INSERT INTO t1 VALUES (0.1111115e0); INSERT INTO t1 VALUES (0.1111119e0); SELECT * FROM t1; a 0000-00-00 00:00:00.111111 0000-00-00 00:00:00.111111 0000-00-00 00:00:00.111111 0000-00-00 00:00:00.111112 0000-00-00 00:00:00.111112 DROP TABLE t1; # # Testing implicit CAST from TIME to DATETIME # SET @@timestamp=UNIX_TIMESTAMP('2008-01-03 10:20:30.1'); CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES (CURRENT_TIME), (CURRENT_TIME(6)); INSERT INTO t1 VALUES (TIME'08:00:00.123456'), (TIME'240:00:00.000001'); INSERT INTO t1 VALUES (TIME'-10:00:00.000001'), (TIME'-240:00:00.000001'); SELECT * FROM t1; a 2008-01-03 10:20:30.000000 2008-01-03 10:20:30.100000 2008-01-03 08:00:00.123456 2008-01-13 00:00:00.000001 2008-01-02 13:59:59.999999 2007-12-23 23:59:59.999999 DROP TABLE t1; SET @@timestamp=default; # # Testing IN # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000001'); INSERT INTO t1 VALUES ('2000-01-01 00:00:00.000000'); INSERT INTO t1 VALUES ('2000-01-01 00:00:00.000001'); INSERT INTO t1 VALUES ('2000-01-01 00:00:00.000002'); INSERT INTO t1 VALUES ('2000-01-01 10:00:00.000000'); INSERT INTO t1 VALUES ('2000-01-01 10:00:00.000001'); INSERT INTO t1 VALUES ('2000-01-01 10:00:00.000002'); INSERT INTO t1 VALUES ('2000-01-01 23:00:00.000000'); INSERT INTO t1 VALUES ('2000-01-01 23:00:00.000001'); INSERT INTO t1 VALUES ('2000-01-01 23:00:00.000002'); SELECT * FROM t1 WHERE a IN ('2000-01-01 00:00:00', '0000-00-00 00:00:00.000001', '2000-01-01 23:00:00.000002'); a 0000-00-00 00:00:00.000001 2000-01-01 00:00:00.000000 2000-01-01 23:00:00.000002 SELECT * FROM t1 WHERE a IN (0, 20000101000000, 20000101230000); a 0000-00-00 00:00:00.000000 2000-01-01 00:00:00.000000 2000-01-01 23:00:00.000000 SELECT * FROM t1 WHERE a IN (0.000001, 20000101000000.000001, 20000101230000.000001); a 0000-00-00 00:00:00.000001 2000-01-01 00:00:00.000001 2000-01-01 23:00:00.000001 SELECT * FROM t1 WHERE a IN (0e0, 0.000001e0); a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000001 # # Testing Item_temporal_with_ref::print # EXPLAIN EXTENDED SELECT * FROM t1 WHERE a IN (0.000001,0); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL ALL NULL NULL NULL NULL 11 20.00 Using where Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where (`test`.`t1`.`a` in ('0000-00-00 00:00:00.000001','0000-00-00 00:00:00.000000')) # # Testing IN with index: involves field->store_packed() # ALTER TABLE t1 ADD KEY(a); SELECT * FROM t1 WHERE a IN ('2000-01-01 00:00:00', '0000-00-00 00:00:00.000001','2000-01-01 23:00:00.000002'); a 0000-00-00 00:00:00.000001 2000-01-01 00:00:00.000000 2000-01-01 23:00:00.000002 SELECT * FROM t1 WHERE a IN (0, 20000101000000, 20000101230000); a 0000-00-00 00:00:00.000000 2000-01-01 00:00:00.000000 2000-01-01 23:00:00.000000 SELECT * FROM t1 WHERE a IN (0.000001, 20000101000000.000001, 20000101230000.000001); a 0000-00-00 00:00:00.000001 2000-01-01 00:00:00.000001 2000-01-01 23:00:00.000001 SELECT * FROM t1 WHERE a IN (0e0, 0.000001e0); a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000001 DROP TABLE t1; # # Testing CREATE TABLE LIKE # CREATE TABLE t1 (a DATETIME(6)); CREATE TABLE t2 LIKE t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` datetime(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2, t1; # # Testing CREATE TABLE .. SELECT # CREATE TABLE t1 (a DATETIME(6)); CREATE TABLE t2 AS SELECT * FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` datetime(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2, t1; # # Testing JOIN between DATETIME(6) and DATETIME(6) # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2000-01-01 00:01:03.1'); INSERT INTO t1 VALUES ('2000-01-01 00:01:03.12'); INSERT INTO t1 VALUES ('2000-01-01 00:01:03.123'); INSERT INTO t1 VALUES ('2000-01-01 00:01:03.1234'); INSERT INTO t1 VALUES ('2000-01-01 00:01:03.12345'); INSERT INTO t1 VALUES ('2000-01-01 00:01:03.123456'); CREATE TABLE t2 (a DATETIME(6)); INSERT INTO t2 SELECT * FROM t1; SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123456 2000-01-01 00:01:03.123456 ALTER TABLE t1 ADD KEY(a); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123456 2000-01-01 00:01:03.123456 ALTER TABLE t2 ADD KEY(a); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123456 2000-01-01 00:01:03.123456 ALTER TABLE t1 DROP KEY a; SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123456 2000-01-01 00:01:03.123456 DROP TABLE t2; DROP TABLE t1; # # Testing JOIN between DATETIME and DATETIME(6) # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('0000-00-00 23:59:59.000000'); INSERT INTO t1 VALUES ('2000-01-01 10:11:12.000000'); INSERT INTO t1 VALUES ('2000-01-01 10:11:12.000001'); INSERT INTO t1 VALUES ('2000-01-01 10:11:12.000002'); INSERT INTO t1 VALUES ('2000-01-01 10:11:13.000000'); INSERT INTO t1 VALUES ('2000-01-01 10:11:13.000001'); INSERT INTO t1 VALUES ('2000-01-01 10:11:13.000002'); INSERT INTO t1 VALUES ('2000-01-01 23:59:59.999999'); INSERT INTO t1 VALUES ('2000-01-01 23:59:59.000000'); CREATE TABLE t2 (a DATETIME); INSERT INTO t2 VALUES ('2000-01-01 10:11:12'); INSERT INTO t2 VALUES ('2000-01-01 10:11:13'); INSERT INTO t2 VALUES ('0000-00-00 23:59:59'); INSERT INTO t2 VALUES ('2000-01-01 23:59:59'); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 0000-00-00 23:59:59.000000 0000-00-00 23:59:59 2000-01-01 10:11:12.000000 2000-01-01 10:11:12 2000-01-01 10:11:13.000000 2000-01-01 10:11:13 2000-01-01 23:59:59.000000 2000-01-01 23:59:59 ALTER TABLE t1 ADD KEY(a); ALTER TABLE t2 ADD KEY(a); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 0000-00-00 23:59:59.000000 0000-00-00 23:59:59 2000-01-01 10:11:12.000000 2000-01-01 10:11:12 2000-01-01 10:11:13.000000 2000-01-01 10:11:13 2000-01-01 23:59:59.000000 2000-01-01 23:59:59 DROP TABLE t2, t1; # # Testing unique index # CREATE TABLE t1 (a DATETIME(6), UNIQUE(a)); INSERT INTO t1 VALUES ('2000-01-01 00:01:02'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.1'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.12'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.123'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.1234'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.12345'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.12345'); ERROR 23000: Duplicate entry '2000-01-01 00:01:02.123450' for key 'a' DROP TABLE t1; # # Testing GROUP BY # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2000-01-01 00:01:02'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.0'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.01'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.010'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.02'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.020'); SELECT a, COUNT(*) FROM t1 GROUP BY a; a COUNT(*) 2000-01-01 00:01:02.000000 2 2000-01-01 00:01:02.010000 2 2000-01-01 00:01:02.020000 2 DROP TABLE t1; # # Testing MIN() and MAX() # CREATE TABLE t1 (a INT, b DATETIME(6)); INSERT INTO t1 VALUES (1, '2001-01-01 00:01:02.000001'); INSERT INTO t1 VALUES (1, '2001-01-01 00:01:02'); INSERT INTO t1 VALUES (2, '2001-01-01 10:01:02'); INSERT INTO t1 VALUES (2, '2001-01-01 10:01:02.000001'); INSERT INTO t1 VALUES (3, '2001-01-01 10:11:02'); INSERT INTO t1 VALUES (3, '2001-01-01 10:11:02.000001'); SELECT MIN(b), MAX(b) FROM t1; MIN(b) MAX(b) 2001-01-01 00:01:02.000000 2001-01-01 10:11:02.000001 SELECT a, MIN(b), MAX(b) FROM t1 GROUP BY a; a MIN(b) MAX(b) 1 2001-01-01 00:01:02.000000 2001-01-01 00:01:02.000001 2 2001-01-01 10:01:02.000000 2001-01-01 10:01:02.000001 3 2001-01-01 10:11:02.000000 2001-01-01 10:11:02.000001 DROP TABLE t1; # # Testing MIN(DATETIME) and MAX(DATETIME) in arithmetic expressions and CAST # This covers Item_sum_hybrid::val_int(), val_real(), val_decimal() # CREATE TABLE t1 ( t0 DATETIME, t1 DATETIME(1), t2 DATETIME(2), t3 DATETIME(3), t4 DATETIME(4), t5 DATETIME(5), t6 DATETIME(6) ); INSERT INTO t1 VALUES ( '2001-01-01 10:10:10', '2001-01-01 10:10:10.9', '2001-01-01 10:10:10.99', '2001-01-01 10:10:10.999', '2001-01-01 10:10:10.9999', '2001-01-01 10:10:10.99999', '2001-01-01 10:10:10.999999' ); CREATE TABLE t2 AS SELECT MAX(t0) + 1, MAX(t1) + 1, MAX(t2) + 1, MAX(t3) + 1, MAX(t4) + 1, MAX(t5) + 1, MAX(t6) + 1 FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra MAX(t0) + 1 bigint(16) YES NULL MAX(t1) + 1 decimal(16,1) YES NULL MAX(t2) + 1 decimal(17,2) YES NULL MAX(t3) + 1 decimal(18,3) YES NULL MAX(t4) + 1 decimal(19,4) YES NULL MAX(t5) + 1 decimal(20,5) YES NULL MAX(t6) + 1 decimal(21,6) YES NULL SELECT * FROM t2; MAX(t0) + 1 MAX(t1) + 1 MAX(t2) + 1 MAX(t3) + 1 MAX(t4) + 1 MAX(t5) + 1 MAX(t6) + 1 20010101101011 20010101101011.9 20010101101011.99 20010101101011.999 20010101101011.9999 20010101101011.99999 20010101101011.999999 DROP TABLE t2; CREATE TABLE t2 AS SELECT MAX(t0) + 1.1, MAX(t1) + 1.1, MAX(t2) + 1.1, MAX(t3) + 1.1, MAX(t4) + 1.1, MAX(t5) + 1.1, MAX(t6) + 1.1 FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra MAX(t0) + 1.1 decimal(16,1) YES NULL MAX(t1) + 1.1 decimal(16,1) YES NULL MAX(t2) + 1.1 decimal(17,2) YES NULL MAX(t3) + 1.1 decimal(18,3) YES NULL MAX(t4) + 1.1 decimal(19,4) YES NULL MAX(t5) + 1.1 decimal(20,5) YES NULL MAX(t6) + 1.1 decimal(21,6) YES NULL SELECT * FROM t2; MAX(t0) + 1.1 MAX(t1) + 1.1 MAX(t2) + 1.1 MAX(t3) + 1.1 MAX(t4) + 1.1 MAX(t5) + 1.1 MAX(t6) + 1.1 20010101101011.1 20010101101012.0 20010101101012.09 20010101101012.099 20010101101012.0999 20010101101012.09999 20010101101012.099999 DROP TABLE t2; CREATE TABLE t2 AS SELECT MAX(t0) + 1.0e0, MAX(t1) + 1.0e0, MAX(t2) + 1.0e0, MAX(t3) + 1.0e0, MAX(t4) + 1.0e0, MAX(t5) + 1.0e0, MAX(t6) + 1.0e0 FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra MAX(t0) + 1.0e0 double YES NULL MAX(t1) + 1.0e0 double YES NULL MAX(t2) + 1.0e0 double YES NULL MAX(t3) + 1.0e0 double YES NULL MAX(t4) + 1.0e0 double YES NULL MAX(t5) + 1.0e0 double YES NULL MAX(t6) + 1.0e0 double YES NULL DROP TABLE t2; SELECT MAX(t0) + 1, MAX(t1) + 1, MAX(t2) + 1, MAX(t3) + 1, MAX(t4) + 1, MAX(t5) + 1, MAX(t6) + 1 FROM t1; MAX(t0) + 1 MAX(t1) + 1 MAX(t2) + 1 MAX(t3) + 1 MAX(t4) + 1 MAX(t5) + 1 MAX(t6) + 1 20010101101011 20010101101011.9 20010101101011.99 20010101101011.999 20010101101011.9999 20010101101011.99999 20010101101011.999999 SELECT CAST(MAX(t0) AS SIGNED), CAST(MAX(t1) AS SIGNED), CAST(MAX(t2) AS SIGNED), CAST(MAX(t3) AS SIGNED), CAST(MAX(t4) AS SIGNED), CAST(MAX(t5) AS SIGNED), CAST(MAX(t6) AS SIGNED) FROM t1; CAST(MAX(t0) AS SIGNED) CAST(MAX(t1) AS SIGNED) CAST(MAX(t2) AS SIGNED) CAST(MAX(t3) AS SIGNED) CAST(MAX(t4) AS SIGNED) CAST(MAX(t5) AS SIGNED) CAST(MAX(t6) AS SIGNED) 20010101101010 20010101101011 20010101101011 20010101101011 20010101101011 20010101101011 20010101101011 DROP TABLE t1; # # Testing LEAST # SELECT LEAST(TIMESTAMP'2001-01-01 00:00:00.1', TIMESTAMP'2001-01-01 00:00:00.2'); LEAST(TIMESTAMP'2001-01-01 00:00:00.1', TIMESTAMP'2001-01-01 00:00:00.2') 2001-01-01 00:00:00.1 SELECT LEAST(TIMESTAMP'2001-01-01 00:00:00.1', TIMESTAMP'2001-01-01 00:00:00.2') + 1; LEAST(TIMESTAMP'2001-01-01 00:00:00.1', TIMESTAMP'2001-01-01 00:00:00.2') + 1 20010101000001.1 SELECT LEAST(TIMESTAMP'2001-01-01 00:00:00.1', TIMESTAMP'2001-01-01 00:00:00.2') + 1.0; LEAST(TIMESTAMP'2001-01-01 00:00:00.1', TIMESTAMP'2001-01-01 00:00:00.2') + 1.0 20010101000001.1 SELECT LEAST(TIMESTAMP'2001-01-01 00:00:00.1', TIMESTAMP'2001-01-01 00:00:00.2') + 1e0; LEAST(TIMESTAMP'2001-01-01 00:00:00.1', TIMESTAMP'2001-01-01 00:00:00.2') + 1e0 20010101000001.1 SELECT LEAST(CAST('2001-01-01 00:00:00.1' as DATETIME(6)), '2001-01-02 00:00:00.1') AS a; a 2001-01-01 00:00:00.100000 SELECT LEAST(CAST('2001-01-01 00:00:00.1' as DATETIME(6)), '2001-01-02 00:00:00.1') + 0 AS a; a 20010101000000.1 SELECT CAST(LEAST(CAST('2001-01-01 00:00:00.1' as DATETIME(6)), '2001-01-02 00:00:00.1') AS SIGNED) AS a; a 20010101000000 SELECT CAST(LEAST(CAST('2001-01-01 00:00:00.1' as DATETIME(6)), '2001-01-02 00:00:00.1') AS DECIMAL(30,6)) AS a; a 20010101000000.100000 SELECT GREATEST(CAST('2001-01-01 00:00:00.1' as DATETIME(6)), '2001-01-02 00:00:00.1') AS a; a 2001-01-02 00:00:00.1 SELECT GREATEST(CAST('2001-01-01 00:00:00.1' as DATETIME(6)), '2001-01-02 00:00:00.1') + 0 AS a; a 20010102000000.1 SELECT CAST(GREATEST(CAST('2001-01-01 00:00:00.1' as DATETIME(6)), '2001-01-02 00:00:00.1') AS SIGNED) AS a; a 20010102000000 SELECT CAST(GREATEST(CAST('2001-01-01 00:00:00.1' as DATETIME(6)), '2001-01-02 00:00:00.1') AS DECIMAL(30,6)) AS a; a 20010102000000.100000 CREATE TABLE t1 AS SELECT LEAST(CAST('2001-01-01 00:00:00' AS DATETIME(1)), CAST('2001-01-01 00:00:00' AS DATETIME(2))) AS l, GREATEST(CAST('2001-01-01 00:00:00' AS DATETIME(1)), CAST('2001-01-01 00:00:00' AS DATETIME(2))) AS g; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `l` datetime(2) DEFAULT NULL, `g` datetime(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; # # Testing INSERT, MAX and MIN values # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('9999-12-31 23:59:59'); INSERT INTO t1 VALUES ('9999-12-31 23:59:59.1'); INSERT INTO t1 VALUES ('9999-12-31 24:00:00'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; a 9999-12-31 23:59:59.000000 9999-12-31 23:59:59.100000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing integer INSERT values # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES (19990102); INSERT INTO t1 VALUES (19990102112233); INSERT INTO t1 VALUES (100000101112233); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (0); INSERT INTO t1 VALUES (-1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT * FROM t1; a 1999-01-02 00:00:00.000000 1999-01-02 11:22:33.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing decimal INSERT values # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES (20010101223344.4); INSERT INTO t1 VALUES (20010101223344.45); INSERT INTO t1 VALUES (20010101223344.456); INSERT INTO t1 VALUES (20010101223344.4567); INSERT INTO t1 VALUES (20010101223344.45678); INSERT INTO t1 VALUES (20010101223344.456789); INSERT INTO t1 VALUES (2001010120203.4567894); INSERT INTO t1 VALUES (2001010120203.4567895); INSERT INTO t1 VALUES (2001010120203.4567896); INSERT INTO t1 VALUES (2001010120203.456789678); INSERT INTO t1 VALUES (200101018385959.000000); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-200101018385959.000000); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT * FROM t1; a 2001-01-01 22:33:44.400000 2001-01-01 22:33:44.450000 2001-01-01 22:33:44.456000 2001-01-01 22:33:44.456700 2001-01-01 22:33:44.456780 2001-01-01 22:33:44.456789 0200-10-10 12:02:03.456789 0200-10-10 12:02:03.456790 0200-10-10 12:02:03.456790 0200-10-10 12:02:03.456790 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing double INSERT values # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES (112.233e-3); INSERT INTO t1 VALUES (112.223e-2); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (112.233e-1); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (112.233e0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (112.233e1); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (112.233e2); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (112.233e3); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (112.233e4); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (-123.456e0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT * FROM t1; a 0000-00-00 00:00:00.112233 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 2000-01-12 00:00:00.000000 2000-11-22 00:00:00.000000 2001-12-23 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing UPDATE between DATETIME(6) and DATETIME/BIGINT/DECIMAL/DOUBLE # CREATE TABLE t1 (t0 DATETIME, t6 DATETIME(6), i BIGINT, d DECIMAL(20,6), f DOUBLE); INSERT INTO t1 (t0) VALUES ('0000-00-00 11:22:33'); UPDATE t1 SET t6=t0, i=t0, d=t0, f=t0; SELECT * FROM t1; t0 t6 i d f 0000-00-00 11:22:33 0000-00-00 11:22:33.000000 112233 112233.000000 112233 UPDATE t1 SET t6='0000-00-00 11:22:33.1'; UPDATE t1 SET t0=t6, i=t6, d=t6, f=t6; SELECT * FROM t1; t0 t6 i d f 0000-00-00 11:22:33 0000-00-00 11:22:33.100000 112233 112233.100000 112233.1 UPDATE t1 SET i=20000101112233, d=20001010112233.1, f=00001010112233.1; UPDATE t1 SET t6=i; SELECT t6 FROM t1; t6 2000-01-01 11:22:33.000000 UPDATE t1 SET t6=d; SELECT t6 FROM t1; t6 2000-10-10 11:22:33.100000 UPDATE t1 SET t6=f; SELECT t6 FROM t1; t6 2000-10-10 11:22:33.100000 DROP TABLE t1; # # Testing JOIN with comparison between DATETIME(6) and DATE # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2000-01-01 00:00:00.000000'); INSERT INTO t1 VALUES ('2000-01-01 00:00:00.000001'); INSERT INTO t1 VALUES ('2000-01-02 00:00:00.000000'); CREATE TABLE t2 (a DATE); INSERT INTO t2 VALUES ('2000-01-01'); INSERT INTO t2 VALUES ('2000-01-02'); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 2000-01-01 00:00:00.000000 2000-01-01 2000-01-02 00:00:00.000000 2000-01-02 ALTER TABLE t2 MODIFY a DATETIME(6); SELECT * FROM t1, t2 WHERE t1.a=CAST(t2.a AS DATE) ORDER BY t1.a, t2.a; a a 2000-01-01 00:00:00.000000 2000-01-01 00:00:00.000000 2000-01-02 00:00:00.000000 2000-01-02 00:00:00.000000 DROP TABLE t2; DROP TABLE t1; # # Testing JOIN with comparison between DATETIME(6) and BIGINT # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2000-01-01 00:00:00'); INSERT INTO t1 VALUES ('2000-01-01 11:22:33'); INSERT INTO t1 VALUES ('2000-01-01 11:22:33.123'); CREATE TABLE t2 (b BIGINT); INSERT INTO t2 VALUES (20000101); INSERT INTO t2 VALUES (20000101112233); SELECT * FROM t1, t2 WHERE a=b; a b 2000-01-01 11:22:33.000000 20000101112233 DROP TABLE t1, t2; # # Testing JOIN with comparison between DATETIME(6) and DECIMAL(20,6) # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 11:22:33'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123456'); CREATE TABLE t2 (b DECIMAL(20,6)); INSERT INTO t2 VALUES (20010101112233); INSERT INTO t2 VALUES (20010101112233.123); INSERT INTO t2 VALUES (20010101112233.123456); SELECT * FROM t1, t2 WHERE a=b; a b 2001-01-01 11:22:33.000000 20010101112233.000000 2001-01-01 11:22:33.123000 20010101112233.123000 2001-01-01 11:22:33.123456 20010101112233.123456 DROP TABLE t1, t2; # # Testing JOIN with comparison between DATETIME(6) and DECIMAL(20,3) # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 11:22:33'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123456'); CREATE TABLE t2 (b DECIMAL(20,3)); INSERT INTO t2 VALUES (20010101112233); INSERT INTO t2 VALUES (20010101112233.123); SELECT * FROM t1, t2 WHERE a=b; a b 2001-01-01 11:22:33.000000 20010101112233.000 2001-01-01 11:22:33.123000 20010101112233.123 DROP TABLE t1, t2; # # Testing JOIN with comparison between DATETIME(6) and DOUBLE # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('0000-00-00 11:22:33'); INSERT INTO t1 VALUES ('0000-00-00 11:22:33.123'); INSERT INTO t1 VALUES ('0000-00-00 11:22:33.123456'); CREATE TABLE t2 (b DOUBLE); INSERT INTO t2 VALUES (112233); INSERT INTO t2 VALUES (112233.123); INSERT INTO t2 VALUES (112233.123456); SELECT * FROM t1, t2 WHERE a=b; a b 0000-00-00 11:22:33.000000 112233 0000-00-00 11:22:33.123000 112233.123 0000-00-00 11:22:33.123456 112233.123456 DROP TABLE t1, t2; # # Testing JOIN with comparison between DATETIME(6) and VARCHAR # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 11:22:33'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123'); CREATE TABLE t2 (b VARCHAR(64)); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.123'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.1230'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.12300'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.123000'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.0'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.00'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.000'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.0000'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.00000'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.000000'); SELECT * FROM t1, t2 WHERE a=b ORDER BY BINARY a, BINARY b; a b 2001-01-01 11:22:33.000000 2001-01-01 11:22:33 2001-01-01 11:22:33.000000 2001-01-01 11:22:33. 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.1230 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.12300 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123000 ALTER TABLE t1 ADD KEY (a); SELECT * FROM t1, t2 WHERE a=b ORDER BY BINARY a, BINARY b; a b 2001-01-01 11:22:33.000000 2001-01-01 11:22:33 2001-01-01 11:22:33.000000 2001-01-01 11:22:33. 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.1230 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.12300 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123000 ALTER TABLE t2 ADD KEY(b); SELECT * FROM t1, t2 WHERE a=b ORDER BY BINARY a, BINARY b; a b 2001-01-01 11:22:33.000000 2001-01-01 11:22:33 2001-01-01 11:22:33.000000 2001-01-01 11:22:33. 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.1230 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.12300 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123000 ALTER TABLE t1 DROP KEY a; SELECT * FROM t1, t2 WHERE a=b ORDER BY BINARY a, BINARY b; a b 2001-01-01 11:22:33.000000 2001-01-01 11:22:33 2001-01-01 11:22:33.000000 2001-01-01 11:22:33. 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.1230 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.12300 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123000 DROP TABLE t1, t2; # # Testing arithmetic with INT, DECIMAL, FLOAT # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000000'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000001'); SELECT a, a + 0, a + 1, a + 1.0, a + 1e0 FROM t1; a a + 0 a + 1 a + 1.0 a + 1e0 2001-01-01 00:00:00.000000 20010101000000.000000 20010101000001.000000 20010101000001.000000 20010101000001 2001-01-01 00:00:00.000001 20010101000000.000001 20010101000001.000001 20010101000001.000001 20010101000001 CREATE TABLE t2 AS SELECT a + 1 AS i, a + 1.0 AS d, a + 1e0 AS f FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `i` decimal(21,6) DEFAULT NULL, `d` decimal(21,6) DEFAULT NULL, `f` double DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1, t2; # # Testing that DATETIME behaves as INT/DECIMAL for numeric arithmetic # CREATE TABLE t1 (t0 DATETIME, t3 DATETIME(3), t6 DATETIME(6)); CREATE TABLE t2 AS SELECT t0 + 1, t3 + 1, t6 + 1, t0 - 1, t3 - 1, t6 - 1, t0 * 1, t3 * 1, t6 * 1, t0 / 1, t3 / 1, t6 / 1, TIMESTAMP'2001-01-01 10:10:10' + 1, TIMESTAMP'2001-01-01 10:10:10.123' + 1, TIMESTAMP'2001-01-01 10:10:10.123456' + 1, TIMESTAMP'2001-01-01 10:10:10' - 1, TIMESTAMP'2001-01-01 10:10:10.123' - 1, TIMESTAMP'2001-01-01 10:10:10.123456' - 1, TIMESTAMP'2001-01-01 10:10:10' * 1, TIMESTAMP'2001-01-01 10:10:10.123' * 1, TIMESTAMP'2001-01-01 10:10:10.123456' * 1, TIMESTAMP'2001-01-01 10:10:10' / 1, TIMESTAMP'2001-01-01 10:10:10.123' / 1, TIMESTAMP'2001-01-01 10:10:10.123456' / 1 FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `t0 + 1` bigint(16) DEFAULT NULL, `t3 + 1` decimal(18,3) DEFAULT NULL, `t6 + 1` decimal(21,6) DEFAULT NULL, `t0 - 1` bigint(16) DEFAULT NULL, `t3 - 1` decimal(18,3) DEFAULT NULL, `t6 - 1` decimal(21,6) DEFAULT NULL, `t0 * 1` bigint(16) DEFAULT NULL, `t3 * 1` decimal(18,3) DEFAULT NULL, `t6 * 1` decimal(21,6) DEFAULT NULL, `t0 / 1` decimal(18,4) DEFAULT NULL, `t3 / 1` decimal(21,7) DEFAULT NULL, `t6 / 1` decimal(24,10) DEFAULT NULL, `TIMESTAMP'2001-01-01 10:10:10' + 1` bigint(16) NOT NULL DEFAULT '0', `TIMESTAMP'2001-01-01 10:10:10.123' + 1` decimal(18,3) NOT NULL DEFAULT '0.000', `TIMESTAMP'2001-01-01 10:10:10.123456' + 1` decimal(21,6) NOT NULL DEFAULT '0.000000', `TIMESTAMP'2001-01-01 10:10:10' - 1` bigint(16) NOT NULL DEFAULT '0', `TIMESTAMP'2001-01-01 10:10:10.123' - 1` decimal(18,3) NOT NULL DEFAULT '0.000', `TIMESTAMP'2001-01-01 10:10:10.123456' - 1` decimal(21,6) NOT NULL DEFAULT '0.000000', `TIMESTAMP'2001-01-01 10:10:10' * 1` bigint(16) NOT NULL DEFAULT '0', `TIMESTAMP'2001-01-01 10:10:10.123' * 1` decimal(18,3) NOT NULL DEFAULT '0.000', `TIMESTAMP'2001-01-01 10:10:10.123456' * 1` decimal(21,6) NOT NULL DEFAULT '0.000000', `TIMESTAMP'2001-01-01 10:10:10' / 1` decimal(18,4) DEFAULT NULL, `TIMESTAMP'2001-01-01 10:10:10.123' / 1` decimal(21,7) DEFAULT NULL, `TIMESTAMP'2001-01-01 10:10:10.123456' / 1` decimal(24,10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # # Testing that DATETIME behaves as DECIMAL for SUM() and AVG() # SET @t='2010-01-01 00:11:12.123456'; CREATE TABLE t1 (t0 DATETIME, t3 DATETIME(3), t6 DATETIME(6)); INSERT INTO t1 VALUES (@t, @t, @t); SELECT MIN(t0), MAX(t0), AVG(t0), SUM(t0) FROM t1; MIN(t0) 2010-01-01 00:11:12 MAX(t0) 2010-01-01 00:11:12 AVG(t0) 20100101001112.0000 SUM(t0) 20100101001112 SELECT MIN(t3), MAX(t3), AVG(t3), SUM(t3) FROM t1; MIN(t3) 2010-01-01 00:11:12.123 MAX(t3) 2010-01-01 00:11:12.123 AVG(t3) 20100101001112.1230000 SUM(t3) 20100101001112.123 SELECT MIN(t6), MAX(t6), AVG(t6), SUM(t6) FROM t1; MIN(t6) 2010-01-01 00:11:12.123456 MAX(t6) 2010-01-01 00:11:12.123456 AVG(t6) 20100101001112.1234560000 SUM(t6) 20100101001112.123456 SET @t='2010-01-01 00:11:12.000000'; INSERT INTO t1 VALUES (@t, @t, @t); SELECT MIN(t0), MAX(t0), AVG(t0), SUM(t0) FROM t1; MIN(t0) 2010-01-01 00:11:12 MAX(t0) 2010-01-01 00:11:12 AVG(t0) 20100101001112.0000 SUM(t0) 40200202002224 SELECT MIN(t3), MAX(t3), AVG(t3), SUM(t3) FROM t1; MIN(t3) 2010-01-01 00:11:12.000 MAX(t3) 2010-01-01 00:11:12.123 AVG(t3) 20100101001112.0615000 SUM(t3) 40200202002224.123 SELECT MIN(t6), MAX(t6), AVG(t6), SUM(t6) FROM t1; MIN(t6) 2010-01-01 00:11:12.000000 MAX(t6) 2010-01-01 00:11:12.123456 AVG(t6) 20100101001112.0617280000 SUM(t6) 40200202002224.123456 CREATE TABLE t2 AS SELECT MIN(t0), MAX(t0), AVG(t0), SUM(t0), MIN(t3), MAX(t3), AVG(t3), SUM(t3), MIN(t6), MAX(t6), AVG(t6), SUM(t6) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `MIN(t0)` datetime DEFAULT NULL, `MAX(t0)` datetime DEFAULT NULL, `AVG(t0)` decimal(18,4) DEFAULT NULL, `SUM(t0)` decimal(36,0) DEFAULT NULL, `MIN(t3)` datetime(3) DEFAULT NULL, `MAX(t3)` datetime(3) DEFAULT NULL, `AVG(t3)` decimal(21,7) DEFAULT NULL, `SUM(t3)` decimal(39,3) DEFAULT NULL, `MIN(t6)` datetime(6) DEFAULT NULL, `MAX(t6)` datetime(6) DEFAULT NULL, `AVG(t6)` decimal(24,10) DEFAULT NULL, `SUM(t6)` decimal(42,6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; SET sql_mode = default; # # Testing functions ADDTIME, SUBTIME, TIMESTAMP, TIMEDIFF, DATE_ADD/SUB # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('1000-01-01 01:00:00.000000'); INSERT INTO t1 VALUES ('1000-01-01 01:00:00.000001'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000000'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000001'); INSERT INTO t1 VALUES ('2001-01-01 01:00:00.000000'); INSERT INTO t1 VALUES ('2001-01-01 01:00:00.000001'); SELECT ADDTIME(a, '00:00:00.000001') FROM t1 ORDER BY a; ADDTIME(a, '00:00:00.000001') 1000-01-01 01:00:00.000001 1000-01-01 01:00:00.000002 2001-01-01 00:00:00.000001 2001-01-01 00:00:00.000002 2001-01-01 01:00:00.000001 2001-01-01 01:00:00.000002 SELECT ADDTIME(a, '10:00:00.000001') FROM t1 ORDER BY a; ADDTIME(a, '10:00:00.000001') 1000-01-01 11:00:00.000001 1000-01-01 11:00:00.000002 2001-01-01 10:00:00.000001 2001-01-01 10:00:00.000002 2001-01-01 11:00:00.000001 2001-01-01 11:00:00.000002 SELECT ADDTIME(CAST(a AS DATETIME(0)), 100000) FROM t1 ORDER BY a; ADDTIME(CAST(a AS DATETIME(0)), 100000) 1000-01-01 11:00:00 1000-01-01 11:00:00 2001-01-01 10:00:00 2001-01-01 10:00:00 2001-01-01 11:00:00 2001-01-01 11:00:00 SELECT ADDTIME(CAST(a AS DATETIME(0)), 100000.1) FROM t1 ORDER BY a; ADDTIME(CAST(a AS DATETIME(0)), 100000.1) 1000-01-01 11:00:00.1 1000-01-01 11:00:00.1 2001-01-01 10:00:00.1 2001-01-01 10:00:00.1 2001-01-01 11:00:00.1 2001-01-01 11:00:00.1 SELECT a, ADDTIME(CAST(a AS DATETIME(0)), CAST('10:00:00' AS TIME(0))) FROM t1 ORDER BY a; a ADDTIME(CAST(a AS DATETIME(0)), CAST('10:00:00' AS TIME(0))) 1000-01-01 01:00:00.000000 1000-01-01 11:00:00 1000-01-01 01:00:00.000001 1000-01-01 11:00:00 2001-01-01 00:00:00.000000 2001-01-01 10:00:00 2001-01-01 00:00:00.000001 2001-01-01 10:00:00 2001-01-01 01:00:00.000000 2001-01-01 11:00:00 2001-01-01 01:00:00.000001 2001-01-01 11:00:00 SELECT a, ADDTIME(CAST(a AS DATETIME(6)), CAST('10:00:00' AS TIME(0))) FROM t1 ORDER BY a; a ADDTIME(CAST(a AS DATETIME(6)), CAST('10:00:00' AS TIME(0))) 1000-01-01 01:00:00.000000 1000-01-01 11:00:00.000000 1000-01-01 01:00:00.000001 1000-01-01 11:00:00.000001 2001-01-01 00:00:00.000000 2001-01-01 10:00:00.000000 2001-01-01 00:00:00.000001 2001-01-01 10:00:00.000001 2001-01-01 01:00:00.000000 2001-01-01 11:00:00.000000 2001-01-01 01:00:00.000001 2001-01-01 11:00:00.000001 SELECT a, ADDTIME(CAST(a AS DATETIME(0)), CAST('10:00:00' AS TIME(6))) FROM t1 ORDER BY a; a ADDTIME(CAST(a AS DATETIME(0)), CAST('10:00:00' AS TIME(6))) 1000-01-01 01:00:00.000000 1000-01-01 11:00:00.000000 1000-01-01 01:00:00.000001 1000-01-01 11:00:00.000000 2001-01-01 00:00:00.000000 2001-01-01 10:00:00.000000 2001-01-01 00:00:00.000001 2001-01-01 10:00:00.000000 2001-01-01 01:00:00.000000 2001-01-01 11:00:00.000000 2001-01-01 01:00:00.000001 2001-01-01 11:00:00.000000 SELECT ADDTIME(a, a) FROM t1 ORDER BY a; ADDTIME(a, a) NULL NULL NULL NULL NULL NULL CREATE TABLE t2 AS SELECT ADDTIME(a, '00:00:00.000001'), ADDTIME(a, '10:00:00.000001'), ADDTIME(CAST(a AS DATETIME(0)), 100000), ADDTIME(CAST(a AS DATETIME(0)), 100000.1), ADDTIME(CAST(a AS DATETIME(0)), CAST('10:00:00' AS TIME(0))), ADDTIME(CAST(a AS DATETIME(6)), CAST('10:00:00' AS TIME(0))), ADDTIME(CAST(a AS DATETIME(0)), CAST('10:00:00' AS TIME(6))) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `ADDTIME(a, '00:00:00.000001')` datetime(6) DEFAULT NULL, `ADDTIME(a, '10:00:00.000001')` datetime(6) DEFAULT NULL, `ADDTIME(CAST(a AS DATETIME(0)), 100000)` datetime DEFAULT NULL, `ADDTIME(CAST(a AS DATETIME(0)), 100000.1)` datetime(1) DEFAULT NULL, `ADDTIME(CAST(a AS DATETIME(0)), CAST('10:00:00' AS TIME(0)))` datetime DEFAULT NULL, `ADDTIME(CAST(a AS DATETIME(6)), CAST('10:00:00' AS TIME(0)))` datetime(6) DEFAULT NULL, `ADDTIME(CAST(a AS DATETIME(0)), CAST('10:00:00' AS TIME(6)))` datetime(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; SELECT TIMESTAMP(a, '10:00:00') FROM t1; TIMESTAMP(a, '10:00:00') 1000-01-01 11:00:00.000000 1000-01-01 11:00:00.000001 2001-01-01 10:00:00.000000 2001-01-01 10:00:00.000001 2001-01-01 11:00:00.000000 2001-01-01 11:00:00.000001 SELECT TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(0))) FROM t1; TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(0))) 1000-01-01 01:00:00 1000-01-01 01:00:00 2001-01-01 00:00:00 2001-01-01 00:00:00 2001-01-01 01:00:00 2001-01-01 01:00:00 SELECT TIMESTAMP(CAST(a AS DATETIME(6)), CAST('00:00:00' AS TIME(0))) FROM t1; TIMESTAMP(CAST(a AS DATETIME(6)), CAST('00:00:00' AS TIME(0))) 1000-01-01 01:00:00.000000 1000-01-01 01:00:00.000001 2001-01-01 00:00:00.000000 2001-01-01 00:00:00.000001 2001-01-01 01:00:00.000000 2001-01-01 01:00:00.000001 SELECT TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(6))) FROM t1; TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(6))) 1000-01-01 01:00:00.000000 1000-01-01 01:00:00.000000 2001-01-01 00:00:00.000000 2001-01-01 00:00:00.000000 2001-01-01 01:00:00.000000 2001-01-01 01:00:00.000000 CREATE TABLE t2 AS SELECT TIMESTAMP(a, '10:00:00'), TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(0))), TIMESTAMP(CAST(a AS DATETIME(6)), CAST('00:00:00' AS TIME(0))), TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(6))) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `TIMESTAMP(a, '10:00:00')` datetime(6) DEFAULT NULL, `TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(0)))` datetime DEFAULT NULL, `TIMESTAMP(CAST(a AS DATETIME(6)), CAST('00:00:00' AS TIME(0)))` datetime(6) DEFAULT NULL, `TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(6)))` datetime(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; SELECT SUBTIME(a, '00:00:00.000001') FROM t1 ORDER BY a; SUBTIME(a, '00:00:00.000001') 1000-01-01 00:59:59.999999 1000-01-01 01:00:00.000000 2000-12-31 23:59:59.999999 2001-01-01 00:00:00.000000 2001-01-01 00:59:59.999999 2001-01-01 01:00:00.000000 SELECT SUBTIME(a, '10:00:00.000001') FROM t1 ORDER BY a; SUBTIME(a, '10:00:00.000001') 0999-12-31 14:59:59.999999 0999-12-31 15:00:00.000000 2000-12-31 13:59:59.999999 2000-12-31 14:00:00.000000 2000-12-31 14:59:59.999999 2000-12-31 15:00:00.000000 SELECT SUBTIME(a, a) FROM t1 ORDER BY a; SUBTIME(a, a) NULL NULL NULL NULL NULL NULL SELECT DATE_ADD(a, INTERVAL 1 MINUTE) FROM t1 ORDER BY a; DATE_ADD(a, INTERVAL 1 MINUTE) 1000-01-01 01:01:00.000000 1000-01-01 01:01:00.000001 2001-01-01 00:01:00.000000 2001-01-01 00:01:00.000001 2001-01-01 01:01:00.000000 2001-01-01 01:01:00.000001 SELECT DATE_SUB(a, INTERVAL 1 MINUTE) FROM t1 ORDER BY a; DATE_SUB(a, INTERVAL 1 MINUTE) 1000-01-01 00:59:00.000000 1000-01-01 00:59:00.000001 2000-12-31 23:59:00.000000 2000-12-31 23:59:00.000001 2001-01-01 00:59:00.000000 2001-01-01 00:59:00.000001 SELECT a, DATE_ADD(a, INTERVAL 1.1 SECOND) FROM t1 ORDER BY a; a DATE_ADD(a, INTERVAL 1.1 SECOND) 1000-01-01 01:00:00.000000 1000-01-01 01:00:01.100000 1000-01-01 01:00:00.000001 1000-01-01 01:00:01.100001 2001-01-01 00:00:00.000000 2001-01-01 00:00:01.100000 2001-01-01 00:00:00.000001 2001-01-01 00:00:01.100001 2001-01-01 01:00:00.000000 2001-01-01 01:00:01.100000 2001-01-01 01:00:00.000001 2001-01-01 01:00:01.100001 SELECT a, DATE_ADD(a, INTERVAL 1.000009 SECOND) FROM t1 ORDER BY a; a DATE_ADD(a, INTERVAL 1.000009 SECOND) 1000-01-01 01:00:00.000000 1000-01-01 01:00:01.000009 1000-01-01 01:00:00.000001 1000-01-01 01:00:01.000010 2001-01-01 00:00:00.000000 2001-01-01 00:00:01.000009 2001-01-01 00:00:00.000001 2001-01-01 00:00:01.000010 2001-01-01 01:00:00.000000 2001-01-01 01:00:01.000009 2001-01-01 01:00:00.000001 2001-01-01 01:00:01.000010 SELECT a, DATE_SUB(a, INTERVAL 1.1 SECOND) FROM t1 ORDER BY a; a DATE_SUB(a, INTERVAL 1.1 SECOND) 1000-01-01 01:00:00.000000 1000-01-01 00:59:58.900000 1000-01-01 01:00:00.000001 1000-01-01 00:59:58.900001 2001-01-01 00:00:00.000000 2000-12-31 23:59:58.900000 2001-01-01 00:00:00.000001 2000-12-31 23:59:58.900001 2001-01-01 01:00:00.000000 2001-01-01 00:59:58.900000 2001-01-01 01:00:00.000001 2001-01-01 00:59:58.900001 SELECT a, DATE_SUB(a, INTERVAL 1.000009 SECOND) FROM t1 ORDER BY a; a DATE_SUB(a, INTERVAL 1.000009 SECOND) 1000-01-01 01:00:00.000000 1000-01-01 00:59:58.999991 1000-01-01 01:00:00.000001 1000-01-01 00:59:58.999992 2001-01-01 00:00:00.000000 2000-12-31 23:59:58.999991 2001-01-01 00:00:00.000001 2000-12-31 23:59:58.999992 2001-01-01 01:00:00.000000 2001-01-01 00:59:58.999991 2001-01-01 01:00:00.000001 2001-01-01 00:59:58.999992 SELECT a, DATE_ADD(a, INTERVAL -0.1 SECOND) FROM t1 ORDER BY a; a DATE_ADD(a, INTERVAL -0.1 SECOND) 1000-01-01 01:00:00.000000 1000-01-01 00:59:59.900000 1000-01-01 01:00:00.000001 1000-01-01 00:59:59.900001 2001-01-01 00:00:00.000000 2000-12-31 23:59:59.900000 2001-01-01 00:00:00.000001 2000-12-31 23:59:59.900001 2001-01-01 01:00:00.000000 2001-01-01 00:59:59.900000 2001-01-01 01:00:00.000001 2001-01-01 00:59:59.900001 SELECT a, DATE_SUB(a, INTERVAL -0.1 SECOND) FROM t1 ORDER BY a; a DATE_SUB(a, INTERVAL -0.1 SECOND) 1000-01-01 01:00:00.000000 1000-01-01 01:00:00.100000 1000-01-01 01:00:00.000001 1000-01-01 01:00:00.100001 2001-01-01 00:00:00.000000 2001-01-01 00:00:00.100000 2001-01-01 00:00:00.000001 2001-01-01 00:00:00.100001 2001-01-01 01:00:00.000000 2001-01-01 01:00:00.100000 2001-01-01 01:00:00.000001 2001-01-01 01:00:00.100001 SELECT DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 MINUTE) FROM t1 ORDER BY a; DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 MINUTE) 1000-01-01 01:01:00 1000-01-01 01:01:00 2001-01-01 00:01:00 2001-01-01 00:01:00 2001-01-01 01:01:00 2001-01-01 01:01:00 SELECT DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 MINUTE) FROM t1 ORDER BY a; DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 MINUTE) 1000-01-01 00:59:00 1000-01-01 00:59:00 2000-12-31 23:59:00 2000-12-31 23:59:00 2001-01-01 00:59:00 2001-01-01 00:59:00 SELECT DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND) FROM t1 ORDER BY a; DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND) 1000-01-01 01:00:00.000001 1000-01-01 01:00:00.000001 2001-01-01 00:00:00.000001 2001-01-01 00:00:00.000001 2001-01-01 01:00:00.000001 2001-01-01 01:00:00.000001 SELECT DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND) FROM t1 ORDER BY a; DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND) 1000-01-01 00:59:59.999999 1000-01-01 00:59:59.999999 2000-12-31 23:59:59.999999 2000-12-31 23:59:59.999999 2001-01-01 00:59:59.999999 2001-01-01 00:59:59.999999 CREATE TABLE t2 AS SELECT DATE_ADD(a, INTERVAL 1 SECOND), DATE_SUB(a, INTERVAL 1 SECOND), DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 SECOND), DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 SECOND), DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND), DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `DATE_ADD(a, INTERVAL 1 SECOND)` datetime(6) DEFAULT NULL, `DATE_SUB(a, INTERVAL 1 SECOND)` datetime(6) DEFAULT NULL, `DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 SECOND)` datetime DEFAULT NULL, `DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 SECOND)` datetime DEFAULT NULL, `DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND)` datetime(6) DEFAULT NULL, `DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND)` datetime(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT MAX(ADDTIME(a, '00:00:00.1')) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `MAX(ADDTIME(a, '00:00:00.1'))` datetime(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t2; MAX(ADDTIME(a, '00:00:00.1')) 2001-01-01 01:00:00.100001 DROP TABLE t2; DROP TABLE t1; CREATE TABLE t1 AS SELECT DATE_ADD(TIMESTAMP'2001-01-01 00:00:00', INTERVAL 1 SECOND) AS t0s0, DATE_ADD(TIMESTAMP'2001-01-01 00:00:00', INTERVAL 1.1 SECOND) AS t0s1, DATE_ADD(TIMESTAMP'2001-01-01 00:00:00', INTERVAL 1.12 SECOND) AS t0s2, DATE_ADD(TIMESTAMP'2001-01-01 00:00:00', INTERVAL 1.123 SECOND) AS t0s3, DATE_ADD(TIMESTAMP'2001-01-01 00:00:00', INTERVAL 1.1234 SECOND) AS t0s4, DATE_ADD(TIMESTAMP'2001-01-01 00:00:00', INTERVAL 1.12345 SECOND) AS t0s5, DATE_ADD(TIMESTAMP'2001-01-01 00:00:00', INTERVAL 1.123456 SECOND) AS t0s6, DATE_ADD(TIMESTAMP'2001-01-01 00:00:00.1', INTERVAL 1 SECOND) AS t1s0, DATE_ADD(TIMESTAMP'2001-01-01 00:00:00.12', INTERVAL 1 SECOND) AS t2s0, DATE_ADD(TIMESTAMP'2001-01-01 00:00:00.123', INTERVAL 1 SECOND) AS t3s0, DATE_ADD(TIMESTAMP'2001-01-01 00:00:00.1234', INTERVAL 1 SECOND) AS t4s0, DATE_ADD(TIMESTAMP'2001-01-01 00:00:00.12345', INTERVAL 1 SECOND) AS t5s0, DATE_ADD(TIMESTAMP'2001-01-01 00:00:00.123456', INTERVAL 1 SECOND) AS t6s0, DATE_ADD(TIMESTAMP'2001-01-01 00:00:00', INTERVAL 1 MICROSECOND) AS t0ms; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `t0s0` datetime DEFAULT NULL, `t0s1` datetime(1) DEFAULT NULL, `t0s2` datetime(2) DEFAULT NULL, `t0s3` datetime(3) DEFAULT NULL, `t0s4` datetime(4) DEFAULT NULL, `t0s5` datetime(5) DEFAULT NULL, `t0s6` datetime(6) DEFAULT NULL, `t1s0` datetime(1) DEFAULT NULL, `t2s0` datetime(2) DEFAULT NULL, `t3s0` datetime(3) DEFAULT NULL, `t4s0` datetime(4) DEFAULT NULL, `t5s0` datetime(5) DEFAULT NULL, `t6s0` datetime(6) DEFAULT NULL, `t0ms` datetime(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 AS SELECT CONVERT_TZ(TIMESTAMP'2001-01-01 00:00:00', '+00:00', '+01:00') AS d0, CONVERT_TZ(TIMESTAMP'2001-01-01 00:00:00.1', '+00:00', '+01:00') AS d1, CONVERT_TZ(TIMESTAMP'2001-01-01 00:00:00.12', '+00:00', '+01:00') AS d2, CONVERT_TZ(TIMESTAMP'2001-01-01 00:00:00.123', '+00:00', '+01:00') AS d3, CONVERT_TZ(TIMESTAMP'2001-01-01 00:00:00.1234', '+00:00', '+01:00') AS d4, CONVERT_TZ(TIMESTAMP'2001-01-01 00:00:00.12345', '+00:00', '+01:00') AS d5, CONVERT_TZ(TIMESTAMP'2001-01-01 00:00:00.123456', '+00:00', '+01:00') AS d6; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `d0` datetime DEFAULT NULL, `d1` datetime(1) DEFAULT NULL, `d2` datetime(2) DEFAULT NULL, `d3` datetime(3) DEFAULT NULL, `d4` datetime(4) DEFAULT NULL, `d5` datetime(5) DEFAULT NULL, `d6` datetime(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; # # Testing copy from DATETIME to DATETIME(6) and vice versa # SET sql_mode = 'NO_ENGINE_SUBSTITUTION'; Warnings: Warning 3090 Changing sql mode 'NO_AUTO_CREATE_USER' is deprecated. It will be removed in a future release. CREATE TABLE t1 (a DATETIME(6), b DATETIME); INSERT INTO t1 VALUES ('2001-01-01 01:02:03.123456','0000-00-00 00:00:00'); UPDATE t1 SET b=a; SELECT * FROM t1; a b 2001-01-01 01:02:03.123456 2001-01-01 01:02:03 UPDATE t1 SET b='2002-02-02 10:11:12'; UPDATE t1 SET a=b; SELECT * FROM t1; a b 2002-02-02 10:11:12.000000 2002-02-02 10:11:12 DROP TABLE t1; # # Testing ALTER from DATETIME(6) to DATETIME and vice versa # CREATE TABLE t1 (a DATETIME); INSERT INTO t1 VALUES ('2000-01-01 01:02:03'); ALTER TABLE t1 MODIFY a DATETIME(6); SELECT * FROM t1; a 2000-01-01 01:02:03.000000 UPDATE t1 SET a='2000-01-01 01:03:03.456'; SELECT * FROM t1; a 2000-01-01 01:03:03.456000 ALTER TABLE t1 MODIFY a DATETIME; SELECT * FROM t1; a 2000-01-01 01:03:03 DROP TABLE t1; # # Testing ALTER between DATETIME and BIGINT # CREATE TABLE t1 (a DATETIME, b DATETIME(6)); INSERT INTO t1 VALUES ('2000-01-01 11:22:33', '2000-01-01 11:22:33'); ALTER TABLE t1 MODIFY a BIGINT, MODIFY b BIGINT; SELECT * FROM t1; a b 20000101112233 20000101112233 UPDATE t1 SET a=20000101112233, b=20000101112233; ALTER TABLE t1 MODIFY a DATETIME, MODIFY b DATETIME(6); SELECT * FROM t1; a b 2000-01-01 11:22:33 2000-01-01 11:22:33.000000 DROP TABLE t1; # # Testing ALTER between DATETIME(6) and DOUBLE # CREATE TABLE t1 (a DATETIME, b DATETIME(6)); INSERT INTO t1 VALUES ('0001-00-00 11:22:33', '0001-00-00 11:22:33.1234'); ALTER TABLE t1 MODIFY a DOUBLE, MODIFY b DOUBLE; SELECT * FROM t1; a b 10000112233 10000112233.1234 UPDATE t1 SET a=20010101101112, b=20010101101112.1; ALTER TABLE t1 MODIFY a DATETIME, MODIFY b DATETIME(6); SELECT * FROM t1; a b 2001-01-01 10:11:12 2001-01-01 10:11:12.100000 DROP TABLE t1; # # Testing ALTER between DATETIME(6) and DECIMAL # CREATE TABLE t1 (a DATETIME, b DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 11:22:33', '2001-01-01 11:22:33.1234'); ALTER TABLE t1 MODIFY a DECIMAL(30,6), MODIFY b DECIMAL(30,6); SELECT * FROM t1; a b 20010101112233.000000 20010101112233.123400 UPDATE t1 SET a=20010101112233, b=20010101112233.1234; ALTER TABLE t1 MODIFY a DATETIME, MODIFY b DATETIME(6); SELECT * FROM t1; a b 2001-01-01 11:22:33 2001-01-01 11:22:33.123400 DROP TABLE t1; # # Testing ALTER from DATETIME to various other temporal types # CREATE TABLE t1 (a DATETIME(6), b DATETIME(6), c DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.1', '2001-01-01 10:10:10.1', '2001-01-01 10:10:10.1'); ALTER TABLE t1 MODIFY a TIME(6), MODIFY b TIMESTAMP(6), MODIFY c DATE; Warnings: Note 1265 Data truncated for column 'c' at row 1 SELECT * FROM t1; a b c 10:10:10.100000 2001-01-01 10:10:10.100000 2001-01-01 DROP TABLE t1; # # Testing EXPLAIN EXTENDED SELECT for CAST(DATETIME(N)) # EXPLAIN EXTENDED SELECT CAST('10:10:10' AS DATETIME); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select cast('10:10:10' as datetime) AS `CAST('10:10:10' AS DATETIME)` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS DATETIME(0)); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select cast('10:10:10' as datetime) AS `CAST('10:10:10' AS DATETIME(0))` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS DATETIME(1)); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select cast('10:10:10' as datetime(1)) AS `CAST('10:10:10' AS DATETIME(1))` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS DATETIME(2)); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select cast('10:10:10' as datetime(2)) AS `CAST('10:10:10' AS DATETIME(2))` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS DATETIME(3)); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select cast('10:10:10' as datetime(3)) AS `CAST('10:10:10' AS DATETIME(3))` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS DATETIME(4)); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select cast('10:10:10' as datetime(4)) AS `CAST('10:10:10' AS DATETIME(4))` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS DATETIME(5)); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select cast('10:10:10' as datetime(5)) AS `CAST('10:10:10' AS DATETIME(5))` EXPLAIN EXTENDED SELECT CAST('10:10:10' AS DATETIME(6)); id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: Warning 1681 'EXTENDED' is deprecated and will be removed in a future release. Note 1003 /* select#1 */ select cast('10:10:10' as datetime(6)) AS `CAST('10:10:10' AS DATETIME(6))` # # Testing CAST with bad FSPs # SELECT CAST(1 AS DATETIME(-1)); 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 '-1))' at line 1 SELECT CAST(1 AS DATETIME(7)); ERROR 42000: Too-big precision 7 specified for 'CAST'. Maximum is 6. SELECT CAST(1 AS DATETIME(31)); ERROR 42000: Too-big precision 31 specified for 'CAST'. Maximum is 6. # # Testing conversion from DATETIME(6) to INT # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 10:10:58.499'); INSERT INTO t1 VALUES ('2001-01-01 10:10:58.999'); INSERT INTO t1 VALUES ('2001-01-01 10:10:59.499'); INSERT INTO t1 VALUES ('2001-01-01 10:10:59.999'); INSERT INTO t1 VALUES ('2001-12-31 23:59:58.499'); INSERT INTO t1 VALUES ('2001-12-31 23:59:58.999'); INSERT INTO t1 VALUES ('2001-12-31 23:59:59.499'); INSERT INTO t1 VALUES ('2001-12-31 23:59:59.999'); ALTER TABLE t1 ADD b BIGINT, ADD c DATETIME(6); UPDATE t1 SET b=a, c=a; ALTER TABLE t1 MODIFY c BIGINT; SELECT a, CAST(a AS SIGNED), b, c FROM t1; a CAST(a AS SIGNED) b c 2001-01-01 10:10:58.499000 20010101101058 20010101101058 20010101101058 2001-01-01 10:10:58.999000 20010101101059 20010101101059 20010101101059 2001-01-01 10:10:59.499000 20010101101059 20010101101059 20010101101059 2001-01-01 10:10:59.999000 20010101101100 20010101101100 20010101101100 2001-12-31 23:59:58.499000 20011231235958 20011231235958 20011231235958 2001-12-31 23:59:58.999000 20011231235959 20011231235959 20011231235959 2001-12-31 23:59:59.499000 20011231235959 20011231235959 20011231235959 2001-12-31 23:59:59.999000 20020101000000 20020101000000 20020101000000 DROP TABLE t1; # # Testing INT value and CAST of DATETIME(6) to various other types # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.999'); INSERT INTO t1 VALUES ('2001-12-31 23:59:58.499'); INSERT INTO t1 VALUES ('2001-12-31 23:59:58.999'); INSERT INTO t1 VALUES ('2001-12-31 23:59:59.499'); INSERT INTO t1 VALUES ('2001-12-31 23:59:59.999'); SELECT a << 0 FROM t1; a << 0 20010101112233 20010101112234 20011231235958 20011231235959 20011231235959 20020101000000 SELECT CAST(a AS SIGNED) FROM t1; CAST(a AS SIGNED) 20010101112233 20010101112234 20011231235958 20011231235959 20011231235959 20020101000000 SELECT CAST(a AS UNSIGNED) FROM t1; CAST(a AS UNSIGNED) 20010101112233 20010101112234 20011231235958 20011231235959 20011231235959 20020101000000 SELECT CAST(a AS DECIMAL(30,6)) FROM t1; CAST(a AS DECIMAL(30,6)) 20010101112233.123000 20010101112233.999000 20011231235958.499000 20011231235958.999000 20011231235959.499000 20011231235959.999000 SELECT CAST(a AS DECIMAL(30,3)) FROM t1; CAST(a AS DECIMAL(30,3)) 20010101112233.123 20010101112233.999 20011231235958.499 20011231235958.999 20011231235959.499 20011231235959.999 SELECT CAST(a AS CHAR) FROM t1; CAST(a AS CHAR) 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.999000 2001-12-31 23:59:58.499000 2001-12-31 23:59:58.999000 2001-12-31 23:59:59.499000 2001-12-31 23:59:59.999000 SELECT CAST(a AS CHAR(6)) FROM t1; CAST(a AS CHAR(6)) 2001-0 2001-0 2001-1 2001-1 2001-1 2001-1 Warnings: Warning 1292 Truncated incorrect CHAR(6) value: '2001-01-01 11:22:33.123000' Warning 1292 Truncated incorrect CHAR(6) value: '2001-01-01 11:22:33.999000' Warning 1292 Truncated incorrect CHAR(6) value: '2001-12-31 23:59:58.499000' Warning 1292 Truncated incorrect CHAR(6) value: '2001-12-31 23:59:58.999000' Warning 1292 Truncated incorrect CHAR(6) value: '2001-12-31 23:59:59.499000' Warning 1292 Truncated incorrect CHAR(6) value: '2001-12-31 23:59:59.999000' CREATE TABLE t2 AS SELECT CAST(a AS CHAR) AS a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(26) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT a, LENGTH(a) FROM t2; a LENGTH(a) 2001-01-01 11:22:33.123000 26 2001-01-01 11:22:33.999000 26 2001-12-31 23:59:58.499000 26 2001-12-31 23:59:58.999000 26 2001-12-31 23:59:59.499000 26 2001-12-31 23:59:59.999000 26 DROP TABLE t2; DROP TABLE t1; # # Testing explicit CAST from TIME to DATETIME # SET @@timestamp=UNIX_TIMESTAMP('2001-01-01 00:00:00'); CREATE TABLE t1 (a TIME, b TIME(6), c INT, d VARCHAR(32), e INT); INSERT INTO t1 VALUES ('15:00:00', '15:00:00.123456', 150000, '15:00:00', 15*3600); INSERT INTO t1 VALUES ('45:00:00', '45:00:00.123456', 450000, '45:00:00', 45*3600); INSERT INTO t1 VALUES ('-15:00:00', '-15:00:00.123456', -150000, '-15:00:00', -15*3600); INSERT INTO t1 VALUES ('-45:00:00', '-45:00:00.123456', -450000, '-45:00:00', -45*3600); SELECT a, CAST(a AS DATETIME), CAST(b AS DATETIME), CAST(c AS DATETIME), CAST(d AS DATETIME), CAST(SEC_TO_TIME(e) AS DATETIME), CAST(CAST(a AS TIME) AS DATETIME) FROM t1;; a 15:00:00 CAST(a AS DATETIME) 2001-01-01 15:00:00 CAST(b AS DATETIME) 2001-01-01 15:00:00 CAST(c AS DATETIME) 2015-00-00 00:00:00 CAST(d AS DATETIME) 2015-00-00 00:00:00 CAST(SEC_TO_TIME(e) AS DATETIME) 2001-01-01 15:00:00 CAST(CAST(a AS TIME) AS DATETIME) 2001-01-01 15:00:00 a 45:00:00 CAST(a AS DATETIME) 2001-01-02 21:00:00 CAST(b AS DATETIME) 2001-01-02 21:00:00 CAST(c AS DATETIME) 2045-00-00 00:00:00 CAST(d AS DATETIME) 2045-00-00 00:00:00 CAST(SEC_TO_TIME(e) AS DATETIME) 2001-01-02 21:00:00 CAST(CAST(a AS TIME) AS DATETIME) 2001-01-02 21:00:00 a -15:00:00 CAST(a AS DATETIME) 2000-12-31 09:00:00 CAST(b AS DATETIME) 2000-12-31 09:00:00 CAST(c AS DATETIME) NULL CAST(d AS DATETIME) NULL CAST(SEC_TO_TIME(e) AS DATETIME) 2000-12-31 09:00:00 CAST(CAST(a AS TIME) AS DATETIME) 2000-12-31 09:00:00 a -45:00:00 CAST(a AS DATETIME) 2000-12-30 03:00:00 CAST(b AS DATETIME) 2000-12-30 03:00:00 CAST(c AS DATETIME) NULL CAST(d AS DATETIME) NULL CAST(SEC_TO_TIME(e) AS DATETIME) 2000-12-30 03:00:00 CAST(CAST(a AS TIME) AS DATETIME) 2000-12-30 03:00:00 Warnings: Level Warning Code 1292 Message Incorrect datetime value: '-150000' Level Warning Code 1292 Message Incorrect datetime value: '-15:00:00' Level Warning Code 1292 Message Incorrect datetime value: '-450000' Level Warning Code 1292 Message Incorrect datetime value: '-45:00:00' SELECT a, CAST(a AS DATETIME(6)), CAST(b AS DATETIME(6)), CAST(c AS DATETIME(6)), CAST(d AS DATETIME(6)), CAST(SEC_TO_TIME(e) AS DATETIME(6)), CAST(CAST(a AS TIME) AS DATETIME(6)) FROM t1;; a 15:00:00 CAST(a AS DATETIME(6)) 2001-01-01 15:00:00.000000 CAST(b AS DATETIME(6)) 2001-01-01 15:00:00.123456 CAST(c AS DATETIME(6)) 2015-00-00 00:00:00.000000 CAST(d AS DATETIME(6)) 2015-00-00 00:00:00.000000 CAST(SEC_TO_TIME(e) AS DATETIME(6)) 2001-01-01 15:00:00.000000 CAST(CAST(a AS TIME) AS DATETIME(6)) 2001-01-01 15:00:00.000000 a 45:00:00 CAST(a AS DATETIME(6)) 2001-01-02 21:00:00.000000 CAST(b AS DATETIME(6)) 2001-01-02 21:00:00.123456 CAST(c AS DATETIME(6)) 2045-00-00 00:00:00.000000 CAST(d AS DATETIME(6)) 2045-00-00 00:00:00.000000 CAST(SEC_TO_TIME(e) AS DATETIME(6)) 2001-01-02 21:00:00.000000 CAST(CAST(a AS TIME) AS DATETIME(6)) 2001-01-02 21:00:00.000000 a -15:00:00 CAST(a AS DATETIME(6)) 2000-12-31 09:00:00.000000 CAST(b AS DATETIME(6)) 2000-12-31 08:59:59.876544 CAST(c AS DATETIME(6)) NULL CAST(d AS DATETIME(6)) NULL CAST(SEC_TO_TIME(e) AS DATETIME(6)) 2000-12-31 09:00:00.000000 CAST(CAST(a AS TIME) AS DATETIME(6)) 2000-12-31 09:00:00.000000 a -45:00:00 CAST(a AS DATETIME(6)) 2000-12-30 03:00:00.000000 CAST(b AS DATETIME(6)) 2000-12-30 02:59:59.876544 CAST(c AS DATETIME(6)) NULL CAST(d AS DATETIME(6)) NULL CAST(SEC_TO_TIME(e) AS DATETIME(6)) 2000-12-30 03:00:00.000000 CAST(CAST(a AS TIME) AS DATETIME(6)) 2000-12-30 03:00:00.000000 Warnings: Level Warning Code 1292 Message Incorrect datetime value: '-150000' Level Warning Code 1292 Message Incorrect datetime value: '-15:00:00' Level Warning Code 1292 Message Incorrect datetime value: '-450000' Level Warning Code 1292 Message Incorrect datetime value: '-45:00:00' DROP TABLE t1; SET @@timestamp=default; # # Testing comparison between TIME and DATETIME # This tests Field_time[f]::val_date_temporal() # SET @@timestamp=UNIX_TIMESTAMP('2001-01-01 10:20:30.123'); CREATE TABLE t1 (a TIME, b DATETIME, a6 TIME(6), b6 DATETIME(6)); INSERT INTO t1 VALUES (current_time, current_timestamp, current_time(6), current_timestamp(6)); SELECT a, b FROM t1 WHERE a=b; a b 10:20:30 2001-01-01 10:20:30 SELECT a6, b6 FROM t1 WHERE a6=b6; a6 b6 10:20:30.123000 2001-01-01 10:20:30.123000 # In this query both expressions make DATETIME data type SELECT LEAST(a,b), LEAST(b,a) FROM t1; LEAST(a,b) LEAST(b,a) 2001-01-01 10:20:30 2001-01-01 10:20:30 SELECT CONCAT(LEAST(a,b)), CONCAT(LEAST(b,a)) FROM t1; CONCAT(LEAST(a,b)) CONCAT(LEAST(b,a)) 2001-01-01 10:20:30 2001-01-01 10:20:30 # In this query all expressions make VARCHAR data type # So the result format depends on which value wins, with the first value having higher precedence: SELECT LEAST(a,b,'2001-01-02'), LEAST(b,a,'2001-01-02'), LEAST(a,b,'2000-01-01') FROM t1; LEAST(a,b,'2001-01-02') LEAST(b,a,'2001-01-02') LEAST(a,b,'2000-01-01') 10:20:30 2001-01-01 10:20:30 2000-01-01 # More tests with LEAST: SELECT a, b FROM t1 WHERE a=LEAST(a,a); a b 10:20:30 2001-01-01 10:20:30 SELECT a, b FROM t1 WHERE a=LEAST(a,b); a b 10:20:30 2001-01-01 10:20:30 DROP TABLE t1; SET @@timestamp=DEFAULT; # # Comparison between DATETIME column and constant TIME epxression # CREATE TABLE t1 (a DATETIME(6)); SET @@timestamp=UNIX_TIMESTAMP('2010-01-01 10:50:50.123'); SELECT NOW(6); NOW(6) 2010-01-01 10:50:50.123000 INSERT INTO t1 VALUES (CURRENT_TIMESTAMP(6)), ('2010-01-01 00:00:00'); SELECT * FROM t1 WHERE a=TIME'10:50:50.123'; a 2010-01-01 10:50:50.123000 SELECT * FROM t1 WHERE a=CURRENT_TIME(6); a 2010-01-01 10:50:50.123000 SELECT * FROM t1 WHERE a=CAST('10:50:50.123' AS TIME(6)); a 2010-01-01 10:50:50.123000 SELECT * FROM t1 WHERE a=MAKETIME(10,50,50.123); a 2010-01-01 10:50:50.123000 SELECT * FROM t1 WHERE a=SEC_TO_TIME(39050.123); a 2010-01-01 10:50:50.123000 SELECT * FROM t1 WHERE TIME'10:50:50.123'=a; a 2010-01-01 10:50:50.123000 SELECT * FROM t1 WHERE CURRENT_TIME(6)=a; a 2010-01-01 10:50:50.123000 SELECT * FROM t1 WHERE CAST('10:50:50.123' AS TIME(6))=a; a 2010-01-01 10:50:50.123000 SELECT * FROM t1 WHERE MAKETIME(10,50,50.123)=a; a 2010-01-01 10:50:50.123000 SELECT * FROM t1 WHERE SEC_TO_TIME(39050.123)=a; a 2010-01-01 10:50:50.123000 DROP TABLE t1; SET @@timestamp=DEFAULT; # # BETWEEN for combinations of DATETIME and TIME # SET @@timestamp=UNIX_TIMESTAMP('2010-01-01 10:50:50.123'); CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2010-01-01 10:50:50.100'), ('2010-01-01 10:50:50.123'), ('2010-01-01 10:50:50.200'); SELECT * FROM t1 WHERE a BETWEEN TIME'10:50:50.120' AND TIME'10:50:50.123'; a 2010-01-01 10:50:50.123000 SELECT * FROM t1 WHERE a BETWEEN TIMESTAMP'2010-01-01 10:50:50.120' AND TIME'10:50:50.123'; a 2010-01-01 10:50:50.123000 SELECT * FROM t1 WHERE a BETWEEN TIME'10:50:50.120' AND TIMESTAMP'2010-01-01 10:50:50.123'; a 2010-01-01 10:50:50.123000 ALTER TABLE t1 MODIFY a TIME(6); SELECT * FROM t1; a 10:50:50.100000 10:50:50.123000 10:50:50.200000 SELECT * FROM t1 WHERE a BETWEEN TIME'10:50:50.120' AND TIME'10:50:50.123'; a 10:50:50.123000 SELECT * FROM t1 WHERE a BETWEEN TIMESTAMP'2010-01-01 10:50:50.120' AND TIME'10:50:50.123'; a 10:50:50.123000 SELECT * FROM t1 WHERE a BETWEEN TIME'10:50:50.120' AND TIMESTAMP'2010-01-01 10:50:50.123'; a 10:50:50.123000 DROP TABLE t1; SET @@timestamp=DEFAULT; CREATE TABLE t1 (c INT, d VARCHAR(32)); INSERT INTO t1 VALUES (156060, '15:60:60'); SELECT CAST(c AS DATETIME), CAST(d AS DATETIME) FROM t1; CAST(c AS DATETIME) CAST(d AS DATETIME) NULL NULL Warnings: Warning 1292 Incorrect datetime value: '156060' Warning 1292 Incorrect datetime value: '15:60:60' SELECT CAST(c AS DATETIME(6)), CAST(d AS DATETIME(6)) FROM t1; CAST(c AS DATETIME(6)) CAST(d AS DATETIME(6)) NULL NULL Warnings: Warning 1292 Incorrect datetime value: '156060' Warning 1292 Incorrect datetime value: '15:60:60' DROP TABLE t1; # # Testing function TIMESTAMP(expr) # CREATE TABLE t1 AS SELECT TIMESTAMP(20010101101010), TIMESTAMP(20010101101010.1), TIMESTAMP(20010101101010.12), TIMESTAMP(20010101101010.123), TIMESTAMP(20010101101010.1234), TIMESTAMP(20010101101010.12345), TIMESTAMP(20010101101010.123456), TIMESTAMP('2001-01-01 00:01:01'), TIMESTAMP('2001-01-01 00:01:01.1'), TIMESTAMP('2001-01-01 00:01:01.12'), TIMESTAMP('2001-01-01 00:01:01.123'), TIMESTAMP('2001-01-01 00:01:01.1234'), TIMESTAMP('2001-01-01 00:01:01.12345'), TIMESTAMP('2001-01-01 00:01:01.123456'), TIMESTAMP(CONCAT('2001-01-01 00:01:01','')), TIMESTAMP(CONCAT('2001-01-01 00:01:01','.1')), TIMESTAMP(CONCAT('2001-01-01 00:01:01','.12')), TIMESTAMP(CONCAT('2001-01-01 00:01:01','.123')), TIMESTAMP(CONCAT('2001-01-01 00:01:01','.1234')), TIMESTAMP(CONCAT('2001-01-01 00:01:01','.12345')), TIMESTAMP(CONCAT('2001-01-01 00:01:01','.123456')), TIMESTAMP(TIME'00:01:01'), TIMESTAMP(TIME'00:01:01.1'), TIMESTAMP(TIME'00:01:01.12'), TIMESTAMP(TIME'00:01:01.123'), TIMESTAMP(TIME'00:01:01.1234'), TIMESTAMP(TIME'00:01:01.12345'), TIMESTAMP(TIME'00:01:01.123456'), TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00')), TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00.1')), TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00.12')), TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00.123')), TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00.1234')), TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00.12345')), TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00.123456')); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `TIMESTAMP(20010101101010)` datetime DEFAULT NULL, `TIMESTAMP(20010101101010.1)` datetime(1) DEFAULT NULL, `TIMESTAMP(20010101101010.12)` datetime(2) DEFAULT NULL, `TIMESTAMP(20010101101010.123)` datetime(3) DEFAULT NULL, `TIMESTAMP(20010101101010.1234)` datetime(4) DEFAULT NULL, `TIMESTAMP(20010101101010.12345)` datetime(5) DEFAULT NULL, `TIMESTAMP(20010101101010.123456)` datetime(6) DEFAULT NULL, `TIMESTAMP('2001-01-01 00:01:01')` datetime DEFAULT NULL, `TIMESTAMP('2001-01-01 00:01:01.1')` datetime(1) DEFAULT NULL, `TIMESTAMP('2001-01-01 00:01:01.12')` datetime(2) DEFAULT NULL, `TIMESTAMP('2001-01-01 00:01:01.123')` datetime(3) DEFAULT NULL, `TIMESTAMP('2001-01-01 00:01:01.1234')` datetime(4) DEFAULT NULL, `TIMESTAMP('2001-01-01 00:01:01.12345')` datetime(5) DEFAULT NULL, `TIMESTAMP('2001-01-01 00:01:01.123456')` datetime(6) DEFAULT NULL, `TIMESTAMP(CONCAT('2001-01-01 00:01:01',''))` datetime DEFAULT NULL, `TIMESTAMP(CONCAT('2001-01-01 00:01:01','.1'))` datetime(1) DEFAULT NULL, `TIMESTAMP(CONCAT('2001-01-01 00:01:01','.12'))` datetime(2) DEFAULT NULL, `TIMESTAMP(CONCAT('2001-01-01 00:01:01','.123'))` datetime(3) DEFAULT NULL, `TIMESTAMP(CONCAT('2001-01-01 00:01:01','.1234'))` datetime(4) DEFAULT NULL, `TIMESTAMP(CONCAT('2001-01-01 00:01:01','.12345'))` datetime(5) DEFAULT NULL, `TIMESTAMP(CONCAT('2001-01-01 00:01:01','.123456'))` datetime(6) DEFAULT NULL, `TIMESTAMP(TIME'00:01:01')` datetime DEFAULT NULL, `TIMESTAMP(TIME'00:01:01.1')` datetime(1) DEFAULT NULL, `TIMESTAMP(TIME'00:01:01.12')` datetime(2) DEFAULT NULL, `TIMESTAMP(TIME'00:01:01.123')` datetime(3) DEFAULT NULL, `TIMESTAMP(TIME'00:01:01.1234')` datetime(4) DEFAULT NULL, `TIMESTAMP(TIME'00:01:01.12345')` datetime(5) DEFAULT NULL, `TIMESTAMP(TIME'00:01:01.123456')` datetime(6) DEFAULT NULL, `TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00'))` datetime DEFAULT NULL, `TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00.1'))` datetime(1) DEFAULT NULL, `TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00.12'))` datetime(2) DEFAULT NULL, `TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00.123'))` datetime(3) DEFAULT NULL, `TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00.1234'))` datetime(4) DEFAULT NULL, `TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00.12345'))` datetime(5) DEFAULT NULL, `TIMESTAMP(TIMESTAMP('2001-01-01 00:00:00.123456'))` datetime(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; # # Testing DEFAULT value # CREATE TABLE t1 (a DATETIME(6) NOT NULL DEFAULT '2000-01-01 11:22:33.123456'); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` datetime(6) NOT NULL DEFAULT '2000-01-01 11:22:33.123456' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; # # Mixing varios DATETIME(N) in CASE # CREATE TABLE t1 ( t0 DATETIME, t1 DATETIME(1), t3 DATETIME(3),t4 DATETIME(4), t6 DATETIME(6)); CREATE TABLE t2 AS SELECT CASE WHEN 1 THEN t0 ELSE t1 END, CASE WHEN 1 THEN t0 ELSE t3 END, CASE WHEN 1 THEN t0 ELSE t4 END, CASE WHEN 1 THEN t0 ELSE t6 END, CASE WHEN 1 THEN t1 ELSE t0 END, CASE WHEN 1 THEN t1 ELSE t3 END, CASE WHEN 1 THEN t1 ELSE t4 END, CASE WHEN 1 THEN t1 ELSE t6 END, CASE WHEN 1 THEN t3 ELSE t0 END, CASE WHEN 1 THEN t3 ELSE t1 END, CASE WHEN 1 THEN t3 ELSE t4 END, CASE WHEN 1 THEN t3 ELSE t6 END, CASE WHEN 1 THEN t4 ELSE t0 END, CASE WHEN 1 THEN t4 ELSE t1 END, CASE WHEN 1 THEN t4 ELSE t3 END, CASE WHEN 1 THEN t4 ELSE t6 END, CASE WHEN 1 THEN t6 ELSE t0 END, CASE WHEN 1 THEN t6 ELSE t1 END, CASE WHEN 1 THEN t6 ELSE t3 END, CASE WHEN 1 THEN t6 ELSE t4 END FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CASE WHEN 1 THEN t0 ELSE t1 END` datetime(1) DEFAULT NULL, `CASE WHEN 1 THEN t0 ELSE t3 END` datetime(3) DEFAULT NULL, `CASE WHEN 1 THEN t0 ELSE t4 END` datetime(4) DEFAULT NULL, `CASE WHEN 1 THEN t0 ELSE t6 END` datetime(6) DEFAULT NULL, `CASE WHEN 1 THEN t1 ELSE t0 END` datetime(1) DEFAULT NULL, `CASE WHEN 1 THEN t1 ELSE t3 END` datetime(3) DEFAULT NULL, `CASE WHEN 1 THEN t1 ELSE t4 END` datetime(4) DEFAULT NULL, `CASE WHEN 1 THEN t1 ELSE t6 END` datetime(6) DEFAULT NULL, `CASE WHEN 1 THEN t3 ELSE t0 END` datetime(3) DEFAULT NULL, `CASE WHEN 1 THEN t3 ELSE t1 END` datetime(3) DEFAULT NULL, `CASE WHEN 1 THEN t3 ELSE t4 END` datetime(4) DEFAULT NULL, `CASE WHEN 1 THEN t3 ELSE t6 END` datetime(6) DEFAULT NULL, `CASE WHEN 1 THEN t4 ELSE t0 END` datetime(4) DEFAULT NULL, `CASE WHEN 1 THEN t4 ELSE t1 END` datetime(4) DEFAULT NULL, `CASE WHEN 1 THEN t4 ELSE t3 END` datetime(4) DEFAULT NULL, `CASE WHEN 1 THEN t4 ELSE t6 END` datetime(6) DEFAULT NULL, `CASE WHEN 1 THEN t6 ELSE t0 END` datetime(6) DEFAULT NULL, `CASE WHEN 1 THEN t6 ELSE t1 END` datetime(6) DEFAULT NULL, `CASE WHEN 1 THEN t6 ELSE t3 END` datetime(6) DEFAULT NULL, `CASE WHEN 1 THEN t6 ELSE t4 END` datetime(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # # Mixing various DATETTIME(N) in COALESCE # CREATE TABLE t1 ( a DATETIME(6), b DATETIME(6), c DATETIME, d DATETIME, e DATETIME(3), f DATETIME(4)); CREATE TABLE t2 AS SELECT COALESCE(a, b), COALESCE(c, b), COALESCE(c, d), COALESCE(e, f), COALESCE(c, e), COALESCE(c, f) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `COALESCE(a, b)` datetime(6) DEFAULT NULL, `COALESCE(c, b)` datetime(6) DEFAULT NULL, `COALESCE(c, d)` datetime DEFAULT NULL, `COALESCE(e, f)` datetime(4) DEFAULT NULL, `COALESCE(c, e)` datetime(3) DEFAULT NULL, `COALESCE(c, f)` datetime(4) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT CONCAT(COALESCE(a, b)), CONCAT(COALESCE(c, b)), CONCAT(COALESCE(c, d)), CONCAT(COALESCE(e, f)), CONCAT(COALESCE(c, e)), CONCAT(COALESCE(c, f)) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CONCAT(COALESCE(a, b))` varchar(26) DEFAULT NULL, `CONCAT(COALESCE(c, b))` varchar(26) DEFAULT NULL, `CONCAT(COALESCE(c, d))` varchar(19) DEFAULT NULL, `CONCAT(COALESCE(e, f))` varchar(24) DEFAULT NULL, `CONCAT(COALESCE(c, e))` varchar(23) DEFAULT NULL, `CONCAT(COALESCE(c, f))` varchar(24) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # # Mixing DATETIME(6) with another DATETIME(6) in IF # CREATE TABLE t1 (a DATETIME(6), b DATETIME(6)); CREATE TABLE t2 AS SELECT IF(1, a, b) AS a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` datetime(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # # Mixing DATETIME(N) with DATETIME(M) in IF # CREATE TABLE t1 (a DATETIME(1), b DATETIME(2)); CREATE TABLE t2 AS SELECT IF(1, a, b), IF(1, b, a) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `IF(1, a, b)` datetime(2) DEFAULT NULL, `IF(1, b, a)` datetime(2) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # # Mixing DATETIME(6) NOT NULL with another DATETIME(6) NOT NULL # CREATE TABLE t1 (a DATETIME(6) NOT NULL, b DATETIME(6) NOT NULL); CREATE TABLE t2 AS SELECT IF(1, a, b) AS a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` datetime(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # # UNION between DATETIME(6) and DATETIME(6) # CREATE TABLE t1 (a DATETIME(6) NOT NULL, b DATETIME(6) NOT NULL); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123456', '2001-01-01 00:11:22.123456'); CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT b FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` datetime(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t2 ORDER BY a; a 2001-01-01 00:11:22.123456 2001-01-01 11:22:33.123456 DROP TABLE t2; DROP TABLE t1; # # UNION between DATETIME(n) # CREATE TABLE t1 (t0 DATETIME, t1 DATETIME(1), t3 DATETIME(3), t4 DATETIME(4)); CREATE TABLE t2 AS SELECT t0 FROM t1 UNION SELECT t1 FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `t0` datetime(1) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT t1 FROM t1 UNION SELECT t3 FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `t1` datetime(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT t3 FROM t1 UNION SELECT t4 FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `t3` datetime(4) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # # UNION between DATETIME(6) and DATETIME / DATE # CREATE TABLE t1 (a DATETIME NOT NULL, b DATETIME(6) NOT NULL, c DATE NOT NULL); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123456', '2001-01-01 00:11:22.123456','2001-01-01'); CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT b FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` datetime(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t2 ORDER BY a; a 2001-01-01 00:11:22.123456 2001-01-01 11:22:33.000000 DROP TABLE t2; CREATE TABLE t2 AS SELECT b FROM t1 UNION SELECT a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `b` datetime(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t2 ORDER BY b; b 2001-01-01 00:11:22.123456 2001-01-01 11:22:33.000000 DROP TABLE t2; CREATE TABLE t2 AS SELECT b FROM t1 UNION SELECT c FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra b datetime(6) NO 0000-00-00 00:00:00.000000 DROP TABLE t2; CREATE TABLE t2 AS SELECT c FROM t1 UNION SELECT b FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra c datetime(6) NO 0000-00-00 00:00:00.000000 SELECT * FROM t2 ORDER BY c; c 2001-01-01 00:00:00.000000 2001-01-01 00:11:22.123456 DROP TABLE t2; DROP TABLE t1; # # UNION between DATETIME(6) and various other types # CREATE TABLE t1 (a DATETIME(6), b BIGINT, c DOUBLE, d DECIMAL(20,6), e VARCHAR(20)); CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT b FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(26) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT c FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(26) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT d FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(26) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT e FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(26) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # # Testing DATETIME(6) field in combination with DATETIME type functions # CREATE TABLE t1 (a DATETIME(6), b TIME(6)); INSERT INTO t1 VALUES ('2001-01-01 10:00:00.123456', '10:00:00.123456'); INSERT INTO t1 VALUES ('2001-01-01 10:00:00', '10:00:00'); SELECT * FROM t1 WHERE a=TIMESTAMP('2001-01-01', b); a b 2001-01-01 10:00:00.123456 10:00:00.123456 2001-01-01 10:00:00.000000 10:00:00.000000 SELECT * FROM t1 WHERE a=ADDTIME('2001-01-01 00:00:00', '10:00:00'); a b 2001-01-01 10:00:00.000000 10:00:00.000000 SELECT * FROM t1 WHERE a=ADDTIME('2001-01-01 00:00:00', '10:00:00.123456'); a b 2001-01-01 10:00:00.123456 10:00:00.123456 DELETE FROM t1; INSERT INTO t1 VALUES (CURRENT_TIMESTAMP, CURRENT_TIME); SELECT COUNT(*) FROM t1 WHERE a <= CURRENT_TIMESTAMP; COUNT(*) 1 SELECT COUNT(*) FROM t1 WHERE a >= SUBTIME(CURRENT_TIMESTAMP, '10:00:00'); COUNT(*) 1 DROP TABLE t1; # # ORDER BY DATETIME(6) function # CREATE TABLE t1(a DATETIME(6)); INSERT INTO t1 (a) VALUES ('9999-12-31 00:00:00.000002'); INSERT INTO t1 (a) VALUES ('9999-12-31 00:00:00.000001'); INSERT INTO t1 (a) VALUES ('9999-12-31 00:00:00.000000'); INSERT INTO t1 (a) VALUES ('9999-12-31 23:59:59.000001'); INSERT INTO t1 (a) VALUES ('2001-01-01 00:00:00.000003'); INSERT INTO t1 (a) VALUES ('2001-01-01 00:00:00.000000'); INSERT INTO t1 (a) VALUES ('2001-01-01 00:00:00.000001'); INSERT INTO t1 (a) VALUES ('0000-00-00 00:00:00.000000'); SELECT * FROM t1 ORDER BY ADDTIME(a, '00:00:00'); a 0000-00-00 00:00:00.000000 2001-01-01 00:00:00.000000 2001-01-01 00:00:00.000001 2001-01-01 00:00:00.000003 9999-12-31 00:00:00.000000 9999-12-31 00:00:00.000001 9999-12-31 00:00:00.000002 9999-12-31 23:59:59.000001 SELECT * FROM t1 ORDER BY ADDTIME(a, '00:00:00') DESC; a 9999-12-31 23:59:59.000001 9999-12-31 00:00:00.000002 9999-12-31 00:00:00.000001 9999-12-31 00:00:00.000000 2001-01-01 00:00:00.000003 2001-01-01 00:00:00.000001 2001-01-01 00:00:00.000000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing partitions # CREATE TABLE t1 (a DATETIME(6)) PARTITION BY KEY(a) PARTITIONS 4; Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000000'); Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000001'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000002'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000003'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000004'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000005'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000006'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000010'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000011'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000012'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000013'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000014'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000015'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000016'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000110'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000111'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000112'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000113'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000114'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000115'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000116'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000210'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000211'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000212'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000213'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000214'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000215'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000216'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000000'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000001'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000002'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000003'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000004'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000005'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000006'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000000'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000001'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000002'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000003'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000004'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000005'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000006'); SELECT * FROM t1 PARTITION(p0); a 2001-01-01 00:00:01.000000 2001-01-01 00:00:01.000004 SELECT * FROM t1 PARTITION(p1); a 2001-01-01 00:00:01.000001 2001-01-01 00:00:01.000005 2001-01-01 00:00:02.000000 2001-01-01 00:00:02.000002 2001-01-01 00:00:02.000004 2001-01-01 00:00:02.000006 SELECT * FROM t1 PARTITION(p2); a 2001-01-01 00:00:01.000002 2001-01-01 00:00:01.000006 SELECT * FROM t1 PARTITION(p3); a 2001-01-01 00:00:00.000000 2001-01-01 00:00:00.000001 2001-01-01 00:00:00.000002 2001-01-01 00:00:00.000003 2001-01-01 00:00:00.000004 2001-01-01 00:00:00.000005 2001-01-01 00:00:00.000006 2001-01-01 00:00:00.000010 2001-01-01 00:00:00.000011 2001-01-01 00:00:00.000012 2001-01-01 00:00:00.000013 2001-01-01 00:00:00.000014 2001-01-01 00:00:00.000015 2001-01-01 00:00:00.000016 2001-01-01 00:00:00.000110 2001-01-01 00:00:00.000111 2001-01-01 00:00:00.000112 2001-01-01 00:00:00.000113 2001-01-01 00:00:00.000114 2001-01-01 00:00:00.000115 2001-01-01 00:00:00.000116 2001-01-01 00:00:00.000210 2001-01-01 00:00:00.000211 2001-01-01 00:00:00.000212 2001-01-01 00:00:00.000213 2001-01-01 00:00:00.000214 2001-01-01 00:00:00.000215 2001-01-01 00:00:00.000216 2001-01-01 00:00:01.000003 2001-01-01 00:00:02.000001 2001-01-01 00:00:02.000003 2001-01-01 00:00:02.000005 ALTER TABLE t1 PARTITION BY RANGE COLUMNS (a) ( PARTITION p0 VALUES LESS THAN ('2001-01-01 00:00:00.000200'), PARTITION p1 VALUES LESS THAN ('2001-01-01 00:00:01'), PARTITION p2 VALUES LESS THAN ('2001-01-01 00:00:02.000003'), PARTITION p3 VALUES LESS THAN MAXVALUE ); Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. SELECT * FROM t1 PARTITION(p0); a 2001-01-01 00:00:00.000000 2001-01-01 00:00:00.000001 2001-01-01 00:00:00.000002 2001-01-01 00:00:00.000003 2001-01-01 00:00:00.000004 2001-01-01 00:00:00.000005 2001-01-01 00:00:00.000006 2001-01-01 00:00:00.000010 2001-01-01 00:00:00.000011 2001-01-01 00:00:00.000012 2001-01-01 00:00:00.000013 2001-01-01 00:00:00.000014 2001-01-01 00:00:00.000015 2001-01-01 00:00:00.000016 2001-01-01 00:00:00.000110 2001-01-01 00:00:00.000111 2001-01-01 00:00:00.000112 2001-01-01 00:00:00.000113 2001-01-01 00:00:00.000114 2001-01-01 00:00:00.000115 2001-01-01 00:00:00.000116 Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. SELECT * FROM t1 PARTITION(p1); a 2001-01-01 00:00:00.000210 2001-01-01 00:00:00.000211 2001-01-01 00:00:00.000212 2001-01-01 00:00:00.000213 2001-01-01 00:00:00.000214 2001-01-01 00:00:00.000215 2001-01-01 00:00:00.000216 SELECT * FROM t1 PARTITION(p2); a 2001-01-01 00:00:01.000000 2001-01-01 00:00:01.000004 2001-01-01 00:00:01.000001 2001-01-01 00:00:01.000005 2001-01-01 00:00:02.000000 2001-01-01 00:00:02.000002 2001-01-01 00:00:01.000002 2001-01-01 00:00:01.000006 2001-01-01 00:00:01.000003 2001-01-01 00:00:02.000001 SELECT * FROM t1 PARTITION(p3); a 2001-01-01 00:00:02.000004 2001-01-01 00:00:02.000006 2001-01-01 00:00:02.000003 2001-01-01 00:00:02.000005 DROP TABLE t1; # # Checking that DATETIME/DATE literals can be a partition LESS value # CREATE TABLE t1 (s1 DATETIME(6)) PARTITION BY RANGE COLUMNS (s1) (PARTITION p1 VALUES LESS THAN (TIMESTAMP'2001-01-01 01:01:01.000001'), PARTITION p2 VALUES LESS THAN (DATE'2002-01-01')); Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `s1` datetime(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50500 PARTITION BY RANGE COLUMNS(s1) (PARTITION p1 VALUES LESS THAN ('2001-01-01 01:01:01.000001') ENGINE = MyISAM, PARTITION p2 VALUES LESS THAN ('2002-01-01') ENGINE = MyISAM) */ Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. DROP TABLE t1; # # Testing CAST to DATETIME and DATETIME(6) # CREATE TABLE t1 AS SELECT CAST(111 AS DATETIME), CAST(100000000 AS DATETIME), CAST(111.1 AS DATETIME), CAST('20001111' AS DATETIME), CAST(111e0 AS DATETIME), CAST(111 AS DATETIME(0)), CAST(100000000 AS DATETIME(0)), CAST(111.1 AS DATETIME(0)), CAST('20001111' AS DATETIME(0)), CAST(111e0 AS DATETIME(0)), CAST(111 AS DATETIME(6)), CAST(100000000 AS DATETIME(6)), CAST(111.1 AS DATETIME(6)), CAST('20001111' AS DATETIME(6)), CAST(111e0 AS DATETIME(6)); Warnings: Warning 1292 Incorrect datetime value: '100000000' Warning 1292 Incorrect datetime value: '100000000' Warning 1292 Incorrect datetime value: '100000000' SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `CAST(111 AS DATETIME)` datetime DEFAULT NULL, `CAST(100000000 AS DATETIME)` datetime DEFAULT NULL, `CAST(111.1 AS DATETIME)` datetime DEFAULT NULL, `CAST('20001111' AS DATETIME)` datetime DEFAULT NULL, `CAST(111e0 AS DATETIME)` datetime DEFAULT NULL, `CAST(111 AS DATETIME(0))` datetime DEFAULT NULL, `CAST(100000000 AS DATETIME(0))` datetime DEFAULT NULL, `CAST(111.1 AS DATETIME(0))` datetime DEFAULT NULL, `CAST('20001111' AS DATETIME(0))` datetime DEFAULT NULL, `CAST(111e0 AS DATETIME(0))` datetime DEFAULT NULL, `CAST(111 AS DATETIME(6))` datetime(6) DEFAULT NULL, `CAST(100000000 AS DATETIME(6))` datetime(6) DEFAULT NULL, `CAST(111.1 AS DATETIME(6))` datetime(6) DEFAULT NULL, `CAST('20001111' AS DATETIME(6))` datetime(6) DEFAULT NULL, `CAST(111e0 AS DATETIME(6))` datetime(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 (a DATETIME, b DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 11:22:33', '2001-01-01 11:22:33.123456'); CREATE TABLE t2 AS SELECT CAST(a AS DATETIME), CAST(b AS DATETIME) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CAST(a AS DATETIME)` datetime DEFAULT NULL, `CAST(b AS DATETIME)` datetime DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT CAST(a AS DATETIME(0)), CAST(b AS DATETIME(0)) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CAST(a AS DATETIME(0))` datetime DEFAULT NULL, `CAST(b AS DATETIME(0))` datetime DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT CAST(a AS DATETIME(6)), CAST(b AS DATETIME(6)) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CAST(a AS DATETIME(6))` datetime(6) DEFAULT NULL, `CAST(b AS DATETIME(6))` datetime(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; # # Testing Item_datetime_typecast::val_str # SELECT CONCAT(CAST(a AS DATETIME(0))), CONCAT(CAST(b AS DATETIME(0))) FROM t1; CONCAT(CAST(a AS DATETIME(0))) CONCAT(CAST(b AS DATETIME(0))) 2001-01-01 11:22:33 2001-01-01 11:22:33 SELECT CONCAT(CAST(a AS DATETIME(6))), CONCAT(CAST(b AS DATETIME(6))) FROM t1; CONCAT(CAST(a AS DATETIME(6))) CONCAT(CAST(b AS DATETIME(6))) 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.123456 SELECT CONCAT(CAST(a AS DATETIME)), CONCAT(CAST(b AS DATETIME)) FROM t1; CONCAT(CAST(a AS DATETIME)) CONCAT(CAST(b AS DATETIME)) 2001-01-01 11:22:33 2001-01-01 11:22:33 # # Testing Item_datetime_typecast::get_time # SELECT CAST(a AS DATETIME(0)), CAST(b AS DATETIME(0)) FROM t1; CAST(a AS DATETIME(0)) CAST(b AS DATETIME(0)) 2001-01-01 11:22:33 2001-01-01 11:22:33 SELECT CAST(a AS DATETIME(6)), CAST(b AS DATETIME(6)) FROM t1; CAST(a AS DATETIME(6)) CAST(b AS DATETIME(6)) 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.123456 SELECT CAST(a AS DATETIME), CAST(b AS DATETIME) FROM t1; CAST(a AS DATETIME) CAST(b AS DATETIME) 2001-01-01 11:22:33 2001-01-01 11:22:33 DROP TABLE t1; # # Testing Item_datetime_typecast::val_int # SELECT CAST('2001-01-01 10:11:12' AS DATETIME(0)) + 1; CAST('2001-01-01 10:11:12' AS DATETIME(0)) + 1 20010101101113 # # Testing Item_time_typecast::val_decimal # SELECT CAST('2001-01-01 10:11:12' AS DATETIME(6)) + 1; CAST('2001-01-01 10:11:12' AS DATETIME(6)) + 1 20010101101113.000000 # # Testing CAST from numeric types to DATETIME # CREATE TABLE t1 (bi BIGINT, d DOUBLE, dc DECIMAL(30,6)); INSERT INTO t1 VALUES (10101101112, 10101101112.1, 10101101112.1); INSERT INTO t1 VALUES (20010101101112, 20010101101112.1, 20010101101112.1); SELECT CAST(bi AS DATETIME(1)), CAST(d AS DATETIME(1)), CAST(dc AS DATETIME(1)), CAST(10101101112 AS DATETIME(1)), CAST(10101101112.1 AS DATETIME(1)), CAST(20010101101112 AS DATETIME(1)), CAST(20010101101112.1 AS DATETIME(1)) FROM t1; CAST(bi AS DATETIME(1)) 2001-01-01 10:11:12.0 CAST(d AS DATETIME(1)) 2001-01-01 10:11:12.1 CAST(dc AS DATETIME(1)) 2001-01-01 10:11:12.1 CAST(10101101112 AS DATETIME(1)) 2001-01-01 10:11:12.0 CAST(10101101112.1 AS DATETIME(1)) 2001-01-01 10:11:12.1 CAST(20010101101112 AS DATETIME(1)) 2001-01-01 10:11:12.0 CAST(20010101101112.1 AS DATETIME(1)) 2001-01-01 10:11:12.1 CAST(bi AS DATETIME(1)) 2001-01-01 10:11:12.0 CAST(d AS DATETIME(1)) 2001-01-01 10:11:12.1 CAST(dc AS DATETIME(1)) 2001-01-01 10:11:12.1 CAST(10101101112 AS DATETIME(1)) 2001-01-01 10:11:12.0 CAST(10101101112.1 AS DATETIME(1)) 2001-01-01 10:11:12.1 CAST(20010101101112 AS DATETIME(1)) 2001-01-01 10:11:12.0 CAST(20010101101112.1 AS DATETIME(1)) 2001-01-01 10:11:12.1 DROP TABLE t1; SELECT CAST(1e300 AS DATETIME); CAST(1e300 AS DATETIME) NULL Warnings: Warning 1292 Incorrect datetime value: '1e300' SELECT CAST(999999999999999999999999.999 AS DATETIME); CAST(999999999999999999999999.999 AS DATETIME) NULL Warnings: Warning 1292 Incorrect datetime value: '999999999999999999999999.999' SELECT CAST(9223372036854775807 AS DATETIME); CAST(9223372036854775807 AS DATETIME) NULL Warnings: Warning 1292 Incorrect datetime value: '9223372036854775807' # # Testing comparison between a DATETIME(6) field and a DATETIME(N) type cast # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 10:11:12.000000'); INSERT INTO t1 VALUES ('2001-01-01 10:11:12.000001'); INSERT INTO t1 VALUES ('2001-01-01 10:11:12.000002'); INSERT INTO t1 VALUES ('2001-01-01 10:11:12.000003'); SELECT * FROM t1 WHERE a=CAST('2001-01-01 10:11:12.000003' AS DATETIME(6)); a 2001-01-01 10:11:12.000003 SELECT * FROM t1 WHERE a=CAST('2001-01-01 10:11:12.000003' AS DATETIME(0)); a 2001-01-01 10:11:12.000000 DROP TABLE t1; # # Testing comparison between CAST(x AS DATETIME(N)) and INT # SELECT CAST('2001-01-01 10:11:12.123' AS DATETIME(0)) = 20010101101112; CAST('2001-01-01 10:11:12.123' AS DATETIME(0)) = 20010101101112 1 SELECT CAST(20010101101112.123 AS DATETIME(0)) = 20010101101112; CAST(20010101101112.123 AS DATETIME(0)) = 20010101101112 1 SELECT CAST(00010101101112.123e0 AS DATETIME(0)) = 20010101101112; CAST(00010101101112.123e0 AS DATETIME(0)) = 20010101101112 1 # # Testing Item_time_typecast::val_int_packed() # CREATE TABLE t1 (a DATETIME, b DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 23:00:00', '2001-01-01 23:00:00.123456'); SELECT CAST('2001-01-01 23:00:00' AS DATETIME) = (SELECT a FROM t1); CAST('2001-01-01 23:00:00' AS DATETIME) = (SELECT a FROM t1) 1 SELECT CAST('2001-01-01 23:00:00' AS DATETIME(6)) = (SELECT a FROM t1); CAST('2001-01-01 23:00:00' AS DATETIME(6)) = (SELECT a FROM t1) 1 SELECT CAST('2001-01-01 23:00:00.123456' AS DATETIME(0)) = (SELECT a FROM t1); CAST('2001-01-01 23:00:00.123456' AS DATETIME(0)) = (SELECT a FROM t1) 1 SELECT CAST('2001-01-01 23:00:00.123456' AS DATETIME(6)) = (SELECT b FROM t1); CAST('2001-01-01 23:00:00.123456' AS DATETIME(6)) = (SELECT b FROM t1) 1 DROP TABLE t1; # # Testing function MICROSECOND # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 11:12:13.000001'); INSERT INTO t1 VALUES ('2001-01-01 11:12:13.100001'); INSERT INTO t1 VALUES ('2001-01-01 11:12:13.999999'); SELECT a, MICROSECOND(a) FROM t1; a MICROSECOND(a) 2001-01-01 11:12:13.000001 1 2001-01-01 11:12:13.100001 100001 2001-01-01 11:12:13.999999 999999 SELECT a, EXTRACT(MICROSECOND FROM a) FROM t1; a EXTRACT(MICROSECOND FROM a) 2001-01-01 11:12:13.000001 1 2001-01-01 11:12:13.100001 100001 2001-01-01 11:12:13.999999 999999 DROP TABLE t1; SELECT MICROSECOND(CAST(20010101235959.456 AS DATETIME(6))); MICROSECOND(CAST(20010101235959.456 AS DATETIME(6))) 456000 SELECT EXTRACT(MICROSECOND FROM CAST(20010101235959.456 AS DATETIME(6))); EXTRACT(MICROSECOND FROM CAST(20010101235959.456 AS DATETIME(6))) 456000 # # Testing PS # CREATE TABLE t1 (a DATETIME(6)); PREPARE stmt FROM 'INSERT INTO t1 VALUES (?)'; SET @a='2001-01-01 11:22:33.123456'; SET @b=20010101112233.123456; SET @c=0.123456e0; EXECUTE stmt USING @a; EXECUTE stmt USING @c; DEALLOCATE PREPARE stmt; SELECT * FROM t1; a 2001-01-01 11:22:33.123456 0000-00-00 00:00:00.123456 PREPARE stmt FROM 'SELECT * FROM t1 WHERE a=?'; EXECUTE stmt USING @a; a 2001-01-01 11:22:33.123456 EXECUTE stmt USING @b; a 2001-01-01 11:22:33.123456 EXECUTE stmt USING @c; a 0000-00-00 00:00:00.123456 DEALLOCATE PREPARE stmt; DROP TABLE t1; # # Testing DATETIME(6) and user variables # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123456'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.123456'); SET @a='2001-01-01 11:22:33.123456'; SELECT * FROM t1 WHERE a=@a; a 2001-01-01 11:22:33.123456 SET @a=20010101112233.123456; SELECT * FROM t1 WHERE a=@a; a 2001-01-01 11:22:33.123456 SET @a=0.123456e0; SELECT * FROM t1 WHERE a=@a; a 0000-00-00 00:00:00.123456 SET @a=NULL; SELECT a INTO @a FROM t1 LIMIT 1; SELECT @a; @a 2001-01-01 11:22:33.123456 DROP TABLE t1; CREATE TABLE t1 AS SELECT @a AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` longtext ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t1; a 2001-01-01 11:22:33.123456 DROP TABLE t1; # # Testing SP # CREATE PROCEDURE p1 () BEGIN DECLARE a DATETIME(6); SET a='2001-01-01 11:22:33.123'; SELECT a; END// SHOW CREATE PROCEDURE p1// Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation p1 NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() BEGIN DECLARE a DATETIME(6); SET a='2001-01-01 11:22:33.123'; SELECT a; END latin1 latin1_swedish_ci latin1_swedish_ci CALL p1// a 2001-01-01 11:22:33.123000 DROP PROCEDURE p1// CREATE PROCEDURE p1 (a DATETIME(6)) BEGIN SELECT a; END// SHOW CREATE PROCEDURE p1// Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation p1 NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`(a DATETIME(6)) BEGIN SELECT a; END latin1 latin1_swedish_ci latin1_swedish_ci CALL p1(20010101112233)// a 2001-01-01 11:22:33.000000 CALL p1(20010101112233.123)// a 2001-01-01 11:22:33.123000 CALL p1(0.123e0)// a 0000-00-00 00:00:00.123000 CALL p1('2001-01-01 11:22:33.123')// a 2001-01-01 11:22:33.123000 DROP PROCEDURE p1// CREATE PROCEDURE p1() BEGIN DECLARE a DATETIME(6); CREATE TABLE t1 AS SELECT a; SHOW CREATE TABLE t1; DROP TABLE t1; END// SHOW CREATE PROCEDURE p1// Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation p1 NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() BEGIN DECLARE a DATETIME(6); CREATE TABLE t1 AS SELECT a; SHOW CREATE TABLE t1; DROP TABLE t1; END latin1 latin1_swedish_ci latin1_swedish_ci CALL p1// Table Create Table t1 CREATE TABLE `t1` ( `a` datetime(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP PROCEDURE p1// CREATE FUNCTION p1 (a DATETIME(6)) RETURNS DATETIME(6) BEGIN RETURN a; END// SHOW CREATE FUNCTION p1// Function sql_mode Create Function character_set_client collation_connection Database Collation p1 NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `p1`(a DATETIME(6)) RETURNS datetime(6) BEGIN RETURN a; END latin1 latin1_swedish_ci latin1_swedish_ci SELECT p1(20010101112233)// p1(20010101112233) 2001-01-01 11:22:33.000000 SELECT p1(20010101112233.123)// p1(20010101112233.123) 2001-01-01 11:22:33.123000 DROP FUNCTION p1// # # Testing INFORMATION_SCHEMA.COLUMNS # CREATE TABLE t1 (a DATETIME(6)); SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='t1';; TABLE_CATALOG def TABLE_SCHEMA test TABLE_NAME t1 COLUMN_NAME a ORDINAL_POSITION 1 COLUMN_DEFAULT NULL IS_NULLABLE YES DATA_TYPE datetime CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION 6 CHARACTER_SET_NAME NULL COLLATION_NAME NULL COLUMN_TYPE datetime(6) COLUMN_KEY EXTRA PRIVILEGES # COLUMN_COMMENT GENERATION_EXPRESSION DROP TABLE t1; # # SELECT from a subquery # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.123456'), ('2001-01-01 11:11:11.123456'); SELECT * FROM (SELECT * FROM t1) t12; a 2001-01-01 00:00:00.123456 2001-01-01 11:11:11.123456 DROP TABLE t1; # # Testing IN and = subqueries # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.123456'), ('2001-01-01 11:11:11.123456'); SELECT * FROM t1 WHERE a IN (SELECT MIN(a) FROM t1); a 2001-01-01 00:00:00.123456 SELECT * FROM t1 WHERE a = (SELECT a FROM t1 ORDER BY a DESC LIMIT 1); a 2001-01-01 11:11:11.123456 DROP TABLE t1; # # Testing IN subquery + GROUP # CREATE TABLE t1 (id INT, a DATETIME(6)); INSERT INTO t1 VALUES (1, '2001-01-01 00:00:00.123456'), (1, '2001-01-01 11:00:00.123456'); INSERT INTO t1 VALUES (2, '2001-01-01 00:01:00.123456'), (2, '2001-01-01 11:01:00.123456'); INSERT INTO t1 VALUES (3, NULL); SELECT * FROM t1 WHERE a IN (SELECT MAX(a) FROM t1 GROUP BY id); id a 1 2001-01-01 11:00:00.123456 2 2001-01-01 11:01:00.123456 DROP TABLE t1; # # Testing VIEW # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.123456'), ('2001-01-01 11:11:11.123456'); CREATE VIEW v1 AS SELECT a FROM t1; SELECT * FROM v1 WHERE a='2001-01-01 00:00:00.123456'; a 2001-01-01 00:00:00.123456 SELECT MIN(a), MAX(a) FROM v1; MIN(a) MAX(a) 2001-01-01 00:00:00.123456 2001-01-01 11:11:11.123456 SELECT * FROM t1 WHERE a IN (SELECT MAX(a) FROM v1); a 2001-01-01 11:11:11.123456 DROP VIEW v1; CREATE VIEW v1 AS SELECT MAX(a) AS a FROM t1; SELECT * FROM v1; a 2001-01-01 11:11:11.123456 SELECT * FROM t1 WHERE a=(SELECT a FROM v1); a 2001-01-01 11:11:11.123456 DROP VIEW v1; DROP TABLE t1; # # Testing that CAST from various fields to DATETIME rounds. # This tests Field::get_date(). # CREATE TABLE t1 (a VARCHAR(32)); INSERT INTO t1 VALUES ('9999-12-31 23:59:59.0000009'), ('9999-12-31 23:59:59.9'), ('2001-01-01 10:10:10.9999994'), ('2001-01-01 10:10:10.9999995'); SELECT a, CAST(a AS DATETIME), CAST(a AS DATETIME(6)) FROM t1; a CAST(a AS DATETIME) CAST(a AS DATETIME(6)) 9999-12-31 23:59:59.0000009 9999-12-31 23:59:59 9999-12-31 23:59:59.000001 9999-12-31 23:59:59.9 NULL 9999-12-31 23:59:59.900000 2001-01-01 10:10:10.9999994 2001-01-01 10:10:11 2001-01-01 10:10:10.999999 2001-01-01 10:10:10.9999995 2001-01-01 10:10:11 2001-01-01 10:10:11.000000 Warnings: Warning 1441 Datetime function: datetime field overflow DROP TABLE t1; CREATE TABLE t1 (a DECIMAL(30, 7)); INSERT INTO t1 VALUES (99991231235959.0000009), (99991231235959.9), (20010101101010.9999994), (20010101101010.9999995); SELECT a, CAST(a AS DATETIME), CAST(a AS DATETIME(6)) FROM t1; a CAST(a AS DATETIME) CAST(a AS DATETIME(6)) 99991231235959.0000009 9999-12-31 23:59:59 9999-12-31 23:59:59.000001 99991231235959.9000000 NULL 9999-12-31 23:59:59.900000 20010101101010.9999994 2001-01-01 10:10:11 2001-01-01 10:10:10.999999 20010101101010.9999995 2001-01-01 10:10:11 2001-01-01 10:10:11.000000 Warnings: Warning 1441 Datetime function: datetime field overflow DROP TABLE t1; # # Testing rounding with CAST # CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999999'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999998'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999997'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999996'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999995'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999994'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999993'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999992'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999991'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999990'); SELECT a, CAST(a AS DATETIME(5)) FROM t1; a CAST(a AS DATETIME(5)) 2001-01-01 10:10:10.999999 2001-01-01 10:10:11.00000 2001-01-01 10:10:10.999998 2001-01-01 10:10:11.00000 2001-01-01 10:10:10.999997 2001-01-01 10:10:11.00000 2001-01-01 10:10:10.999996 2001-01-01 10:10:11.00000 2001-01-01 10:10:10.999995 2001-01-01 10:10:11.00000 2001-01-01 10:10:10.999994 2001-01-01 10:10:10.99999 2001-01-01 10:10:10.999993 2001-01-01 10:10:10.99999 2001-01-01 10:10:10.999992 2001-01-01 10:10:10.99999 2001-01-01 10:10:10.999991 2001-01-01 10:10:10.99999 2001-01-01 10:10:10.999990 2001-01-01 10:10:10.99999 DROP TABLE t1; CREATE TABLE t1 (a DATETIME(5)); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.99999'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.99998'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.99997'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.99996'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.99995'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.99994'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.99993'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.99992'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.99991'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.99990'); SELECT a, CAST(a AS DATETIME(4)) FROM t1; a CAST(a AS DATETIME(4)) 2001-01-01 10:10:10.99999 2001-01-01 10:10:11.0000 2001-01-01 10:10:10.99998 2001-01-01 10:10:11.0000 2001-01-01 10:10:10.99997 2001-01-01 10:10:11.0000 2001-01-01 10:10:10.99996 2001-01-01 10:10:11.0000 2001-01-01 10:10:10.99995 2001-01-01 10:10:11.0000 2001-01-01 10:10:10.99994 2001-01-01 10:10:10.9999 2001-01-01 10:10:10.99993 2001-01-01 10:10:10.9999 2001-01-01 10:10:10.99992 2001-01-01 10:10:10.9999 2001-01-01 10:10:10.99991 2001-01-01 10:10:10.9999 2001-01-01 10:10:10.99990 2001-01-01 10:10:10.9999 DROP TABLE t1; CREATE TABLE t1 (a DATETIME(4)); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.9999'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.9998'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.9997'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.9996'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.9995'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.9994'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.9993'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.9992'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.9991'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.9990'); SELECT a, CAST(a AS DATETIME(3)) FROM t1; a CAST(a AS DATETIME(3)) 2001-01-01 10:10:10.9999 2001-01-01 10:10:11.000 2001-01-01 10:10:10.9998 2001-01-01 10:10:11.000 2001-01-01 10:10:10.9997 2001-01-01 10:10:11.000 2001-01-01 10:10:10.9996 2001-01-01 10:10:11.000 2001-01-01 10:10:10.9995 2001-01-01 10:10:11.000 2001-01-01 10:10:10.9994 2001-01-01 10:10:10.999 2001-01-01 10:10:10.9993 2001-01-01 10:10:10.999 2001-01-01 10:10:10.9992 2001-01-01 10:10:10.999 2001-01-01 10:10:10.9991 2001-01-01 10:10:10.999 2001-01-01 10:10:10.9990 2001-01-01 10:10:10.999 DROP TABLE t1; CREATE TABLE t1 (a DATETIME(3)); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.998'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.997'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.996'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.995'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.994'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.993'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.992'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.991'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.990'); SELECT a, CAST(a AS DATETIME(2)) FROM t1; a CAST(a AS DATETIME(2)) 2001-01-01 10:10:10.999 2001-01-01 10:10:11.00 2001-01-01 10:10:10.998 2001-01-01 10:10:11.00 2001-01-01 10:10:10.997 2001-01-01 10:10:11.00 2001-01-01 10:10:10.996 2001-01-01 10:10:11.00 2001-01-01 10:10:10.995 2001-01-01 10:10:11.00 2001-01-01 10:10:10.994 2001-01-01 10:10:10.99 2001-01-01 10:10:10.993 2001-01-01 10:10:10.99 2001-01-01 10:10:10.992 2001-01-01 10:10:10.99 2001-01-01 10:10:10.991 2001-01-01 10:10:10.99 2001-01-01 10:10:10.990 2001-01-01 10:10:10.99 DROP TABLE t1; CREATE TABLE t1 (a DATETIME(2)); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.99'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.98'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.97'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.96'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.95'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.94'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.93'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.92'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.91'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.90'); SELECT a, CAST(a AS DATETIME(1)) FROM t1; a CAST(a AS DATETIME(1)) 2001-01-01 10:10:10.99 2001-01-01 10:10:11.0 2001-01-01 10:10:10.98 2001-01-01 10:10:11.0 2001-01-01 10:10:10.97 2001-01-01 10:10:11.0 2001-01-01 10:10:10.96 2001-01-01 10:10:11.0 2001-01-01 10:10:10.95 2001-01-01 10:10:11.0 2001-01-01 10:10:10.94 2001-01-01 10:10:10.9 2001-01-01 10:10:10.93 2001-01-01 10:10:10.9 2001-01-01 10:10:10.92 2001-01-01 10:10:10.9 2001-01-01 10:10:10.91 2001-01-01 10:10:10.9 2001-01-01 10:10:10.90 2001-01-01 10:10:10.9 DROP TABLE t1; CREATE TABLE t1 (a DATETIME(1)); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.9'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.8'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.7'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.6'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.5'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.4'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.3'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.2'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.1'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.0'); SELECT a, CAST(a AS DATETIME) FROM t1; a CAST(a AS DATETIME) 2001-01-01 10:10:10.9 2001-01-01 10:10:11 2001-01-01 10:10:10.8 2001-01-01 10:10:11 2001-01-01 10:10:10.7 2001-01-01 10:10:11 2001-01-01 10:10:10.6 2001-01-01 10:10:11 2001-01-01 10:10:10.5 2001-01-01 10:10:11 2001-01-01 10:10:10.4 2001-01-01 10:10:10 2001-01-01 10:10:10.3 2001-01-01 10:10:10 2001-01-01 10:10:10.2 2001-01-01 10:10:10 2001-01-01 10:10:10.1 2001-01-01 10:10:10 2001-01-01 10:10:10.0 2001-01-01 10:10:10 DROP TABLE t1; # # Testing that Item::get_date() rounds # SELECT CAST('2001-01-01 10:10:10.9999994' AS DATETIME), CAST('2001-01-01 10:10:10.9999995' AS DATETIME), CAST('2001-01-01 10:10:10.9999994' AS DATETIME(6)), CAST('2001-01-01 10:10:10.9999995' AS DATETIME(6)), CAST(20010101101010.9999994 AS DATETIME), CAST(20010101101010.9999995 AS DATETIME), CAST(20010101101010.9999994 AS DATETIME(6)), CAST(20010101101010.9999995 AS DATETIME(6)); CAST('2001-01-01 10:10:10.9999994' AS DATETIME) 2001-01-01 10:10:11 CAST('2001-01-01 10:10:10.9999995' AS DATETIME) 2001-01-01 10:10:11 CAST('2001-01-01 10:10:10.9999994' AS DATETIME(6)) 2001-01-01 10:10:10.999999 CAST('2001-01-01 10:10:10.9999995' AS DATETIME(6)) 2001-01-01 10:10:11.000000 CAST(20010101101010.9999994 AS DATETIME) 2001-01-01 10:10:11 CAST(20010101101010.9999995 AS DATETIME) 2001-01-01 10:10:11 CAST(20010101101010.9999994 AS DATETIME(6)) 2001-01-01 10:10:10.999999 CAST(20010101101010.9999995 AS DATETIME(6)) 2001-01-01 10:10:11.000000 # # Testing that comparison rounds # CREATE TABLE t1 (t0 DATETIME, t6 DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 00:00:00', '2001-01-01 00:00:00.999999'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01', '2001-01-01 00:00:01.000000'); SELECT t0 FROM t1 WHERE t6='2001-01-01 00:00:00.9999998'; t0 2001-01-01 00:00:01 SELECT t6 FROM t1 WHERE t6='2001-01-01 00:00:00.9999998'; t6 2001-01-01 00:00:01.000000 DROP TABLE t1; # # Testing that EXTRACT rounds # SELECT EXTRACT(MICROSECOND FROM '2001-01-01 00:00:00.9999994'), EXTRACT(MICROSECOND FROM '2001-01-01 00:00:00.9999995'), EXTRACT(MICROSECOND FROM 20010101000000.9999994), EXTRACT(MICROSECOND FROM 20010101000000.9999995); EXTRACT(MICROSECOND FROM '2001-01-01 00:00:00.9999994') 999999 EXTRACT(MICROSECOND FROM '2001-01-01 00:00:00.9999995') 0 EXTRACT(MICROSECOND FROM 20010101000000.9999994) 999999 EXTRACT(MICROSECOND FROM 20010101000000.9999995) 0 # # Testing that TIMESTAMP(0) is a synonym to non-fractional TIMESTAMP # CREATE TABLE t1 (a TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0)); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; # # Testing internal representation format for DATETIME(N) # SET time_zone='+00:00'; CREATE TABLE t1 (a6 VARCHAR(32)); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000000'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000001'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000002'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000003'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000004'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000005'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000006'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000007'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000008'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000009'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000010'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000011'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000012'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000013'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000014'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000015'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000016'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000099'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.000999'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.009999'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.099999'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.100000'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.900000'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.990000'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.999000'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.999900'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.999990'); INSERT INTO t1 VALUES ('1970-01-01 00:00:01.999999'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000000'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000001'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000002'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000003'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000004'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000005'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000006'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000007'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000008'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000009'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000010'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000011'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000012'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000013'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000014'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000015'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000016'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000099'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.000999'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.009999'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.090000'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.099999'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.100000'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.900000'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.990000'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.999000'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.999900'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.999990'); INSERT INTO t1 VALUES ('1970-01-01 00:00:02.999999'); INSERT INTO t1 VALUES ('1970-01-01 00:01:00.000001'); INSERT INTO t1 VALUES ('1970-01-01 00:01:00.000008'); INSERT INTO t1 VALUES ('1970-01-01 00:01:00.000015'); INSERT INTO t1 VALUES ('1970-01-01 00:01:00.000016'); INSERT INTO t1 VALUES ('1970-01-01 00:01:00.000099'); INSERT INTO t1 VALUES ('1970-01-01 00:01:00.000999'); INSERT INTO t1 VALUES ('1970-01-01 00:01:00.009999'); INSERT INTO t1 VALUES ('1970-01-01 00:01:00.099999'); INSERT INTO t1 VALUES ('1970-01-01 00:01:00.100000'); INSERT INTO t1 VALUES ('1970-01-01 00:01:00.900000'); INSERT INTO t1 VALUES ('1970-01-01 00:01:00.999999'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.000001'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.000008'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.000015'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.000016'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.000099'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.000999'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.009999'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.099999'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.100000'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.900000'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.990000'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.999000'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.999900'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.999990'); INSERT INTO t1 VALUES ('1970-01-01 01:00:00.999999'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.000001'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.000008'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.000015'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.000016'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.000099'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.000999'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.009999'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.099999'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.100000'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.900000'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.990000'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.999000'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.999900'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.999990'); INSERT INTO t1 VALUES ('2001-01-01 23:59:58.999999'); INSERT INTO t1 VALUES ('2001-01-01 23:59:59.000000'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.000001'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.000008'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.000015'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.000016'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.000099'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.000999'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.009999'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.099999'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.100000'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.900000'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.990000'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.999000'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.999900'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.999990'); INSERT INTO t1 VALUES ('2037-01-01 23:59:58.999999'); INSERT INTO t1 VALUES ('2037-01-01 23:59:59.000000'); ALTER TABLE t1 ADD a0 VARCHAR(32), ADD a1 VARCHAR(32), ADD a2 VARCHAR(32), ADD a3 VARCHAR(32), ADD a4 VARCHAR(32), ADD a5 VARCHAR(32), ADD d0 TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0), ADD d1 TIMESTAMP(1), ADD d2 TIMESTAMP(2), ADD d3 TIMESTAMP(3), ADD d4 TIMESTAMP(4), ADD d5 TIMESTAMP(5), ADD d6 TIMESTAMP(6); UPDATE t1 SET a0= LEFT(a6, LENGTH(a6) - 6), a1= LEFT(a6, LENGTH(a6) - 5), a2= LEFT(a6, LENGTH(a6) - 4), a3= LEFT(a6, LENGTH(a6) - 3), a4= LEFT(a6, LENGTH(a6) - 2), a5= LEFT(a6, LENGTH(a6) - 1); UPDATE t1 SET d0= a0, d1= a1, d2= a2, d3= a3, d4= a4, d5= a5, d6= a6; SELECT a6, d6, HEX(WEIGHT_STRING(d6)) FROM t1 ORDER BY d6; a6 d6 HEX(WEIGHT_STRING(d6)) 1970-01-01 00:00:01.000000 1970-01-01 00:00:01.000000 00000001000000 1970-01-01 00:00:01.000001 1970-01-01 00:00:01.000001 00000001000001 1970-01-01 00:00:01.000002 1970-01-01 00:00:01.000002 00000001000002 1970-01-01 00:00:01.000003 1970-01-01 00:00:01.000003 00000001000003 1970-01-01 00:00:01.000004 1970-01-01 00:00:01.000004 00000001000004 1970-01-01 00:00:01.000005 1970-01-01 00:00:01.000005 00000001000005 1970-01-01 00:00:01.000006 1970-01-01 00:00:01.000006 00000001000006 1970-01-01 00:00:01.000007 1970-01-01 00:00:01.000007 00000001000007 1970-01-01 00:00:01.000008 1970-01-01 00:00:01.000008 00000001000008 1970-01-01 00:00:01.000009 1970-01-01 00:00:01.000009 00000001000009 1970-01-01 00:00:01.000010 1970-01-01 00:00:01.000010 0000000100000A 1970-01-01 00:00:01.000011 1970-01-01 00:00:01.000011 0000000100000B 1970-01-01 00:00:01.000012 1970-01-01 00:00:01.000012 0000000100000C 1970-01-01 00:00:01.000013 1970-01-01 00:00:01.000013 0000000100000D 1970-01-01 00:00:01.000014 1970-01-01 00:00:01.000014 0000000100000E 1970-01-01 00:00:01.000015 1970-01-01 00:00:01.000015 0000000100000F 1970-01-01 00:00:01.000016 1970-01-01 00:00:01.000016 00000001000010 1970-01-01 00:00:01.000099 1970-01-01 00:00:01.000099 00000001000063 1970-01-01 00:00:01.000999 1970-01-01 00:00:01.000999 000000010003E7 1970-01-01 00:00:01.009999 1970-01-01 00:00:01.009999 0000000100270F 1970-01-01 00:00:01.099999 1970-01-01 00:00:01.099999 0000000101869F 1970-01-01 00:00:01.100000 1970-01-01 00:00:01.100000 000000010186A0 1970-01-01 00:00:01.900000 1970-01-01 00:00:01.900000 000000010DBBA0 1970-01-01 00:00:01.990000 1970-01-01 00:00:01.990000 000000010F1B30 1970-01-01 00:00:01.999000 1970-01-01 00:00:01.999000 000000010F3E58 1970-01-01 00:00:01.999900 1970-01-01 00:00:01.999900 000000010F41DC 1970-01-01 00:00:01.999990 1970-01-01 00:00:01.999990 000000010F4236 1970-01-01 00:00:01.999999 1970-01-01 00:00:01.999999 000000010F423F 1970-01-01 00:00:02.000000 1970-01-01 00:00:02.000000 00000002000000 1970-01-01 00:00:02.000001 1970-01-01 00:00:02.000001 00000002000001 1970-01-01 00:00:02.000002 1970-01-01 00:00:02.000002 00000002000002 1970-01-01 00:00:02.000003 1970-01-01 00:00:02.000003 00000002000003 1970-01-01 00:00:02.000004 1970-01-01 00:00:02.000004 00000002000004 1970-01-01 00:00:02.000005 1970-01-01 00:00:02.000005 00000002000005 1970-01-01 00:00:02.000006 1970-01-01 00:00:02.000006 00000002000006 1970-01-01 00:00:02.000007 1970-01-01 00:00:02.000007 00000002000007 1970-01-01 00:00:02.000008 1970-01-01 00:00:02.000008 00000002000008 1970-01-01 00:00:02.000009 1970-01-01 00:00:02.000009 00000002000009 1970-01-01 00:00:02.000010 1970-01-01 00:00:02.000010 0000000200000A 1970-01-01 00:00:02.000011 1970-01-01 00:00:02.000011 0000000200000B 1970-01-01 00:00:02.000012 1970-01-01 00:00:02.000012 0000000200000C 1970-01-01 00:00:02.000013 1970-01-01 00:00:02.000013 0000000200000D 1970-01-01 00:00:02.000014 1970-01-01 00:00:02.000014 0000000200000E 1970-01-01 00:00:02.000015 1970-01-01 00:00:02.000015 0000000200000F 1970-01-01 00:00:02.000016 1970-01-01 00:00:02.000016 00000002000010 1970-01-01 00:00:02.000099 1970-01-01 00:00:02.000099 00000002000063 1970-01-01 00:00:02.000999 1970-01-01 00:00:02.000999 000000020003E7 1970-01-01 00:00:02.009999 1970-01-01 00:00:02.009999 0000000200270F 1970-01-01 00:00:02.090000 1970-01-01 00:00:02.090000 00000002015F90 1970-01-01 00:00:02.099999 1970-01-01 00:00:02.099999 0000000201869F 1970-01-01 00:00:02.100000 1970-01-01 00:00:02.100000 000000020186A0 1970-01-01 00:00:02.900000 1970-01-01 00:00:02.900000 000000020DBBA0 1970-01-01 00:00:02.990000 1970-01-01 00:00:02.990000 000000020F1B30 1970-01-01 00:00:02.999000 1970-01-01 00:00:02.999000 000000020F3E58 1970-01-01 00:00:02.999900 1970-01-01 00:00:02.999900 000000020F41DC 1970-01-01 00:00:02.999990 1970-01-01 00:00:02.999990 000000020F4236 1970-01-01 00:00:02.999999 1970-01-01 00:00:02.999999 000000020F423F 1970-01-01 00:01:00.000001 1970-01-01 00:01:00.000001 0000003C000001 1970-01-01 00:01:00.000008 1970-01-01 00:01:00.000008 0000003C000008 1970-01-01 00:01:00.000015 1970-01-01 00:01:00.000015 0000003C00000F 1970-01-01 00:01:00.000016 1970-01-01 00:01:00.000016 0000003C000010 1970-01-01 00:01:00.000099 1970-01-01 00:01:00.000099 0000003C000063 1970-01-01 00:01:00.000999 1970-01-01 00:01:00.000999 0000003C0003E7 1970-01-01 00:01:00.009999 1970-01-01 00:01:00.009999 0000003C00270F 1970-01-01 00:01:00.099999 1970-01-01 00:01:00.099999 0000003C01869F 1970-01-01 00:01:00.100000 1970-01-01 00:01:00.100000 0000003C0186A0 1970-01-01 00:01:00.900000 1970-01-01 00:01:00.900000 0000003C0DBBA0 1970-01-01 00:01:00.999999 1970-01-01 00:01:00.999999 0000003C0F423F 1970-01-01 01:00:00.000001 1970-01-01 01:00:00.000001 00000E10000001 1970-01-01 01:00:00.000008 1970-01-01 01:00:00.000008 00000E10000008 1970-01-01 01:00:00.000015 1970-01-01 01:00:00.000015 00000E1000000F 1970-01-01 01:00:00.000016 1970-01-01 01:00:00.000016 00000E10000010 1970-01-01 01:00:00.000099 1970-01-01 01:00:00.000099 00000E10000063 1970-01-01 01:00:00.000999 1970-01-01 01:00:00.000999 00000E100003E7 1970-01-01 01:00:00.009999 1970-01-01 01:00:00.009999 00000E1000270F 1970-01-01 01:00:00.099999 1970-01-01 01:00:00.099999 00000E1001869F 1970-01-01 01:00:00.100000 1970-01-01 01:00:00.100000 00000E100186A0 1970-01-01 01:00:00.900000 1970-01-01 01:00:00.900000 00000E100DBBA0 1970-01-01 01:00:00.990000 1970-01-01 01:00:00.990000 00000E100F1B30 1970-01-01 01:00:00.999000 1970-01-01 01:00:00.999000 00000E100F3E58 1970-01-01 01:00:00.999900 1970-01-01 01:00:00.999900 00000E100F41DC 1970-01-01 01:00:00.999990 1970-01-01 01:00:00.999990 00000E100F4236 1970-01-01 01:00:00.999999 1970-01-01 01:00:00.999999 00000E100F423F 2001-01-01 23:59:58.000001 2001-01-01 23:59:58.000001 3A5119FE000001 2001-01-01 23:59:58.000008 2001-01-01 23:59:58.000008 3A5119FE000008 2001-01-01 23:59:58.000015 2001-01-01 23:59:58.000015 3A5119FE00000F 2001-01-01 23:59:58.000016 2001-01-01 23:59:58.000016 3A5119FE000010 2001-01-01 23:59:58.000099 2001-01-01 23:59:58.000099 3A5119FE000063 2001-01-01 23:59:58.000999 2001-01-01 23:59:58.000999 3A5119FE0003E7 2001-01-01 23:59:58.009999 2001-01-01 23:59:58.009999 3A5119FE00270F 2001-01-01 23:59:58.099999 2001-01-01 23:59:58.099999 3A5119FE01869F 2001-01-01 23:59:58.100000 2001-01-01 23:59:58.100000 3A5119FE0186A0 2001-01-01 23:59:58.900000 2001-01-01 23:59:58.900000 3A5119FE0DBBA0 2001-01-01 23:59:58.990000 2001-01-01 23:59:58.990000 3A5119FE0F1B30 2001-01-01 23:59:58.999000 2001-01-01 23:59:58.999000 3A5119FE0F3E58 2001-01-01 23:59:58.999900 2001-01-01 23:59:58.999900 3A5119FE0F41DC 2001-01-01 23:59:58.999990 2001-01-01 23:59:58.999990 3A5119FE0F4236 2001-01-01 23:59:58.999999 2001-01-01 23:59:58.999999 3A5119FE0F423F 2001-01-01 23:59:59.000000 2001-01-01 23:59:59.000000 3A5119FF000000 2037-01-01 23:59:58.000001 2037-01-01 23:59:58.000001 7E08357E000001 2037-01-01 23:59:58.000008 2037-01-01 23:59:58.000008 7E08357E000008 2037-01-01 23:59:58.000015 2037-01-01 23:59:58.000015 7E08357E00000F 2037-01-01 23:59:58.000016 2037-01-01 23:59:58.000016 7E08357E000010 2037-01-01 23:59:58.000099 2037-01-01 23:59:58.000099 7E08357E000063 2037-01-01 23:59:58.000999 2037-01-01 23:59:58.000999 7E08357E0003E7 2037-01-01 23:59:58.009999 2037-01-01 23:59:58.009999 7E08357E00270F 2037-01-01 23:59:58.099999 2037-01-01 23:59:58.099999 7E08357E01869F 2037-01-01 23:59:58.100000 2037-01-01 23:59:58.100000 7E08357E0186A0 2037-01-01 23:59:58.900000 2037-01-01 23:59:58.900000 7E08357E0DBBA0 2037-01-01 23:59:58.990000 2037-01-01 23:59:58.990000 7E08357E0F1B30 2037-01-01 23:59:58.999000 2037-01-01 23:59:58.999000 7E08357E0F3E58 2037-01-01 23:59:58.999900 2037-01-01 23:59:58.999900 7E08357E0F41DC 2037-01-01 23:59:58.999990 2037-01-01 23:59:58.999990 7E08357E0F4236 2037-01-01 23:59:58.999999 2037-01-01 23:59:58.999999 7E08357E0F423F 2037-01-01 23:59:59.000000 2037-01-01 23:59:59.000000 7E08357F000000 SELECT a5, d5, HEX(WEIGHT_STRING(d5)) FROM t1 ORDER BY d5, a6; a5 d5 HEX(WEIGHT_STRING(d5)) 1970-01-01 00:00:01.00000 1970-01-01 00:00:01.00000 00000001000000 1970-01-01 00:00:01.00000 1970-01-01 00:00:01.00000 00000001000000 1970-01-01 00:00:01.00000 1970-01-01 00:00:01.00000 00000001000000 1970-01-01 00:00:01.00000 1970-01-01 00:00:01.00000 00000001000000 1970-01-01 00:00:01.00000 1970-01-01 00:00:01.00000 00000001000000 1970-01-01 00:00:01.00000 1970-01-01 00:00:01.00000 00000001000000 1970-01-01 00:00:01.00000 1970-01-01 00:00:01.00000 00000001000000 1970-01-01 00:00:01.00000 1970-01-01 00:00:01.00000 00000001000000 1970-01-01 00:00:01.00000 1970-01-01 00:00:01.00000 00000001000000 1970-01-01 00:00:01.00000 1970-01-01 00:00:01.00000 00000001000000 1970-01-01 00:00:01.00001 1970-01-01 00:00:01.00001 0000000100000A 1970-01-01 00:00:01.00001 1970-01-01 00:00:01.00001 0000000100000A 1970-01-01 00:00:01.00001 1970-01-01 00:00:01.00001 0000000100000A 1970-01-01 00:00:01.00001 1970-01-01 00:00:01.00001 0000000100000A 1970-01-01 00:00:01.00001 1970-01-01 00:00:01.00001 0000000100000A 1970-01-01 00:00:01.00001 1970-01-01 00:00:01.00001 0000000100000A 1970-01-01 00:00:01.00001 1970-01-01 00:00:01.00001 0000000100000A 1970-01-01 00:00:01.00009 1970-01-01 00:00:01.00009 0000000100005A 1970-01-01 00:00:01.00099 1970-01-01 00:00:01.00099 000000010003DE 1970-01-01 00:00:01.00999 1970-01-01 00:00:01.00999 00000001002706 1970-01-01 00:00:01.09999 1970-01-01 00:00:01.09999 00000001018696 1970-01-01 00:00:01.10000 1970-01-01 00:00:01.10000 000000010186A0 1970-01-01 00:00:01.90000 1970-01-01 00:00:01.90000 000000010DBBA0 1970-01-01 00:00:01.99000 1970-01-01 00:00:01.99000 000000010F1B30 1970-01-01 00:00:01.99900 1970-01-01 00:00:01.99900 000000010F3E58 1970-01-01 00:00:01.99990 1970-01-01 00:00:01.99990 000000010F41DC 1970-01-01 00:00:01.99999 1970-01-01 00:00:01.99999 000000010F4236 1970-01-01 00:00:01.99999 1970-01-01 00:00:01.99999 000000010F4236 1970-01-01 00:00:02.00000 1970-01-01 00:00:02.00000 00000002000000 1970-01-01 00:00:02.00000 1970-01-01 00:00:02.00000 00000002000000 1970-01-01 00:00:02.00000 1970-01-01 00:00:02.00000 00000002000000 1970-01-01 00:00:02.00000 1970-01-01 00:00:02.00000 00000002000000 1970-01-01 00:00:02.00000 1970-01-01 00:00:02.00000 00000002000000 1970-01-01 00:00:02.00000 1970-01-01 00:00:02.00000 00000002000000 1970-01-01 00:00:02.00000 1970-01-01 00:00:02.00000 00000002000000 1970-01-01 00:00:02.00000 1970-01-01 00:00:02.00000 00000002000000 1970-01-01 00:00:02.00000 1970-01-01 00:00:02.00000 00000002000000 1970-01-01 00:00:02.00000 1970-01-01 00:00:02.00000 00000002000000 1970-01-01 00:00:02.00001 1970-01-01 00:00:02.00001 0000000200000A 1970-01-01 00:00:02.00001 1970-01-01 00:00:02.00001 0000000200000A 1970-01-01 00:00:02.00001 1970-01-01 00:00:02.00001 0000000200000A 1970-01-01 00:00:02.00001 1970-01-01 00:00:02.00001 0000000200000A 1970-01-01 00:00:02.00001 1970-01-01 00:00:02.00001 0000000200000A 1970-01-01 00:00:02.00001 1970-01-01 00:00:02.00001 0000000200000A 1970-01-01 00:00:02.00001 1970-01-01 00:00:02.00001 0000000200000A 1970-01-01 00:00:02.00009 1970-01-01 00:00:02.00009 0000000200005A 1970-01-01 00:00:02.00099 1970-01-01 00:00:02.00099 000000020003DE 1970-01-01 00:00:02.00999 1970-01-01 00:00:02.00999 00000002002706 1970-01-01 00:00:02.09000 1970-01-01 00:00:02.09000 00000002015F90 1970-01-01 00:00:02.09999 1970-01-01 00:00:02.09999 00000002018696 1970-01-01 00:00:02.10000 1970-01-01 00:00:02.10000 000000020186A0 1970-01-01 00:00:02.90000 1970-01-01 00:00:02.90000 000000020DBBA0 1970-01-01 00:00:02.99000 1970-01-01 00:00:02.99000 000000020F1B30 1970-01-01 00:00:02.99900 1970-01-01 00:00:02.99900 000000020F3E58 1970-01-01 00:00:02.99990 1970-01-01 00:00:02.99990 000000020F41DC 1970-01-01 00:00:02.99999 1970-01-01 00:00:02.99999 000000020F4236 1970-01-01 00:00:02.99999 1970-01-01 00:00:02.99999 000000020F4236 1970-01-01 00:01:00.00000 1970-01-01 00:01:00.00000 0000003C000000 1970-01-01 00:01:00.00000 1970-01-01 00:01:00.00000 0000003C000000 1970-01-01 00:01:00.00001 1970-01-01 00:01:00.00001 0000003C00000A 1970-01-01 00:01:00.00001 1970-01-01 00:01:00.00001 0000003C00000A 1970-01-01 00:01:00.00009 1970-01-01 00:01:00.00009 0000003C00005A 1970-01-01 00:01:00.00099 1970-01-01 00:01:00.00099 0000003C0003DE 1970-01-01 00:01:00.00999 1970-01-01 00:01:00.00999 0000003C002706 1970-01-01 00:01:00.09999 1970-01-01 00:01:00.09999 0000003C018696 1970-01-01 00:01:00.10000 1970-01-01 00:01:00.10000 0000003C0186A0 1970-01-01 00:01:00.90000 1970-01-01 00:01:00.90000 0000003C0DBBA0 1970-01-01 00:01:00.99999 1970-01-01 00:01:00.99999 0000003C0F4236 1970-01-01 01:00:00.00000 1970-01-01 01:00:00.00000 00000E10000000 1970-01-01 01:00:00.00000 1970-01-01 01:00:00.00000 00000E10000000 1970-01-01 01:00:00.00001 1970-01-01 01:00:00.00001 00000E1000000A 1970-01-01 01:00:00.00001 1970-01-01 01:00:00.00001 00000E1000000A 1970-01-01 01:00:00.00009 1970-01-01 01:00:00.00009 00000E1000005A 1970-01-01 01:00:00.00099 1970-01-01 01:00:00.00099 00000E100003DE 1970-01-01 01:00:00.00999 1970-01-01 01:00:00.00999 00000E10002706 1970-01-01 01:00:00.09999 1970-01-01 01:00:00.09999 00000E10018696 1970-01-01 01:00:00.10000 1970-01-01 01:00:00.10000 00000E100186A0 1970-01-01 01:00:00.90000 1970-01-01 01:00:00.90000 00000E100DBBA0 1970-01-01 01:00:00.99000 1970-01-01 01:00:00.99000 00000E100F1B30 1970-01-01 01:00:00.99900 1970-01-01 01:00:00.99900 00000E100F3E58 1970-01-01 01:00:00.99990 1970-01-01 01:00:00.99990 00000E100F41DC 1970-01-01 01:00:00.99999 1970-01-01 01:00:00.99999 00000E100F4236 1970-01-01 01:00:00.99999 1970-01-01 01:00:00.99999 00000E100F4236 2001-01-01 23:59:58.00000 2001-01-01 23:59:58.00000 3A5119FE000000 2001-01-01 23:59:58.00000 2001-01-01 23:59:58.00000 3A5119FE000000 2001-01-01 23:59:58.00001 2001-01-01 23:59:58.00001 3A5119FE00000A 2001-01-01 23:59:58.00001 2001-01-01 23:59:58.00001 3A5119FE00000A 2001-01-01 23:59:58.00009 2001-01-01 23:59:58.00009 3A5119FE00005A 2001-01-01 23:59:58.00099 2001-01-01 23:59:58.00099 3A5119FE0003DE 2001-01-01 23:59:58.00999 2001-01-01 23:59:58.00999 3A5119FE002706 2001-01-01 23:59:58.09999 2001-01-01 23:59:58.09999 3A5119FE018696 2001-01-01 23:59:58.10000 2001-01-01 23:59:58.10000 3A5119FE0186A0 2001-01-01 23:59:58.90000 2001-01-01 23:59:58.90000 3A5119FE0DBBA0 2001-01-01 23:59:58.99000 2001-01-01 23:59:58.99000 3A5119FE0F1B30 2001-01-01 23:59:58.99900 2001-01-01 23:59:58.99900 3A5119FE0F3E58 2001-01-01 23:59:58.99990 2001-01-01 23:59:58.99990 3A5119FE0F41DC 2001-01-01 23:59:58.99999 2001-01-01 23:59:58.99999 3A5119FE0F4236 2001-01-01 23:59:58.99999 2001-01-01 23:59:58.99999 3A5119FE0F4236 2001-01-01 23:59:59.00000 2001-01-01 23:59:59.00000 3A5119FF000000 2037-01-01 23:59:58.00000 2037-01-01 23:59:58.00000 7E08357E000000 2037-01-01 23:59:58.00000 2037-01-01 23:59:58.00000 7E08357E000000 2037-01-01 23:59:58.00001 2037-01-01 23:59:58.00001 7E08357E00000A 2037-01-01 23:59:58.00001 2037-01-01 23:59:58.00001 7E08357E00000A 2037-01-01 23:59:58.00009 2037-01-01 23:59:58.00009 7E08357E00005A 2037-01-01 23:59:58.00099 2037-01-01 23:59:58.00099 7E08357E0003DE 2037-01-01 23:59:58.00999 2037-01-01 23:59:58.00999 7E08357E002706 2037-01-01 23:59:58.09999 2037-01-01 23:59:58.09999 7E08357E018696 2037-01-01 23:59:58.10000 2037-01-01 23:59:58.10000 7E08357E0186A0 2037-01-01 23:59:58.90000 2037-01-01 23:59:58.90000 7E08357E0DBBA0 2037-01-01 23:59:58.99000 2037-01-01 23:59:58.99000 7E08357E0F1B30 2037-01-01 23:59:58.99900 2037-01-01 23:59:58.99900 7E08357E0F3E58 2037-01-01 23:59:58.99990 2037-01-01 23:59:58.99990 7E08357E0F41DC 2037-01-01 23:59:58.99999 2037-01-01 23:59:58.99999 7E08357E0F4236 2037-01-01 23:59:58.99999 2037-01-01 23:59:58.99999 7E08357E0F4236 2037-01-01 23:59:59.00000 2037-01-01 23:59:59.00000 7E08357F000000 SELECT a4, d4, HEX(WEIGHT_STRING(d4)) FROM t1 ORDER BY d4, a6; a4 d4 HEX(WEIGHT_STRING(d4)) 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 000000010000 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 000000010000 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 000000010000 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 000000010000 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 000000010000 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 000000010000 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 000000010000 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 000000010000 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 000000010000 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 000000010000 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 000000010000 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 000000010000 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 000000010000 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 000000010000 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 000000010000 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 000000010000 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 000000010000 1970-01-01 00:00:01.0000 1970-01-01 00:00:01.0000 000000010000 1970-01-01 00:00:01.0009 1970-01-01 00:00:01.0009 000000010009 1970-01-01 00:00:01.0099 1970-01-01 00:00:01.0099 000000010063 1970-01-01 00:00:01.0999 1970-01-01 00:00:01.0999 0000000103E7 1970-01-01 00:00:01.1000 1970-01-01 00:00:01.1000 0000000103E8 1970-01-01 00:00:01.9000 1970-01-01 00:00:01.9000 000000012328 1970-01-01 00:00:01.9900 1970-01-01 00:00:01.9900 0000000126AC 1970-01-01 00:00:01.9990 1970-01-01 00:00:01.9990 000000012706 1970-01-01 00:00:01.9999 1970-01-01 00:00:01.9999 00000001270F 1970-01-01 00:00:01.9999 1970-01-01 00:00:01.9999 00000001270F 1970-01-01 00:00:01.9999 1970-01-01 00:00:01.9999 00000001270F 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 000000020000 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 000000020000 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 000000020000 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 000000020000 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 000000020000 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 000000020000 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 000000020000 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 000000020000 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 000000020000 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 000000020000 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 000000020000 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 000000020000 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 000000020000 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 000000020000 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 000000020000 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 000000020000 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 000000020000 1970-01-01 00:00:02.0000 1970-01-01 00:00:02.0000 000000020000 1970-01-01 00:00:02.0009 1970-01-01 00:00:02.0009 000000020009 1970-01-01 00:00:02.0099 1970-01-01 00:00:02.0099 000000020063 1970-01-01 00:00:02.0900 1970-01-01 00:00:02.0900 000000020384 1970-01-01 00:00:02.0999 1970-01-01 00:00:02.0999 0000000203E7 1970-01-01 00:00:02.1000 1970-01-01 00:00:02.1000 0000000203E8 1970-01-01 00:00:02.9000 1970-01-01 00:00:02.9000 000000022328 1970-01-01 00:00:02.9900 1970-01-01 00:00:02.9900 0000000226AC 1970-01-01 00:00:02.9990 1970-01-01 00:00:02.9990 000000022706 1970-01-01 00:00:02.9999 1970-01-01 00:00:02.9999 00000002270F 1970-01-01 00:00:02.9999 1970-01-01 00:00:02.9999 00000002270F 1970-01-01 00:00:02.9999 1970-01-01 00:00:02.9999 00000002270F 1970-01-01 00:01:00.0000 1970-01-01 00:01:00.0000 0000003C0000 1970-01-01 00:01:00.0000 1970-01-01 00:01:00.0000 0000003C0000 1970-01-01 00:01:00.0000 1970-01-01 00:01:00.0000 0000003C0000 1970-01-01 00:01:00.0000 1970-01-01 00:01:00.0000 0000003C0000 1970-01-01 00:01:00.0000 1970-01-01 00:01:00.0000 0000003C0000 1970-01-01 00:01:00.0009 1970-01-01 00:01:00.0009 0000003C0009 1970-01-01 00:01:00.0099 1970-01-01 00:01:00.0099 0000003C0063 1970-01-01 00:01:00.0999 1970-01-01 00:01:00.0999 0000003C03E7 1970-01-01 00:01:00.1000 1970-01-01 00:01:00.1000 0000003C03E8 1970-01-01 00:01:00.9000 1970-01-01 00:01:00.9000 0000003C2328 1970-01-01 00:01:00.9999 1970-01-01 00:01:00.9999 0000003C270F 1970-01-01 01:00:00.0000 1970-01-01 01:00:00.0000 00000E100000 1970-01-01 01:00:00.0000 1970-01-01 01:00:00.0000 00000E100000 1970-01-01 01:00:00.0000 1970-01-01 01:00:00.0000 00000E100000 1970-01-01 01:00:00.0000 1970-01-01 01:00:00.0000 00000E100000 1970-01-01 01:00:00.0000 1970-01-01 01:00:00.0000 00000E100000 1970-01-01 01:00:00.0009 1970-01-01 01:00:00.0009 00000E100009 1970-01-01 01:00:00.0099 1970-01-01 01:00:00.0099 00000E100063 1970-01-01 01:00:00.0999 1970-01-01 01:00:00.0999 00000E1003E7 1970-01-01 01:00:00.1000 1970-01-01 01:00:00.1000 00000E1003E8 1970-01-01 01:00:00.9000 1970-01-01 01:00:00.9000 00000E102328 1970-01-01 01:00:00.9900 1970-01-01 01:00:00.9900 00000E1026AC 1970-01-01 01:00:00.9990 1970-01-01 01:00:00.9990 00000E102706 1970-01-01 01:00:00.9999 1970-01-01 01:00:00.9999 00000E10270F 1970-01-01 01:00:00.9999 1970-01-01 01:00:00.9999 00000E10270F 1970-01-01 01:00:00.9999 1970-01-01 01:00:00.9999 00000E10270F 2001-01-01 23:59:58.0000 2001-01-01 23:59:58.0000 3A5119FE0000 2001-01-01 23:59:58.0000 2001-01-01 23:59:58.0000 3A5119FE0000 2001-01-01 23:59:58.0000 2001-01-01 23:59:58.0000 3A5119FE0000 2001-01-01 23:59:58.0000 2001-01-01 23:59:58.0000 3A5119FE0000 2001-01-01 23:59:58.0000 2001-01-01 23:59:58.0000 3A5119FE0000 2001-01-01 23:59:58.0009 2001-01-01 23:59:58.0009 3A5119FE0009 2001-01-01 23:59:58.0099 2001-01-01 23:59:58.0099 3A5119FE0063 2001-01-01 23:59:58.0999 2001-01-01 23:59:58.0999 3A5119FE03E7 2001-01-01 23:59:58.1000 2001-01-01 23:59:58.1000 3A5119FE03E8 2001-01-01 23:59:58.9000 2001-01-01 23:59:58.9000 3A5119FE2328 2001-01-01 23:59:58.9900 2001-01-01 23:59:58.9900 3A5119FE26AC 2001-01-01 23:59:58.9990 2001-01-01 23:59:58.9990 3A5119FE2706 2001-01-01 23:59:58.9999 2001-01-01 23:59:58.9999 3A5119FE270F 2001-01-01 23:59:58.9999 2001-01-01 23:59:58.9999 3A5119FE270F 2001-01-01 23:59:58.9999 2001-01-01 23:59:58.9999 3A5119FE270F 2001-01-01 23:59:59.0000 2001-01-01 23:59:59.0000 3A5119FF0000 2037-01-01 23:59:58.0000 2037-01-01 23:59:58.0000 7E08357E0000 2037-01-01 23:59:58.0000 2037-01-01 23:59:58.0000 7E08357E0000 2037-01-01 23:59:58.0000 2037-01-01 23:59:58.0000 7E08357E0000 2037-01-01 23:59:58.0000 2037-01-01 23:59:58.0000 7E08357E0000 2037-01-01 23:59:58.0000 2037-01-01 23:59:58.0000 7E08357E0000 2037-01-01 23:59:58.0009 2037-01-01 23:59:58.0009 7E08357E0009 2037-01-01 23:59:58.0099 2037-01-01 23:59:58.0099 7E08357E0063 2037-01-01 23:59:58.0999 2037-01-01 23:59:58.0999 7E08357E03E7 2037-01-01 23:59:58.1000 2037-01-01 23:59:58.1000 7E08357E03E8 2037-01-01 23:59:58.9000 2037-01-01 23:59:58.9000 7E08357E2328 2037-01-01 23:59:58.9900 2037-01-01 23:59:58.9900 7E08357E26AC 2037-01-01 23:59:58.9990 2037-01-01 23:59:58.9990 7E08357E2706 2037-01-01 23:59:58.9999 2037-01-01 23:59:58.9999 7E08357E270F 2037-01-01 23:59:58.9999 2037-01-01 23:59:58.9999 7E08357E270F 2037-01-01 23:59:58.9999 2037-01-01 23:59:58.9999 7E08357E270F 2037-01-01 23:59:59.0000 2037-01-01 23:59:59.0000 7E08357F0000 SELECT a3, d3, HEX(WEIGHT_STRING(d3)) FROM t1 ORDER BY d3, a6; a3 d3 HEX(WEIGHT_STRING(d3)) 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 000000010000 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 000000010000 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 000000010000 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 000000010000 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 000000010000 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 000000010000 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 000000010000 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 000000010000 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 000000010000 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 000000010000 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 000000010000 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 000000010000 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 000000010000 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 000000010000 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 000000010000 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 000000010000 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 000000010000 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 000000010000 1970-01-01 00:00:01.000 1970-01-01 00:00:01.000 000000010000 1970-01-01 00:00:01.009 1970-01-01 00:00:01.009 00000001005A 1970-01-01 00:00:01.099 1970-01-01 00:00:01.099 0000000103DE 1970-01-01 00:00:01.100 1970-01-01 00:00:01.100 0000000103E8 1970-01-01 00:00:01.900 1970-01-01 00:00:01.900 000000012328 1970-01-01 00:00:01.990 1970-01-01 00:00:01.990 0000000126AC 1970-01-01 00:00:01.999 1970-01-01 00:00:01.999 000000012706 1970-01-01 00:00:01.999 1970-01-01 00:00:01.999 000000012706 1970-01-01 00:00:01.999 1970-01-01 00:00:01.999 000000012706 1970-01-01 00:00:01.999 1970-01-01 00:00:01.999 000000012706 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 000000020000 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 000000020000 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 000000020000 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 000000020000 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 000000020000 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 000000020000 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 000000020000 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 000000020000 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 000000020000 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 000000020000 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 000000020000 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 000000020000 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 000000020000 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 000000020000 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 000000020000 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 000000020000 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 000000020000 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 000000020000 1970-01-01 00:00:02.000 1970-01-01 00:00:02.000 000000020000 1970-01-01 00:00:02.009 1970-01-01 00:00:02.009 00000002005A 1970-01-01 00:00:02.090 1970-01-01 00:00:02.090 000000020384 1970-01-01 00:00:02.099 1970-01-01 00:00:02.099 0000000203DE 1970-01-01 00:00:02.100 1970-01-01 00:00:02.100 0000000203E8 1970-01-01 00:00:02.900 1970-01-01 00:00:02.900 000000022328 1970-01-01 00:00:02.990 1970-01-01 00:00:02.990 0000000226AC 1970-01-01 00:00:02.999 1970-01-01 00:00:02.999 000000022706 1970-01-01 00:00:02.999 1970-01-01 00:00:02.999 000000022706 1970-01-01 00:00:02.999 1970-01-01 00:00:02.999 000000022706 1970-01-01 00:00:02.999 1970-01-01 00:00:02.999 000000022706 1970-01-01 00:01:00.000 1970-01-01 00:01:00.000 0000003C0000 1970-01-01 00:01:00.000 1970-01-01 00:01:00.000 0000003C0000 1970-01-01 00:01:00.000 1970-01-01 00:01:00.000 0000003C0000 1970-01-01 00:01:00.000 1970-01-01 00:01:00.000 0000003C0000 1970-01-01 00:01:00.000 1970-01-01 00:01:00.000 0000003C0000 1970-01-01 00:01:00.000 1970-01-01 00:01:00.000 0000003C0000 1970-01-01 00:01:00.009 1970-01-01 00:01:00.009 0000003C005A 1970-01-01 00:01:00.099 1970-01-01 00:01:00.099 0000003C03DE 1970-01-01 00:01:00.100 1970-01-01 00:01:00.100 0000003C03E8 1970-01-01 00:01:00.900 1970-01-01 00:01:00.900 0000003C2328 1970-01-01 00:01:00.999 1970-01-01 00:01:00.999 0000003C2706 1970-01-01 01:00:00.000 1970-01-01 01:00:00.000 00000E100000 1970-01-01 01:00:00.000 1970-01-01 01:00:00.000 00000E100000 1970-01-01 01:00:00.000 1970-01-01 01:00:00.000 00000E100000 1970-01-01 01:00:00.000 1970-01-01 01:00:00.000 00000E100000 1970-01-01 01:00:00.000 1970-01-01 01:00:00.000 00000E100000 1970-01-01 01:00:00.000 1970-01-01 01:00:00.000 00000E100000 1970-01-01 01:00:00.009 1970-01-01 01:00:00.009 00000E10005A 1970-01-01 01:00:00.099 1970-01-01 01:00:00.099 00000E1003DE 1970-01-01 01:00:00.100 1970-01-01 01:00:00.100 00000E1003E8 1970-01-01 01:00:00.900 1970-01-01 01:00:00.900 00000E102328 1970-01-01 01:00:00.990 1970-01-01 01:00:00.990 00000E1026AC 1970-01-01 01:00:00.999 1970-01-01 01:00:00.999 00000E102706 1970-01-01 01:00:00.999 1970-01-01 01:00:00.999 00000E102706 1970-01-01 01:00:00.999 1970-01-01 01:00:00.999 00000E102706 1970-01-01 01:00:00.999 1970-01-01 01:00:00.999 00000E102706 2001-01-01 23:59:58.000 2001-01-01 23:59:58.000 3A5119FE0000 2001-01-01 23:59:58.000 2001-01-01 23:59:58.000 3A5119FE0000 2001-01-01 23:59:58.000 2001-01-01 23:59:58.000 3A5119FE0000 2001-01-01 23:59:58.000 2001-01-01 23:59:58.000 3A5119FE0000 2001-01-01 23:59:58.000 2001-01-01 23:59:58.000 3A5119FE0000 2001-01-01 23:59:58.000 2001-01-01 23:59:58.000 3A5119FE0000 2001-01-01 23:59:58.009 2001-01-01 23:59:58.009 3A5119FE005A 2001-01-01 23:59:58.099 2001-01-01 23:59:58.099 3A5119FE03DE 2001-01-01 23:59:58.100 2001-01-01 23:59:58.100 3A5119FE03E8 2001-01-01 23:59:58.900 2001-01-01 23:59:58.900 3A5119FE2328 2001-01-01 23:59:58.990 2001-01-01 23:59:58.990 3A5119FE26AC 2001-01-01 23:59:58.999 2001-01-01 23:59:58.999 3A5119FE2706 2001-01-01 23:59:58.999 2001-01-01 23:59:58.999 3A5119FE2706 2001-01-01 23:59:58.999 2001-01-01 23:59:58.999 3A5119FE2706 2001-01-01 23:59:58.999 2001-01-01 23:59:58.999 3A5119FE2706 2001-01-01 23:59:59.000 2001-01-01 23:59:59.000 3A5119FF0000 2037-01-01 23:59:58.000 2037-01-01 23:59:58.000 7E08357E0000 2037-01-01 23:59:58.000 2037-01-01 23:59:58.000 7E08357E0000 2037-01-01 23:59:58.000 2037-01-01 23:59:58.000 7E08357E0000 2037-01-01 23:59:58.000 2037-01-01 23:59:58.000 7E08357E0000 2037-01-01 23:59:58.000 2037-01-01 23:59:58.000 7E08357E0000 2037-01-01 23:59:58.000 2037-01-01 23:59:58.000 7E08357E0000 2037-01-01 23:59:58.009 2037-01-01 23:59:58.009 7E08357E005A 2037-01-01 23:59:58.099 2037-01-01 23:59:58.099 7E08357E03DE 2037-01-01 23:59:58.100 2037-01-01 23:59:58.100 7E08357E03E8 2037-01-01 23:59:58.900 2037-01-01 23:59:58.900 7E08357E2328 2037-01-01 23:59:58.990 2037-01-01 23:59:58.990 7E08357E26AC 2037-01-01 23:59:58.999 2037-01-01 23:59:58.999 7E08357E2706 2037-01-01 23:59:58.999 2037-01-01 23:59:58.999 7E08357E2706 2037-01-01 23:59:58.999 2037-01-01 23:59:58.999 7E08357E2706 2037-01-01 23:59:58.999 2037-01-01 23:59:58.999 7E08357E2706 2037-01-01 23:59:59.000 2037-01-01 23:59:59.000 7E08357F0000 SELECT a2, d2, HEX(WEIGHT_STRING(d2)) FROM t1 ORDER BY d2, a6; a2 d2 HEX(WEIGHT_STRING(d2)) 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 0000000100 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 0000000100 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 0000000100 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 0000000100 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 0000000100 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 0000000100 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 0000000100 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 0000000100 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 0000000100 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 0000000100 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 0000000100 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 0000000100 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 0000000100 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 0000000100 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 0000000100 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 0000000100 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 0000000100 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 0000000100 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 0000000100 1970-01-01 00:00:01.00 1970-01-01 00:00:01.00 0000000100 1970-01-01 00:00:01.09 1970-01-01 00:00:01.09 0000000109 1970-01-01 00:00:01.10 1970-01-01 00:00:01.10 000000010A 1970-01-01 00:00:01.90 1970-01-01 00:00:01.90 000000015A 1970-01-01 00:00:01.99 1970-01-01 00:00:01.99 0000000163 1970-01-01 00:00:01.99 1970-01-01 00:00:01.99 0000000163 1970-01-01 00:00:01.99 1970-01-01 00:00:01.99 0000000163 1970-01-01 00:00:01.99 1970-01-01 00:00:01.99 0000000163 1970-01-01 00:00:01.99 1970-01-01 00:00:01.99 0000000163 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 0000000200 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 0000000200 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 0000000200 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 0000000200 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 0000000200 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 0000000200 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 0000000200 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 0000000200 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 0000000200 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 0000000200 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 0000000200 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 0000000200 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 0000000200 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 0000000200 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 0000000200 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 0000000200 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 0000000200 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 0000000200 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 0000000200 1970-01-01 00:00:02.00 1970-01-01 00:00:02.00 0000000200 1970-01-01 00:00:02.09 1970-01-01 00:00:02.09 0000000209 1970-01-01 00:00:02.09 1970-01-01 00:00:02.09 0000000209 1970-01-01 00:00:02.10 1970-01-01 00:00:02.10 000000020A 1970-01-01 00:00:02.90 1970-01-01 00:00:02.90 000000025A 1970-01-01 00:00:02.99 1970-01-01 00:00:02.99 0000000263 1970-01-01 00:00:02.99 1970-01-01 00:00:02.99 0000000263 1970-01-01 00:00:02.99 1970-01-01 00:00:02.99 0000000263 1970-01-01 00:00:02.99 1970-01-01 00:00:02.99 0000000263 1970-01-01 00:00:02.99 1970-01-01 00:00:02.99 0000000263 1970-01-01 00:01:00.00 1970-01-01 00:01:00.00 0000003C00 1970-01-01 00:01:00.00 1970-01-01 00:01:00.00 0000003C00 1970-01-01 00:01:00.00 1970-01-01 00:01:00.00 0000003C00 1970-01-01 00:01:00.00 1970-01-01 00:01:00.00 0000003C00 1970-01-01 00:01:00.00 1970-01-01 00:01:00.00 0000003C00 1970-01-01 00:01:00.00 1970-01-01 00:01:00.00 0000003C00 1970-01-01 00:01:00.00 1970-01-01 00:01:00.00 0000003C00 1970-01-01 00:01:00.09 1970-01-01 00:01:00.09 0000003C09 1970-01-01 00:01:00.10 1970-01-01 00:01:00.10 0000003C0A 1970-01-01 00:01:00.90 1970-01-01 00:01:00.90 0000003C5A 1970-01-01 00:01:00.99 1970-01-01 00:01:00.99 0000003C63 1970-01-01 01:00:00.00 1970-01-01 01:00:00.00 00000E1000 1970-01-01 01:00:00.00 1970-01-01 01:00:00.00 00000E1000 1970-01-01 01:00:00.00 1970-01-01 01:00:00.00 00000E1000 1970-01-01 01:00:00.00 1970-01-01 01:00:00.00 00000E1000 1970-01-01 01:00:00.00 1970-01-01 01:00:00.00 00000E1000 1970-01-01 01:00:00.00 1970-01-01 01:00:00.00 00000E1000 1970-01-01 01:00:00.00 1970-01-01 01:00:00.00 00000E1000 1970-01-01 01:00:00.09 1970-01-01 01:00:00.09 00000E1009 1970-01-01 01:00:00.10 1970-01-01 01:00:00.10 00000E100A 1970-01-01 01:00:00.90 1970-01-01 01:00:00.90 00000E105A 1970-01-01 01:00:00.99 1970-01-01 01:00:00.99 00000E1063 1970-01-01 01:00:00.99 1970-01-01 01:00:00.99 00000E1063 1970-01-01 01:00:00.99 1970-01-01 01:00:00.99 00000E1063 1970-01-01 01:00:00.99 1970-01-01 01:00:00.99 00000E1063 1970-01-01 01:00:00.99 1970-01-01 01:00:00.99 00000E1063 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 3A5119FE00 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 3A5119FE00 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 3A5119FE00 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 3A5119FE00 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 3A5119FE00 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 3A5119FE00 2001-01-01 23:59:58.00 2001-01-01 23:59:58.00 3A5119FE00 2001-01-01 23:59:58.09 2001-01-01 23:59:58.09 3A5119FE09 2001-01-01 23:59:58.10 2001-01-01 23:59:58.10 3A5119FE0A 2001-01-01 23:59:58.90 2001-01-01 23:59:58.90 3A5119FE5A 2001-01-01 23:59:58.99 2001-01-01 23:59:58.99 3A5119FE63 2001-01-01 23:59:58.99 2001-01-01 23:59:58.99 3A5119FE63 2001-01-01 23:59:58.99 2001-01-01 23:59:58.99 3A5119FE63 2001-01-01 23:59:58.99 2001-01-01 23:59:58.99 3A5119FE63 2001-01-01 23:59:58.99 2001-01-01 23:59:58.99 3A5119FE63 2001-01-01 23:59:59.00 2001-01-01 23:59:59.00 3A5119FF00 2037-01-01 23:59:58.00 2037-01-01 23:59:58.00 7E08357E00 2037-01-01 23:59:58.00 2037-01-01 23:59:58.00 7E08357E00 2037-01-01 23:59:58.00 2037-01-01 23:59:58.00 7E08357E00 2037-01-01 23:59:58.00 2037-01-01 23:59:58.00 7E08357E00 2037-01-01 23:59:58.00 2037-01-01 23:59:58.00 7E08357E00 2037-01-01 23:59:58.00 2037-01-01 23:59:58.00 7E08357E00 2037-01-01 23:59:58.00 2037-01-01 23:59:58.00 7E08357E00 2037-01-01 23:59:58.09 2037-01-01 23:59:58.09 7E08357E09 2037-01-01 23:59:58.10 2037-01-01 23:59:58.10 7E08357E0A 2037-01-01 23:59:58.90 2037-01-01 23:59:58.90 7E08357E5A 2037-01-01 23:59:58.99 2037-01-01 23:59:58.99 7E08357E63 2037-01-01 23:59:58.99 2037-01-01 23:59:58.99 7E08357E63 2037-01-01 23:59:58.99 2037-01-01 23:59:58.99 7E08357E63 2037-01-01 23:59:58.99 2037-01-01 23:59:58.99 7E08357E63 2037-01-01 23:59:58.99 2037-01-01 23:59:58.99 7E08357E63 2037-01-01 23:59:59.00 2037-01-01 23:59:59.00 7E08357F00 SELECT a1, d1, HEX(WEIGHT_STRING(d1)) FROM t1 ORDER BY d1, a6; a1 d1 HEX(WEIGHT_STRING(d1)) 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 0000000100 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 0000000100 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 0000000100 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 0000000100 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 0000000100 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 0000000100 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 0000000100 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 0000000100 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 0000000100 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 0000000100 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 0000000100 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 0000000100 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 0000000100 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 0000000100 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 0000000100 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 0000000100 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 0000000100 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 0000000100 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 0000000100 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 0000000100 1970-01-01 00:00:01.0 1970-01-01 00:00:01.0 0000000100 1970-01-01 00:00:01.1 1970-01-01 00:00:01.1 000000010A 1970-01-01 00:00:01.9 1970-01-01 00:00:01.9 000000015A 1970-01-01 00:00:01.9 1970-01-01 00:00:01.9 000000015A 1970-01-01 00:00:01.9 1970-01-01 00:00:01.9 000000015A 1970-01-01 00:00:01.9 1970-01-01 00:00:01.9 000000015A 1970-01-01 00:00:01.9 1970-01-01 00:00:01.9 000000015A 1970-01-01 00:00:01.9 1970-01-01 00:00:01.9 000000015A 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 0000000200 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 0000000200 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 0000000200 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 0000000200 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 0000000200 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 0000000200 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 0000000200 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 0000000200 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 0000000200 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 0000000200 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 0000000200 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 0000000200 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 0000000200 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 0000000200 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 0000000200 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 0000000200 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 0000000200 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 0000000200 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 0000000200 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 0000000200 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 0000000200 1970-01-01 00:00:02.0 1970-01-01 00:00:02.0 0000000200 1970-01-01 00:00:02.1 1970-01-01 00:00:02.1 000000020A 1970-01-01 00:00:02.9 1970-01-01 00:00:02.9 000000025A 1970-01-01 00:00:02.9 1970-01-01 00:00:02.9 000000025A 1970-01-01 00:00:02.9 1970-01-01 00:00:02.9 000000025A 1970-01-01 00:00:02.9 1970-01-01 00:00:02.9 000000025A 1970-01-01 00:00:02.9 1970-01-01 00:00:02.9 000000025A 1970-01-01 00:00:02.9 1970-01-01 00:00:02.9 000000025A 1970-01-01 00:01:00.0 1970-01-01 00:01:00.0 0000003C00 1970-01-01 00:01:00.0 1970-01-01 00:01:00.0 0000003C00 1970-01-01 00:01:00.0 1970-01-01 00:01:00.0 0000003C00 1970-01-01 00:01:00.0 1970-01-01 00:01:00.0 0000003C00 1970-01-01 00:01:00.0 1970-01-01 00:01:00.0 0000003C00 1970-01-01 00:01:00.0 1970-01-01 00:01:00.0 0000003C00 1970-01-01 00:01:00.0 1970-01-01 00:01:00.0 0000003C00 1970-01-01 00:01:00.0 1970-01-01 00:01:00.0 0000003C00 1970-01-01 00:01:00.1 1970-01-01 00:01:00.1 0000003C0A 1970-01-01 00:01:00.9 1970-01-01 00:01:00.9 0000003C5A 1970-01-01 00:01:00.9 1970-01-01 00:01:00.9 0000003C5A 1970-01-01 01:00:00.0 1970-01-01 01:00:00.0 00000E1000 1970-01-01 01:00:00.0 1970-01-01 01:00:00.0 00000E1000 1970-01-01 01:00:00.0 1970-01-01 01:00:00.0 00000E1000 1970-01-01 01:00:00.0 1970-01-01 01:00:00.0 00000E1000 1970-01-01 01:00:00.0 1970-01-01 01:00:00.0 00000E1000 1970-01-01 01:00:00.0 1970-01-01 01:00:00.0 00000E1000 1970-01-01 01:00:00.0 1970-01-01 01:00:00.0 00000E1000 1970-01-01 01:00:00.0 1970-01-01 01:00:00.0 00000E1000 1970-01-01 01:00:00.1 1970-01-01 01:00:00.1 00000E100A 1970-01-01 01:00:00.9 1970-01-01 01:00:00.9 00000E105A 1970-01-01 01:00:00.9 1970-01-01 01:00:00.9 00000E105A 1970-01-01 01:00:00.9 1970-01-01 01:00:00.9 00000E105A 1970-01-01 01:00:00.9 1970-01-01 01:00:00.9 00000E105A 1970-01-01 01:00:00.9 1970-01-01 01:00:00.9 00000E105A 1970-01-01 01:00:00.9 1970-01-01 01:00:00.9 00000E105A 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 3A5119FE00 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 3A5119FE00 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 3A5119FE00 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 3A5119FE00 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 3A5119FE00 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 3A5119FE00 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 3A5119FE00 2001-01-01 23:59:58.0 2001-01-01 23:59:58.0 3A5119FE00 2001-01-01 23:59:58.1 2001-01-01 23:59:58.1 3A5119FE0A 2001-01-01 23:59:58.9 2001-01-01 23:59:58.9 3A5119FE5A 2001-01-01 23:59:58.9 2001-01-01 23:59:58.9 3A5119FE5A 2001-01-01 23:59:58.9 2001-01-01 23:59:58.9 3A5119FE5A 2001-01-01 23:59:58.9 2001-01-01 23:59:58.9 3A5119FE5A 2001-01-01 23:59:58.9 2001-01-01 23:59:58.9 3A5119FE5A 2001-01-01 23:59:58.9 2001-01-01 23:59:58.9 3A5119FE5A 2001-01-01 23:59:59.0 2001-01-01 23:59:59.0 3A5119FF00 2037-01-01 23:59:58.0 2037-01-01 23:59:58.0 7E08357E00 2037-01-01 23:59:58.0 2037-01-01 23:59:58.0 7E08357E00 2037-01-01 23:59:58.0 2037-01-01 23:59:58.0 7E08357E00 2037-01-01 23:59:58.0 2037-01-01 23:59:58.0 7E08357E00 2037-01-01 23:59:58.0 2037-01-01 23:59:58.0 7E08357E00 2037-01-01 23:59:58.0 2037-01-01 23:59:58.0 7E08357E00 2037-01-01 23:59:58.0 2037-01-01 23:59:58.0 7E08357E00 2037-01-01 23:59:58.0 2037-01-01 23:59:58.0 7E08357E00 2037-01-01 23:59:58.1 2037-01-01 23:59:58.1 7E08357E0A 2037-01-01 23:59:58.9 2037-01-01 23:59:58.9 7E08357E5A 2037-01-01 23:59:58.9 2037-01-01 23:59:58.9 7E08357E5A 2037-01-01 23:59:58.9 2037-01-01 23:59:58.9 7E08357E5A 2037-01-01 23:59:58.9 2037-01-01 23:59:58.9 7E08357E5A 2037-01-01 23:59:58.9 2037-01-01 23:59:58.9 7E08357E5A 2037-01-01 23:59:58.9 2037-01-01 23:59:58.9 7E08357E5A 2037-01-01 23:59:59.0 2037-01-01 23:59:59.0 7E08357F00 SELECT a0, d0, HEX(WEIGHT_STRING(d0)) FROM t1 ORDER BY d0, a6; a0 d0 HEX(WEIGHT_STRING(d0)) 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:01. 1970-01-01 00:00:01 00000001 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:00:02. 1970-01-01 00:00:02 00000002 1970-01-01 00:01:00. 1970-01-01 00:01:00 0000003C 1970-01-01 00:01:00. 1970-01-01 00:01:00 0000003C 1970-01-01 00:01:00. 1970-01-01 00:01:00 0000003C 1970-01-01 00:01:00. 1970-01-01 00:01:00 0000003C 1970-01-01 00:01:00. 1970-01-01 00:01:00 0000003C 1970-01-01 00:01:00. 1970-01-01 00:01:00 0000003C 1970-01-01 00:01:00. 1970-01-01 00:01:00 0000003C 1970-01-01 00:01:00. 1970-01-01 00:01:00 0000003C 1970-01-01 00:01:00. 1970-01-01 00:01:00 0000003C 1970-01-01 00:01:00. 1970-01-01 00:01:00 0000003C 1970-01-01 00:01:00. 1970-01-01 00:01:00 0000003C 1970-01-01 01:00:00. 1970-01-01 01:00:00 00000E10 1970-01-01 01:00:00. 1970-01-01 01:00:00 00000E10 1970-01-01 01:00:00. 1970-01-01 01:00:00 00000E10 1970-01-01 01:00:00. 1970-01-01 01:00:00 00000E10 1970-01-01 01:00:00. 1970-01-01 01:00:00 00000E10 1970-01-01 01:00:00. 1970-01-01 01:00:00 00000E10 1970-01-01 01:00:00. 1970-01-01 01:00:00 00000E10 1970-01-01 01:00:00. 1970-01-01 01:00:00 00000E10 1970-01-01 01:00:00. 1970-01-01 01:00:00 00000E10 1970-01-01 01:00:00. 1970-01-01 01:00:00 00000E10 1970-01-01 01:00:00. 1970-01-01 01:00:00 00000E10 1970-01-01 01:00:00. 1970-01-01 01:00:00 00000E10 1970-01-01 01:00:00. 1970-01-01 01:00:00 00000E10 1970-01-01 01:00:00. 1970-01-01 01:00:00 00000E10 1970-01-01 01:00:00. 1970-01-01 01:00:00 00000E10 2001-01-01 23:59:58. 2001-01-01 23:59:58 3A5119FE 2001-01-01 23:59:58. 2001-01-01 23:59:58 3A5119FE 2001-01-01 23:59:58. 2001-01-01 23:59:58 3A5119FE 2001-01-01 23:59:58. 2001-01-01 23:59:58 3A5119FE 2001-01-01 23:59:58. 2001-01-01 23:59:58 3A5119FE 2001-01-01 23:59:58. 2001-01-01 23:59:58 3A5119FE 2001-01-01 23:59:58. 2001-01-01 23:59:58 3A5119FE 2001-01-01 23:59:58. 2001-01-01 23:59:58 3A5119FE 2001-01-01 23:59:58. 2001-01-01 23:59:58 3A5119FE 2001-01-01 23:59:58. 2001-01-01 23:59:58 3A5119FE 2001-01-01 23:59:58. 2001-01-01 23:59:58 3A5119FE 2001-01-01 23:59:58. 2001-01-01 23:59:58 3A5119FE 2001-01-01 23:59:58. 2001-01-01 23:59:58 3A5119FE 2001-01-01 23:59:58. 2001-01-01 23:59:58 3A5119FE 2001-01-01 23:59:58. 2001-01-01 23:59:58 3A5119FE 2001-01-01 23:59:59. 2001-01-01 23:59:59 3A5119FF 2037-01-01 23:59:58. 2037-01-01 23:59:58 7E08357E 2037-01-01 23:59:58. 2037-01-01 23:59:58 7E08357E 2037-01-01 23:59:58. 2037-01-01 23:59:58 7E08357E 2037-01-01 23:59:58. 2037-01-01 23:59:58 7E08357E 2037-01-01 23:59:58. 2037-01-01 23:59:58 7E08357E 2037-01-01 23:59:58. 2037-01-01 23:59:58 7E08357E 2037-01-01 23:59:58. 2037-01-01 23:59:58 7E08357E 2037-01-01 23:59:58. 2037-01-01 23:59:58 7E08357E 2037-01-01 23:59:58. 2037-01-01 23:59:58 7E08357E 2037-01-01 23:59:58. 2037-01-01 23:59:58 7E08357E 2037-01-01 23:59:58. 2037-01-01 23:59:58 7E08357E 2037-01-01 23:59:58. 2037-01-01 23:59:58 7E08357E 2037-01-01 23:59:58. 2037-01-01 23:59:58 7E08357E 2037-01-01 23:59:58. 2037-01-01 23:59:58 7E08357E 2037-01-01 23:59:58. 2037-01-01 23:59:58 7E08357E 2037-01-01 23:59:59. 2037-01-01 23:59:59 7E08357F CREATE VIEW v1 AS SELECT a6, d0, d1, d2, d3, d4, d5, d6, HEX(WEIGHT_STRING(d0)) as wst0, HEX(WEIGHT_STRING(d1)) as wst1, HEX(WEIGHT_STRING(d2)) as wst2, HEX(WEIGHT_STRING(d3)) as wst3, HEX(WEIGHT_STRING(d4)) as wst4, HEX(WEIGHT_STRING(d5)) as wst5, HEX(WEIGHT_STRING(d6)) as wst6 FROM t1; SELECT * FROM v1 WHERE a6 LIKE '%.999999' ORDER BY a6, d6;; a6 1970-01-01 00:00:01.999999 d0 1970-01-01 00:00:01 d1 1970-01-01 00:00:01.9 d2 1970-01-01 00:00:01.99 d3 1970-01-01 00:00:01.999 d4 1970-01-01 00:00:01.9999 d5 1970-01-01 00:00:01.99999 d6 1970-01-01 00:00:01.999999 wst0 00000001 wst1 000000015A wst2 0000000163 wst3 000000012706 wst4 00000001270F wst5 000000010F4236 wst6 000000010F423F a6 1970-01-01 00:00:02.999999 d0 1970-01-01 00:00:02 d1 1970-01-01 00:00:02.9 d2 1970-01-01 00:00:02.99 d3 1970-01-01 00:00:02.999 d4 1970-01-01 00:00:02.9999 d5 1970-01-01 00:00:02.99999 d6 1970-01-01 00:00:02.999999 wst0 00000002 wst1 000000025A wst2 0000000263 wst3 000000022706 wst4 00000002270F wst5 000000020F4236 wst6 000000020F423F a6 1970-01-01 00:01:00.999999 d0 1970-01-01 00:01:00 d1 1970-01-01 00:01:00.9 d2 1970-01-01 00:01:00.99 d3 1970-01-01 00:01:00.999 d4 1970-01-01 00:01:00.9999 d5 1970-01-01 00:01:00.99999 d6 1970-01-01 00:01:00.999999 wst0 0000003C wst1 0000003C5A wst2 0000003C63 wst3 0000003C2706 wst4 0000003C270F wst5 0000003C0F4236 wst6 0000003C0F423F a6 1970-01-01 01:00:00.999999 d0 1970-01-01 01:00:00 d1 1970-01-01 01:00:00.9 d2 1970-01-01 01:00:00.99 d3 1970-01-01 01:00:00.999 d4 1970-01-01 01:00:00.9999 d5 1970-01-01 01:00:00.99999 d6 1970-01-01 01:00:00.999999 wst0 00000E10 wst1 00000E105A wst2 00000E1063 wst3 00000E102706 wst4 00000E10270F wst5 00000E100F4236 wst6 00000E100F423F a6 2001-01-01 23:59:58.999999 d0 2001-01-01 23:59:58 d1 2001-01-01 23:59:58.9 d2 2001-01-01 23:59:58.99 d3 2001-01-01 23:59:58.999 d4 2001-01-01 23:59:58.9999 d5 2001-01-01 23:59:58.99999 d6 2001-01-01 23:59:58.999999 wst0 3A5119FE wst1 3A5119FE5A wst2 3A5119FE63 wst3 3A5119FE2706 wst4 3A5119FE270F wst5 3A5119FE0F4236 wst6 3A5119FE0F423F a6 2037-01-01 23:59:58.999999 d0 2037-01-01 23:59:58 d1 2037-01-01 23:59:58.9 d2 2037-01-01 23:59:58.99 d3 2037-01-01 23:59:58.999 d4 2037-01-01 23:59:58.9999 d5 2037-01-01 23:59:58.99999 d6 2037-01-01 23:59:58.999999 wst0 7E08357E wst1 7E08357E5A wst2 7E08357E63 wst3 7E08357E2706 wst4 7E08357E270F wst5 7E08357E0F4236 wst6 7E08357E0F423F SELECT * FROM v1 WHERE a6 LIKE '%.000000' ORDER BY a6, d6;; a6 1970-01-01 00:00:01.000000 d0 1970-01-01 00:00:01 d1 1970-01-01 00:00:01.0 d2 1970-01-01 00:00:01.00 d3 1970-01-01 00:00:01.000 d4 1970-01-01 00:00:01.0000 d5 1970-01-01 00:00:01.00000 d6 1970-01-01 00:00:01.000000 wst0 00000001 wst1 0000000100 wst2 0000000100 wst3 000000010000 wst4 000000010000 wst5 00000001000000 wst6 00000001000000 a6 1970-01-01 00:00:02.000000 d0 1970-01-01 00:00:02 d1 1970-01-01 00:00:02.0 d2 1970-01-01 00:00:02.00 d3 1970-01-01 00:00:02.000 d4 1970-01-01 00:00:02.0000 d5 1970-01-01 00:00:02.00000 d6 1970-01-01 00:00:02.000000 wst0 00000002 wst1 0000000200 wst2 0000000200 wst3 000000020000 wst4 000000020000 wst5 00000002000000 wst6 00000002000000 a6 2001-01-01 23:59:59.000000 d0 2001-01-01 23:59:59 d1 2001-01-01 23:59:59.0 d2 2001-01-01 23:59:59.00 d3 2001-01-01 23:59:59.000 d4 2001-01-01 23:59:59.0000 d5 2001-01-01 23:59:59.00000 d6 2001-01-01 23:59:59.000000 wst0 3A5119FF wst1 3A5119FF00 wst2 3A5119FF00 wst3 3A5119FF0000 wst4 3A5119FF0000 wst5 3A5119FF000000 wst6 3A5119FF000000 a6 2037-01-01 23:59:59.000000 d0 2037-01-01 23:59:59 d1 2037-01-01 23:59:59.0 d2 2037-01-01 23:59:59.00 d3 2037-01-01 23:59:59.000 d4 2037-01-01 23:59:59.0000 d5 2037-01-01 23:59:59.00000 d6 2037-01-01 23:59:59.000000 wst0 7E08357F wst1 7E08357F00 wst2 7E08357F00 wst3 7E08357F0000 wst4 7E08357F0000 wst5 7E08357F000000 wst6 7E08357F000000 SELECT * FROM v1 WHERE a6 LIKE '%.100000' ORDER BY a6, d6;; a6 1970-01-01 00:00:01.100000 d0 1970-01-01 00:00:01 d1 1970-01-01 00:00:01.1 d2 1970-01-01 00:00:01.10 d3 1970-01-01 00:00:01.100 d4 1970-01-01 00:00:01.1000 d5 1970-01-01 00:00:01.10000 d6 1970-01-01 00:00:01.100000 wst0 00000001 wst1 000000010A wst2 000000010A wst3 0000000103E8 wst4 0000000103E8 wst5 000000010186A0 wst6 000000010186A0 a6 1970-01-01 00:00:02.100000 d0 1970-01-01 00:00:02 d1 1970-01-01 00:00:02.1 d2 1970-01-01 00:00:02.10 d3 1970-01-01 00:00:02.100 d4 1970-01-01 00:00:02.1000 d5 1970-01-01 00:00:02.10000 d6 1970-01-01 00:00:02.100000 wst0 00000002 wst1 000000020A wst2 000000020A wst3 0000000203E8 wst4 0000000203E8 wst5 000000020186A0 wst6 000000020186A0 a6 1970-01-01 00:01:00.100000 d0 1970-01-01 00:01:00 d1 1970-01-01 00:01:00.1 d2 1970-01-01 00:01:00.10 d3 1970-01-01 00:01:00.100 d4 1970-01-01 00:01:00.1000 d5 1970-01-01 00:01:00.10000 d6 1970-01-01 00:01:00.100000 wst0 0000003C wst1 0000003C0A wst2 0000003C0A wst3 0000003C03E8 wst4 0000003C03E8 wst5 0000003C0186A0 wst6 0000003C0186A0 a6 1970-01-01 01:00:00.100000 d0 1970-01-01 01:00:00 d1 1970-01-01 01:00:00.1 d2 1970-01-01 01:00:00.10 d3 1970-01-01 01:00:00.100 d4 1970-01-01 01:00:00.1000 d5 1970-01-01 01:00:00.10000 d6 1970-01-01 01:00:00.100000 wst0 00000E10 wst1 00000E100A wst2 00000E100A wst3 00000E1003E8 wst4 00000E1003E8 wst5 00000E100186A0 wst6 00000E100186A0 a6 2001-01-01 23:59:58.100000 d0 2001-01-01 23:59:58 d1 2001-01-01 23:59:58.1 d2 2001-01-01 23:59:58.10 d3 2001-01-01 23:59:58.100 d4 2001-01-01 23:59:58.1000 d5 2001-01-01 23:59:58.10000 d6 2001-01-01 23:59:58.100000 wst0 3A5119FE wst1 3A5119FE0A wst2 3A5119FE0A wst3 3A5119FE03E8 wst4 3A5119FE03E8 wst5 3A5119FE0186A0 wst6 3A5119FE0186A0 a6 2037-01-01 23:59:58.100000 d0 2037-01-01 23:59:58 d1 2037-01-01 23:59:58.1 d2 2037-01-01 23:59:58.10 d3 2037-01-01 23:59:58.100 d4 2037-01-01 23:59:58.1000 d5 2037-01-01 23:59:58.10000 d6 2037-01-01 23:59:58.100000 wst0 7E08357E wst1 7E08357E0A wst2 7E08357E0A wst3 7E08357E03E8 wst4 7E08357E03E8 wst5 7E08357E0186A0 wst6 7E08357E0186A0 DROP VIEW v1; DROP TABLE t1; SET time_zone=default; # # Testing bad FSPs # CREATE TABLE t1 (a TIMESTAMP(-1)); 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 '-1))' at line 1 CREATE TABLE t1 (a TIMESTAMP(7)); ERROR 42000: Too-big precision 7 specified for 'a'. Maximum is 6. CREATE TABLE t1 (a TIMESTAMP(31)); ERROR 42000: Too-big precision 31 specified for 'a'. Maximum is 6. # # Testing rounding when altering TIMESTAMP(N) to a smaller size # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999999'); ALTER TABLE t1 MODIFY a TIMESTAMP(5); SELECT * FROM t1; a 2001-01-01 10:10:11.00000 DROP TABLE t1; CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.999999'); ALTER TABLE t1 MODIFY a TIME; SELECT * FROM t1; a 10:10:11 DROP TABLE t1; # # Testing rounding from VARCHAR and DATETIME(6) to TIMESTAMP(N) # CREATE TABLE t1 (a VARCHAR(32), t6 TIMESTAMP(6) NULL DEFAULT NULL, t5 TIMESTAMP(5) NULL DEFAULT NULL, t4 TIMESTAMP(4) NULL DEFAULT NULL, t3 TIMESTAMP(3) NULL DEFAULT NULL, t2 TIMESTAMP(2) NULL DEFAULT NULL, t1 TIMESTAMP(1) NULL DEFAULT NULL, t0 TIMESTAMP NULL DEFAULT NULL); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.999999'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.999994'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.999949'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.999499'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.994999'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.949999'); INSERT INTO t1 (a) VALUES ('2001-01-01 10:10:10.499999'); UPDATE t1 SET t0=a, t1=a, t2=a, t3=a, t4=a, t5=a, t6=a; SELECT * FROM t1;; a 2001-01-01 10:10:10.999999 t6 2001-01-01 10:10:10.999999 t5 2001-01-01 10:10:11.00000 t4 2001-01-01 10:10:11.0000 t3 2001-01-01 10:10:11.000 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 2001-01-01 10:10:10.999994 t6 2001-01-01 10:10:10.999994 t5 2001-01-01 10:10:10.99999 t4 2001-01-01 10:10:11.0000 t3 2001-01-01 10:10:11.000 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 2001-01-01 10:10:10.999949 t6 2001-01-01 10:10:10.999949 t5 2001-01-01 10:10:10.99995 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:11.000 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 2001-01-01 10:10:10.999499 t6 2001-01-01 10:10:10.999499 t5 2001-01-01 10:10:10.99950 t4 2001-01-01 10:10:10.9995 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 2001-01-01 10:10:10.994999 t6 2001-01-01 10:10:10.994999 t5 2001-01-01 10:10:10.99500 t4 2001-01-01 10:10:10.9950 t3 2001-01-01 10:10:10.995 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 2001-01-01 10:10:10.949999 t6 2001-01-01 10:10:10.949999 t5 2001-01-01 10:10:10.95000 t4 2001-01-01 10:10:10.9500 t3 2001-01-01 10:10:10.950 t2 2001-01-01 10:10:10.95 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:11 a 2001-01-01 10:10:10.499999 t6 2001-01-01 10:10:10.499999 t5 2001-01-01 10:10:10.50000 t4 2001-01-01 10:10:10.5000 t3 2001-01-01 10:10:10.500 t2 2001-01-01 10:10:10.50 t1 2001-01-01 10:10:10.5 t0 2001-01-01 10:10:10 ALTER TABLE t1 MODIFY a TIMESTAMP(6); UPDATE t1 SET t0=a, t1=a, t2=a, t3=a, t4=a, t5=a, t6=a; SELECT * FROM t1;; a 2001-01-01 10:10:10.999999 t6 2001-01-01 10:10:10.999999 t5 2001-01-01 10:10:11.00000 t4 2001-01-01 10:10:11.0000 t3 2001-01-01 10:10:11.000 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 2001-01-01 10:10:10.999994 t6 2001-01-01 10:10:10.999994 t5 2001-01-01 10:10:10.99999 t4 2001-01-01 10:10:11.0000 t3 2001-01-01 10:10:11.000 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 2001-01-01 10:10:10.999949 t6 2001-01-01 10:10:10.999949 t5 2001-01-01 10:10:10.99995 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:11.000 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 2001-01-01 10:10:10.999499 t6 2001-01-01 10:10:10.999499 t5 2001-01-01 10:10:10.99950 t4 2001-01-01 10:10:10.9995 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 2001-01-01 10:10:10.994999 t6 2001-01-01 10:10:10.994999 t5 2001-01-01 10:10:10.99500 t4 2001-01-01 10:10:10.9950 t3 2001-01-01 10:10:10.995 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 2001-01-01 10:10:10.949999 t6 2001-01-01 10:10:10.949999 t5 2001-01-01 10:10:10.95000 t4 2001-01-01 10:10:10.9500 t3 2001-01-01 10:10:10.950 t2 2001-01-01 10:10:10.95 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:11 a 2001-01-01 10:10:10.499999 t6 2001-01-01 10:10:10.499999 t5 2001-01-01 10:10:10.50000 t4 2001-01-01 10:10:10.5000 t3 2001-01-01 10:10:10.500 t2 2001-01-01 10:10:10.50 t1 2001-01-01 10:10:10.5 t0 2001-01-01 10:10:10 DROP TABLE t1; # # Testing rounding from TIMESTAMP(N) to BIGINT # CREATE TABLE t1 (a BIGINT, b TIMESTAMP(6) NULL DEFAULT NULL); INSERT INTO t1 (b) VALUES ('2001-01-01 10:10:59.500000'); INSERT INTO t1 (b) VALUES ('2001-01-01 10:10:10.500000'); INSERT INTO t1 (b) VALUES ('2001-01-01 10:10:10.499999'); UPDATE t1 SET a=b; SELECT * FROM t1; a b 20010101101100 2001-01-01 10:10:59.500000 20010101101011 2001-01-01 10:10:10.500000 20010101101010 2001-01-01 10:10:10.499999 DROP TABLE t1; # # Testing rounding from TIME(6) to TIMESTAMP(N) # SET timestamp=UNIX_TIMESTAMP('2001-01-01 00:00:00'); CREATE TABLE t1 (a TIME(6), t6 TIMESTAMP(6), t5 TIMESTAMP(5), t4 TIMESTAMP(4), t3 TIMESTAMP(3), t2 TIMESTAMP(2), t1 TIMESTAMP(1), t0 TIMESTAMP); INSERT INTO t1 (a) VALUES ('10:10:10.999999'); INSERT INTO t1 (a) VALUES ('10:10:10.999994'); INSERT INTO t1 (a) VALUES ('10:10:10.999949'); INSERT INTO t1 (a) VALUES ('10:10:10.999499'); INSERT INTO t1 (a) VALUES ('10:10:10.994999'); INSERT INTO t1 (a) VALUES ('10:10:10.949999'); INSERT INTO t1 (a) VALUES ('10:10:10.499999'); UPDATE t1 SET t0=a, t1=a, t2=a, t3=a, t4=a, t5=a, t6=a; SELECT * FROM t1;; a 10:10:10.999999 t6 2001-01-01 10:10:10.999999 t5 2001-01-01 10:10:11.00000 t4 2001-01-01 10:10:11.0000 t3 2001-01-01 10:10:11.000 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 10:10:10.999994 t6 2001-01-01 10:10:10.999994 t5 2001-01-01 10:10:10.99999 t4 2001-01-01 10:10:11.0000 t3 2001-01-01 10:10:11.000 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 10:10:10.999949 t6 2001-01-01 10:10:10.999949 t5 2001-01-01 10:10:10.99995 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:11.000 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 10:10:10.999499 t6 2001-01-01 10:10:10.999499 t5 2001-01-01 10:10:10.99950 t4 2001-01-01 10:10:10.9995 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 10:10:10.994999 t6 2001-01-01 10:10:10.994999 t5 2001-01-01 10:10:10.99500 t4 2001-01-01 10:10:10.9950 t3 2001-01-01 10:10:10.995 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 10:10:10.949999 t6 2001-01-01 10:10:10.949999 t5 2001-01-01 10:10:10.95000 t4 2001-01-01 10:10:10.9500 t3 2001-01-01 10:10:10.950 t2 2001-01-01 10:10:10.95 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:11 a 10:10:10.499999 t6 2001-01-01 10:10:10.499999 t5 2001-01-01 10:10:10.50000 t4 2001-01-01 10:10:10.5000 t3 2001-01-01 10:10:10.500 t2 2001-01-01 10:10:10.50 t1 2001-01-01 10:10:10.5 t0 2001-01-01 10:10:10 DROP TABLE t1; SET timestamp=default; # # Testing rounding from DECIMAL to TIMESTAMP(N) # CREATE TABLE t1 (a DECIMAL(30,6), t6 TIMESTAMP(6), t5 TIMESTAMP(5), t4 TIMESTAMP(4), t3 TIMESTAMP(3), t2 TIMESTAMP(2), t1 TIMESTAMP(1), t0 TIMESTAMP); INSERT INTO t1 (a) VALUES (20010101101010.999999); INSERT INTO t1 (a) VALUES (20010101101010.999994); INSERT INTO t1 (a) VALUES (20010101101010.999949); INSERT INTO t1 (a) VALUES (20010101101010.999499); INSERT INTO t1 (a) VALUES (20010101101010.994999); INSERT INTO t1 (a) VALUES (20010101101010.949999); INSERT INTO t1 (a) VALUES (20010101101010.499999); UPDATE t1 SET t0=a, t1=a, t2=a, t3=a, t4=a, t5=a, t6=a; SELECT * FROM t1;; a 20010101101010.999999 t6 2001-01-01 10:10:10.999999 t5 2001-01-01 10:10:11.00000 t4 2001-01-01 10:10:11.0000 t3 2001-01-01 10:10:11.000 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 20010101101010.999994 t6 2001-01-01 10:10:10.999994 t5 2001-01-01 10:10:10.99999 t4 2001-01-01 10:10:11.0000 t3 2001-01-01 10:10:11.000 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 20010101101010.999949 t6 2001-01-01 10:10:10.999949 t5 2001-01-01 10:10:10.99995 t4 2001-01-01 10:10:10.9999 t3 2001-01-01 10:10:11.000 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 20010101101010.999499 t6 2001-01-01 10:10:10.999499 t5 2001-01-01 10:10:10.99950 t4 2001-01-01 10:10:10.9995 t3 2001-01-01 10:10:10.999 t2 2001-01-01 10:10:11.00 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 20010101101010.994999 t6 2001-01-01 10:10:10.994999 t5 2001-01-01 10:10:10.99500 t4 2001-01-01 10:10:10.9950 t3 2001-01-01 10:10:10.995 t2 2001-01-01 10:10:10.99 t1 2001-01-01 10:10:11.0 t0 2001-01-01 10:10:11 a 20010101101010.949999 t6 2001-01-01 10:10:10.949999 t5 2001-01-01 10:10:10.95000 t4 2001-01-01 10:10:10.9500 t3 2001-01-01 10:10:10.950 t2 2001-01-01 10:10:10.95 t1 2001-01-01 10:10:10.9 t0 2001-01-01 10:10:11 a 20010101101010.499999 t6 2001-01-01 10:10:10.499999 t5 2001-01-01 10:10:10.50000 t4 2001-01-01 10:10:10.5000 t3 2001-01-01 10:10:10.500 t2 2001-01-01 10:10:10.50 t1 2001-01-01 10:10:10.5 t0 2001-01-01 10:10:10 DROP TABLE t1; # # Testing INSERT, ORDER, KEY, BETWEEN, comparison # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000000'); INSERT INTO t1 VALUES ('0000-00-00 23:59:59.999999'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('2000-01-01 01:02:03'); INSERT INTO t1 VALUES ('2000-01-01 01:02:03.4'); INSERT INTO t1 VALUES ('2000-01-01 01:02:03.45'); INSERT INTO t1 VALUES ('2000-01-01 01:02:03.456'); INSERT INTO t1 VALUES ('2000-01-01 01:02:03.4567'); INSERT INTO t1 VALUES ('2000-01-01 01:02:03.45678'); INSERT INTO t1 VALUES ('2000-01-01 01:02:03.4567891'); INSERT INTO t1 VALUES ('9999-12-31 23:59:59.000000'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT * FROM t1; a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 2000-01-01 01:02:03.000000 2000-01-01 01:02:03.400000 2000-01-01 01:02:03.450000 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456780 2000-01-01 01:02:03.456789 0000-00-00 00:00:00.000000 SELECT * FROM t1 ORDER BY a DESC; a 2000-01-01 01:02:03.456789 2000-01-01 01:02:03.456780 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.450000 2000-01-01 01:02:03.400000 2000-01-01 01:02:03.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 SELECT * FROM t1 WHERE a='2000-01-01 01:02:03.45'; a 2000-01-01 01:02:03.450000 SELECT * FROM t1 WHERE a='2000-01-01 01:02:03.4567'; a 2000-01-01 01:02:03.456700 SELECT * FROM t1 WHERE a='2000-01-01 01:02:03.45670'; a 2000-01-01 01:02:03.456700 SELECT * FROM t1 WHERE a='2000-01-01 01:02:03.456700'; a 2000-01-01 01:02:03.456700 SELECT * FROM t1 WHERE a BETWEEN '2000-01-01 01:02:00' AND '2000-01-01 01:03:00'; a 2000-01-01 01:02:03.000000 2000-01-01 01:02:03.400000 2000-01-01 01:02:03.450000 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456780 2000-01-01 01:02:03.456789 ALTER TABLE t1 ADD KEY(a); SELECT * FROM t1 ORDER BY a; a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 2000-01-01 01:02:03.000000 2000-01-01 01:02:03.400000 2000-01-01 01:02:03.450000 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456780 2000-01-01 01:02:03.456789 SELECT * FROM t1 ORDER BY a DESC; a 2000-01-01 01:02:03.456789 2000-01-01 01:02:03.456780 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.450000 2000-01-01 01:02:03.400000 2000-01-01 01:02:03.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 EXPLAIN SELECT * FROM t1 WHERE a='2000-01-01 01:02:03.456700'; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL ref a a 7 const 1 100.00 Using index Warnings: Note 1003 /* select#1 */ select `test`.`t1`.`a` AS `a` from `test`.`t1` where (`test`.`t1`.`a` = '2000-01-01 01:02:03.456700') SELECT * FROM t1 WHERE a='2000-01-01 01:02:03.456700'; a 2000-01-01 01:02:03.456700 SELECT * FROM t1 WHERE a BETWEEN '2000-01-01 01:02:00' AND '2000-01-01 01:03:00'; a 2000-01-01 01:02:03.000000 2000-01-01 01:02:03.400000 2000-01-01 01:02:03.450000 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456780 2000-01-01 01:02:03.456789 SELECT * FROM t1 WHERE a BETWEEN TIMESTAMP'2000-01-01 01:02:03.456' AND '2000-01-01 01:02:03.45678'; a 2000-01-01 01:02:03.456000 2000-01-01 01:02:03.456700 2000-01-01 01:02:03.456780 DROP TABLE t1; # # Testing range: stored_field_cmp_to_item # CREATE TABLE t1 (a datetime(6), key(a)); INSERT INTO t1 VALUES ('2000-01-01 00:00:00'), ('2000-01-01 00:00:00'), ('2000-01-01 00:00:01'), ('2000-01-01 00:00:01'); SELECT * FROM t1 WHERE a >= 20000101000000; a 2000-01-01 00:00:00.000000 2000-01-01 00:00:00.000000 2000-01-01 00:00:01.000000 2000-01-01 00:00:01.000000 SELECT * FROM t1 WHERE a >= 20000101000000.0; a 2000-01-01 00:00:00.000000 2000-01-01 00:00:00.000000 2000-01-01 00:00:01.000000 2000-01-01 00:00:01.000000 UPDATE t1 SET a=ADDTIME(a, 0.000001); SELECT * FROM t1; a 2000-01-01 00:00:00.000001 2000-01-01 00:00:00.000001 2000-01-01 00:00:01.000001 2000-01-01 00:00:01.000001 SELECT * FROM t1 WHERE a >= 20000101000000.000001; a 2000-01-01 00:00:00.000001 2000-01-01 00:00:00.000001 2000-01-01 00:00:01.000001 2000-01-01 00:00:01.000001 DROP TABLE t1; # # Rare TIMESTAMP formats # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES (101.101); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (990101.102); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('990101.103'); INSERT INTO t1 VALUES (131.104); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('000131.105'); SELECT * FROM t1; a 2000-01-01 00:00:00.000000 1999-01-01 00:00:00.000000 1999-01-01 10:03:00.000000 2000-01-31 00:00:00.000000 2000-01-31 10:05:00.000000 DROP TABLE t1; # # Testing bad values # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('xxxx'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('1999-01-01 00:00:00.123456 xxx'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('1999-01-01 00:00:00 xxx'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('1999-01-01 xxx'); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES ('0000-00-00 00:00:00.123'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (0.123); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (0.123e0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (CAST('0000-00-00 00:00:00.123' AS DATETIME(6))); Warnings: Warning 1265 Data truncated for column 'a' at row 1 SELECT * FROM t1; a 0000-00-00 00:00:00.000000 1999-01-01 00:00:00.123456 1999-01-01 00:00:00.000000 1999-01-01 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing huge values # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ( 100000000000000000.1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ( 100000000000000000.1e0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-100000000000000000.1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-100000000000000000.1e0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (CAST(0xFFFFFFFF00000000 AS SIGNED)); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (CAST(0xFFFFFFFF00000000 AS UNSIGNED)); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT * FROM t1; a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing implicit CAST from TIME to TIMESTAMP # SET time_zone='+00:00'; SET @@timestamp=UNIX_TIMESTAMP('2008-01-03 10:20:30.1'); CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES (CURRENT_TIME), (CURRENT_TIME(6)); INSERT INTO t1 VALUES (TIME'08:00:00.123456'), (TIME'240:00:00.000001'); INSERT INTO t1 VALUES (TIME'-10:00:00.000001'), (TIME'-240:00:00.000001'); SELECT CURRENT_DATE, CURRENT_TIME(6); CURRENT_DATE CURRENT_TIME(6) 2008-01-03 10:20:30.100000 SELECT a, HEX(WEIGHT_STRING(a)) FROM t1; a HEX(WEIGHT_STRING(a)) 2008-01-03 10:20:30.000000 477CB6EE000000 2008-01-03 10:20:30.100000 477CB6EE0186A0 2008-01-03 08:00:00.123456 477C960001E240 2008-01-13 00:00:00.000001 47895480000001 2008-01-02 13:59:59.999999 477B98DF0F423F 2007-12-23 23:59:59.999999 476EF67F0F423F DELETE FROM t1; SET time_zone='-12:00'; INSERT INTO t1 VALUES (CURRENT_TIME), (CURRENT_TIME(6)); INSERT INTO t1 VALUES (TIME'08:00:00.123456'), (TIME'240:00:00.000001'); INSERT INTO t1 VALUES (TIME'-10:00:00.000001'), (TIME'-240:00:00.000001'); SELECT CURRENT_DATE, CURRENT_TIME(6); CURRENT_DATE CURRENT_TIME(6) 2008-01-02 22:20:30.100000 SELECT a, HEX(WEIGHT_STRING(a)) FROM t1; a HEX(WEIGHT_STRING(a)) 2008-01-02 22:20:30.000000 477CB6EE000000 2008-01-02 22:20:30.100000 477CB6EE0186A0 2008-01-02 08:00:00.123456 477BED4001E240 2008-01-12 00:00:00.000001 4788ABC0000001 2008-01-01 13:59:59.999999 477AF01F0F423F 2007-12-22 23:59:59.999999 476E4DBF0F423F SET time_zone='+00:00'; SELECT CURRENT_DATE, CURRENT_TIME(6); CURRENT_DATE CURRENT_TIME(6) 2008-01-03 10:20:30.100000 SELECT a, HEX(WEIGHT_STRING(a)) FROM t1; a HEX(WEIGHT_STRING(a)) 2008-01-03 10:20:30.000000 477CB6EE000000 2008-01-03 10:20:30.100000 477CB6EE0186A0 2008-01-02 20:00:00.123456 477BED4001E240 2008-01-12 12:00:00.000001 4788ABC0000001 2008-01-02 01:59:59.999999 477AF01F0F423F 2007-12-23 11:59:59.999999 476E4DBF0F423F DROP TABLE t1; SET time_zone=default; SET @@timestamp=default; # # Testing IN # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000001'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('2000-01-01 00:00:00.000000'); INSERT INTO t1 VALUES ('2000-01-01 00:00:00.000001'); INSERT INTO t1 VALUES ('2000-01-01 00:00:00.000002'); INSERT INTO t1 VALUES ('2000-01-01 10:00:00.000000'); INSERT INTO t1 VALUES ('2000-01-01 10:00:00.000001'); INSERT INTO t1 VALUES ('2000-01-01 10:00:00.000002'); INSERT INTO t1 VALUES ('2000-01-01 23:00:00.000000'); INSERT INTO t1 VALUES ('2000-01-01 23:00:00.000001'); INSERT INTO t1 VALUES ('2000-01-01 23:00:00.000002'); SELECT * FROM t1; a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 2000-01-01 00:00:00.000000 2000-01-01 00:00:00.000001 2000-01-01 00:00:00.000002 2000-01-01 10:00:00.000000 2000-01-01 10:00:00.000001 2000-01-01 10:00:00.000002 2000-01-01 23:00:00.000000 2000-01-01 23:00:00.000001 2000-01-01 23:00:00.000002 SELECT * FROM t1 WHERE a IN ('2000-01-01 00:00:00', '0000-00-00 00:00:00.000001', '2000-01-01 23:00:00.000002'); a 2000-01-01 00:00:00.000000 2000-01-01 23:00:00.000002 SELECT * FROM t1 WHERE a IN (0, 20000101000000, 20000101230000); a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 2000-01-01 00:00:00.000000 2000-01-01 23:00:00.000000 SELECT * FROM t1 WHERE a=0.1; a Warnings: Warning 1292 Incorrect datetime value: '0.1' for column 'a' at row 1 SELECT * FROM t1 WHERE a IN (0.1); a Warnings: Warning 1292 Incorrect datetime value: '0.1' for column 'a' at row 1 SELECT * FROM t1 WHERE a IN (20000101000000.000001, 20000101230000.000001); a 2000-01-01 00:00:00.000001 2000-01-01 23:00:00.000001 SELECT * FROM t1 WHERE a IN (0.000001, 20000101000000.000001, 20000101230000.000001); a Warnings: Warning 1292 Incorrect datetime value: '0.000001' for column 'a' at row 1 SELECT * FROM t1 WHERE a IN (0e0, 0.000001e0); a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 Warnings: Warning 1292 Incorrect datetime value: '0.000001' for column 'a' at row 1 # # Testing IN with index: involves field->store_packed() # ALTER TABLE t1 ADD KEY(a); SELECT * FROM t1 WHERE a IN ('2000-01-01 00:00:00', '0000-00-00 00:00:00.000001', '2000-01-01 23:00:00.000002'); a 2000-01-01 00:00:00.000000 2000-01-01 23:00:00.000002 Warnings: Warning 1292 Incorrect datetime value: '0000-00-00 00:00:00.000001' for column 'a' at row 1 SELECT * FROM t1 WHERE a IN (0, 20000101000000, 20000101230000); a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 2000-01-01 00:00:00.000000 2000-01-01 23:00:00.000000 SELECT * FROM t1 WHERE a IN (0.000001, 20000101000000.000001, 20000101230000.000001); a Warnings: Warning 1292 Incorrect datetime value: '0.000001' for column 'a' at row 1 SELECT * FROM t1 WHERE a IN (20000101000000.000001, 20000101230000.000001); a 2000-01-01 00:00:00.000001 2000-01-01 23:00:00.000001 SELECT * FROM t1 WHERE a IN (0e0, 0.000001e0); a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 Warnings: Warning 1292 Incorrect datetime value: '0.000001' for column 'a' at row 1 DROP TABLE t1; # # Testing CREATE TABLE LIKE # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); CREATE TABLE t2 LIKE t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2, t1; # # Testing CREATE TABLE .. SELECT # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); CREATE TABLE t2 AS SELECT * FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2, t1; # # Testing JOIN between TIMESTAMP(6) and TIMESTAMP(6) # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2000-01-01 00:01:03.1'); INSERT INTO t1 VALUES ('2000-01-01 00:01:03.12'); INSERT INTO t1 VALUES ('2000-01-01 00:01:03.123'); INSERT INTO t1 VALUES ('2000-01-01 00:01:03.1234'); INSERT INTO t1 VALUES ('2000-01-01 00:01:03.12345'); INSERT INTO t1 VALUES ('2000-01-01 00:01:03.123456'); CREATE TABLE t2 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t2 SELECT * FROM t1; SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123456 2000-01-01 00:01:03.123456 ALTER TABLE t1 ADD KEY(a); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123456 2000-01-01 00:01:03.123456 ALTER TABLE t2 ADD KEY(a); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123456 2000-01-01 00:01:03.123456 ALTER TABLE t1 DROP KEY a; SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.100000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.120000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123000 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123400 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123450 2000-01-01 00:01:03.123456 2000-01-01 00:01:03.123456 DROP TABLE t2; DROP TABLE t1; # # Testing JOIN between TIMESTAMP and TIMESTAMP(6) # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('0000-00-00 23:59:59.000000'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('2000-01-01 10:11:12.000000'); INSERT INTO t1 VALUES ('2000-01-01 10:11:12.000001'); INSERT INTO t1 VALUES ('2000-01-01 10:11:12.000002'); INSERT INTO t1 VALUES ('2000-01-01 10:11:13.000000'); INSERT INTO t1 VALUES ('2000-01-01 10:11:13.000001'); INSERT INTO t1 VALUES ('2000-01-01 10:11:13.000002'); INSERT INTO t1 VALUES ('2000-01-01 23:59:59.999999'); INSERT INTO t1 VALUES ('2000-01-01 23:59:59.000000'); CREATE TABLE t2 (a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP); INSERT INTO t2 VALUES ('2000-01-01 10:11:12'); INSERT INTO t2 VALUES ('2000-01-01 10:11:13'); INSERT INTO t2 VALUES ('0000-00-00 23:59:59'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t2 VALUES ('2000-01-01 23:59:59'); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00 2000-01-01 10:11:12.000000 2000-01-01 10:11:12 2000-01-01 10:11:13.000000 2000-01-01 10:11:13 2000-01-01 23:59:59.000000 2000-01-01 23:59:59 ALTER TABLE t1 ADD KEY(a); ALTER TABLE t2 ADD KEY(a); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00 2000-01-01 10:11:12.000000 2000-01-01 10:11:12 2000-01-01 10:11:13.000000 2000-01-01 10:11:13 2000-01-01 23:59:59.000000 2000-01-01 23:59:59 DROP TABLE t2, t1; # # Testing unique index # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), UNIQUE(a)); INSERT INTO t1 VALUES ('2000-01-01 00:01:02'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.1'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.12'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.123'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.1234'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.12345'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.12345'); ERROR 23000: Duplicate entry '2000-01-01 00:01:02.123450' for key 'a' DROP TABLE t1; # # Testing GROUP BY # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2000-01-01 00:01:02'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.0'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.01'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.010'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.02'); INSERT INTO t1 VALUES ('2000-01-01 00:01:02.020'); SELECT a, COUNT(*) FROM t1 GROUP BY a; a COUNT(*) 2000-01-01 00:01:02.000000 2 2000-01-01 00:01:02.010000 2 2000-01-01 00:01:02.020000 2 DROP TABLE t1; # # Testing MIN() and MAX() # CREATE TABLE t1 (a INT, b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES (1, '2001-01-01 00:01:02.000001'); INSERT INTO t1 VALUES (1, '2001-01-01 00:01:02'); INSERT INTO t1 VALUES (2, '2001-01-01 10:01:02'); INSERT INTO t1 VALUES (2, '2001-01-01 10:01:02.000001'); INSERT INTO t1 VALUES (3, '2001-01-01 10:11:02'); INSERT INTO t1 VALUES (3, '2001-01-01 10:11:02.000001'); SELECT MIN(b), MAX(b) FROM t1; MIN(b) MAX(b) 2001-01-01 00:01:02.000000 2001-01-01 10:11:02.000001 SELECT a, MIN(b), MAX(b) FROM t1 GROUP BY a; a MIN(b) MAX(b) 1 2001-01-01 00:01:02.000000 2001-01-01 00:01:02.000001 2 2001-01-01 10:01:02.000000 2001-01-01 10:01:02.000001 3 2001-01-01 10:11:02.000000 2001-01-01 10:11:02.000001 DROP TABLE t1; # # Testing LEAST # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.1'); SELECT LEAST(a, '2001-01-02 00:00:00.1') AS a FROM t1; a 2001-01-01 00:00:00.100000 SELECT LEAST(a, '2001-01-02 00:00:00.1') + 0 AS a FROM t1; a 20010101000000.1 SELECT CAST(LEAST(a, '2001-01-02 00:00:00.1') AS SIGNED) AS a FROM t1; a 20010101000000 SELECT CAST(LEAST(a, '2001-01-02 00:00:00.1') AS DECIMAL(30,6)) AS a FROM t1; a 20010101000000.100000 SELECT GREATEST(a, '2001-01-02 00:00:00.1') AS a FROM t1; a 2001-01-02 00:00:00.1 SELECT GREATEST(a, '2001-01-02 00:00:00.1') + 0 AS a FROM t1; a 20010102000000.1 SELECT CAST(GREATEST(a, '2001-01-02 00:00:00.1') AS SIGNED) AS a FROM t1; a 20010102000000 SELECT CAST(GREATEST(a, '2001-01-02 00:00:00.1') AS DECIMAL(30,6)) AS a FROM t1; a 20010102000000.100000 DROP TABLE t1; CREATE TABLE t1 (a TIMESTAMP(1) NOT NULL DEFAULT CURRENT_TIMESTAMP(1) ON UPDATE CURRENT_TIMESTAMP(1), b TIMESTAMP(2) NOT NULL DEFAULT '0000-00-00 00:00:00.000000'); CREATE TABLE t2 AS SELECT LEAST(a, b), GREATEST(a, b) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `LEAST(a, b)` timestamp(2) NOT NULL DEFAULT '0000-00-00 00:00:00.00', `GREATEST(a, b)` timestamp(2) NOT NULL DEFAULT '0000-00-00 00:00:00.00' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # # Testing INSERT, MAX and MIN values # '1970-01-01 00:00:01.000000' UTC to '2038-01-19 03:14:07.999999' UTC # SET time_zone='+00:00'; CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2038-01-19 03:14:07'); INSERT INTO t1 VALUES ('2038-01-19 03:14:07.999999'); INSERT INTO t1 VALUES ('2038-01-19 03:14:08'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('1970-01-01 00:00:00'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('1970-01-01 00:00:00.999999'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('1970-01-01 00:00:01'); SELECT * FROM t1; a 2038-01-19 03:14:07.000000 2038-01-19 03:14:07.999999 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 1970-01-01 00:00:01.000000 DROP TABLE t1; # # Testing bad values # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.1'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES ('0000-00-00 00:00:01.1'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (0.1); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (1.1); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (0.1e0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (1.1e0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (-0.1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-1.0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-1.1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-0.1e0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-1.0e0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-1.1e0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT * FROM t1; a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing integer INSERT value # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES (19990102); INSERT INTO t1 VALUES (19990102112233); INSERT INTO t1 VALUES (100000101112233); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (0); INSERT INTO t1 VALUES (-1); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT * FROM t1; a 1999-01-02 00:00:00.000000 1999-01-02 11:22:33.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing decimal INSERT values # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES (20010101223344.4); INSERT INTO t1 VALUES (20010101223344.45); INSERT INTO t1 VALUES (20010101223344.456); INSERT INTO t1 VALUES (20010101223344.4567); INSERT INTO t1 VALUES (20010101223344.45678); INSERT INTO t1 VALUES (20010101223344.456789); INSERT INTO t1 VALUES (20010101202030.4567894); INSERT INTO t1 VALUES (20010101202030.4567895); INSERT INTO t1 VALUES (20010101202030.4567896); INSERT INTO t1 VALUES (20010101202030.456789678); INSERT INTO t1 VALUES (200101018385959.000000); Warnings: Warning 1264 Out of range value for column 'a' at row 1 INSERT INTO t1 VALUES (-200101018385959.000000); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT * FROM t1; a 2001-01-01 22:33:44.400000 2001-01-01 22:33:44.450000 2001-01-01 22:33:44.456000 2001-01-01 22:33:44.456700 2001-01-01 22:33:44.456780 2001-01-01 22:33:44.456789 2001-01-01 20:20:30.456789 2001-01-01 20:20:30.456790 2001-01-01 20:20:30.456790 2001-01-01 20:20:30.456790 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing double INSERT values # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES (112.233e-3); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (112.223e-2); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (112.233e-1); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (112.233e0); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (112.233e1); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (112.233e2); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (112.233e3); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (112.233e4); Warnings: Warning 1265 Data truncated for column 'a' at row 1 INSERT INTO t1 VALUES (-123.456e0); Warnings: Warning 1264 Out of range value for column 'a' at row 1 SELECT * FROM t1; a 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 2000-01-12 00:00:00.000000 2000-11-22 00:00:00.000000 2001-12-23 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.000000 DROP TABLE t1; # # Testing UPDATE between TIMESTAMP(6) and TIMESTAMP/BIGINT/DECIMAL/DOUBLE # CREATE TABLE t1 (t0 TIMESTAMP, t6 TIMESTAMP(6), i BIGINT, d DECIMAL(20,6), f DOUBLE); INSERT INTO t1 (t0) VALUES ('2000-01-01 11:22:33'); UPDATE t1 SET t6=t0, i=t0, d=t0, f=t0; SELECT t6, i, d FROM t1; t6 i d 2000-01-01 11:22:33.000000 20000101112233 20000101112233.000000 UPDATE t1 SET t6='2001-02-02 11:22:33.1'; UPDATE t1 SET t0=t6, i=t6, d=t6, f=t6; SELECT * FROM t1; t0 t6 i d f 2001-02-02 11:22:33 2001-02-02 11:22:33.100000 20010202112233 20010202112233.100000 20010202112233.1 UPDATE t1 SET i=20000101112233, d=20001010112233.1, f=00001010112233.1; UPDATE t1 SET t6=i; SELECT t6 FROM t1; t6 2000-01-01 11:22:33.000000 UPDATE t1 SET t6=d; SELECT t6 FROM t1; t6 2000-10-10 11:22:33.100000 UPDATE t1 SET t6=f; SELECT t6 FROM t1; t6 2000-10-10 11:22:33.100000 DROP TABLE t1; # # Testing JOIN with comparison between TIMESTAMP(6) and DATE # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2000-01-01 00:00:00.000000'); INSERT INTO t1 VALUES ('2000-01-01 00:00:00.000001'); INSERT INTO t1 VALUES ('2000-01-02 00:00:00.000000'); CREATE TABLE t2 (a DATE); INSERT INTO t2 VALUES ('2000-01-01'); INSERT INTO t2 VALUES ('2000-01-02'); SELECT * FROM t1, t2 WHERE t1.a=t2.a ORDER BY t1.a, t2.a; a a 2000-01-01 00:00:00.000000 2000-01-01 2000-01-02 00:00:00.000000 2000-01-02 ALTER TABLE t2 MODIFY a TIMESTAMP(6); SELECT * FROM t1, t2 WHERE t1.a=CAST(t2.a AS DATE) ORDER BY t1.a, t2.a; a a 2000-01-01 00:00:00.000000 2000-01-01 00:00:00.000000 2000-01-02 00:00:00.000000 2000-01-02 00:00:00.000000 DROP TABLE t2; DROP TABLE t1; # # Testing JOIN with comparison between TIMESTAMP(6) and BIGINT # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2000-01-01 00:00:00'); INSERT INTO t1 VALUES ('2000-01-01 11:22:33'); INSERT INTO t1 VALUES ('2000-01-01 11:22:33.123'); CREATE TABLE t2 (b BIGINT); INSERT INTO t2 VALUES (20000101); INSERT INTO t2 VALUES (20000101112233); SELECT * FROM t1, t2 WHERE a=b; a b 2000-01-01 11:22:33.000000 20000101112233 DROP TABLE t1, t2; # # Testing JOIN with comparison between TIMESTAMP(6) and DECIMAL(20,6) # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 11:22:33'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123456'); CREATE TABLE t2 (b DECIMAL(20,6)); INSERT INTO t2 VALUES (20010101112233); INSERT INTO t2 VALUES (20010101112233.123); INSERT INTO t2 VALUES (20010101112233.123456); SELECT * FROM t1, t2 WHERE a=b; a b 2001-01-01 11:22:33.000000 20010101112233.000000 2001-01-01 11:22:33.123000 20010101112233.123000 2001-01-01 11:22:33.123456 20010101112233.123456 DROP TABLE t1, t2; # # Testing JOIN with comparison between TIMESTAMP(6) and DECIMAL(20,3) # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 11:22:33'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123456'); CREATE TABLE t2 (b DECIMAL(20,3)); INSERT INTO t2 VALUES (20010101112233); INSERT INTO t2 VALUES (20010101112233.123); SELECT * FROM t1, t2 WHERE a=b; a b 2001-01-01 11:22:33.000000 20010101112233.000 2001-01-01 11:22:33.123000 20010101112233.123 DROP TABLE t1, t2; # # Testing JOIN with comparison between TIMESTAMP(6) and DOUBLE # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2000-01-01 11:22:33'); INSERT INTO t1 VALUES ('2000-01-01 11:22:33.1'); INSERT INTO t1 VALUES ('2000-01-01 11:22:33.12'); CREATE TABLE t2 (b DOUBLE); INSERT INTO t2 VALUES (20000101112233); INSERT INTO t2 VALUES (20000101112233.1); INSERT INTO t2 VALUES (20000101112233.12); SELECT * FROM t2; b 20000101112233 20000101112233.1 20000101112233.12 SELECT * FROM t1, t2 WHERE a=b; a b 2000-01-01 11:22:33.000000 20000101112233 2000-01-01 11:22:33.100000 20000101112233.1 2000-01-01 11:22:33.120000 20000101112233.12 DROP TABLE t1, t2; # # Testing JOIN with comparison between TIMESTAMP(6) and VARCHAR # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 11:22:33'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123'); CREATE TABLE t2 (b VARCHAR(64)); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.123'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.1230'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.12300'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.123000'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.0'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.00'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.000'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.0000'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.00000'); INSERT INTO t2 VALUES ('2001-01-01 11:22:33.000000'); SELECT * FROM t1, t2 WHERE a=b ORDER BY BINARY a, BINARY b; a b 2001-01-01 11:22:33.000000 2001-01-01 11:22:33 2001-01-01 11:22:33.000000 2001-01-01 11:22:33. 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.1230 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.12300 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123000 ALTER TABLE t1 ADD KEY (a); SELECT * FROM t1, t2 WHERE a=b ORDER BY BINARY a, BINARY b; a b 2001-01-01 11:22:33.000000 2001-01-01 11:22:33 2001-01-01 11:22:33.000000 2001-01-01 11:22:33. 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.1230 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.12300 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123000 ALTER TABLE t2 ADD KEY (b); SELECT * FROM t1, t2 WHERE a=b ORDER BY BINARY a, BINARY b; a b 2001-01-01 11:22:33.000000 2001-01-01 11:22:33 2001-01-01 11:22:33.000000 2001-01-01 11:22:33. 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.1230 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.12300 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123000 ALTER TABLE t1 DROP KEY a; SELECT * FROM t1, t2 WHERE a=b ORDER BY BINARY a, BINARY b; a b 2001-01-01 11:22:33.000000 2001-01-01 11:22:33 2001-01-01 11:22:33.000000 2001-01-01 11:22:33. 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.0000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.00000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.1230 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.12300 2001-01-01 11:22:33.123000 2001-01-01 11:22:33.123000 DROP TABLE t1, t2; # # Testing arithmetic with INT, DECIMAL, FLOAT # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000000'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000001'); SELECT a, a + 0, a + 1, a + 1.0, a + 1e0 FROM t1; a a + 0 a + 1 a + 1.0 a + 1e0 2001-01-01 00:00:00.000000 20010101000000.000000 20010101000001.000000 20010101000001.000000 20010101000001 2001-01-01 00:00:00.000001 20010101000000.000001 20010101000001.000001 20010101000001.000001 20010101000001 CREATE TABLE t2 AS SELECT a + 1 AS i, a + 1.0 AS d, a + 1e0 AS f FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `i` decimal(21,6) NOT NULL DEFAULT '0.000000', `d` decimal(21,6) NOT NULL DEFAULT '0.000000', `f` double NOT NULL DEFAULT '0' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1, t2; # # Testing that TIMESTAMP behaves as INT/DECIMAL for numeric arithmetic # CREATE TABLE t1 (t0 TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, t3 TIMESTAMP(3) NOT NULL DEFAULT '0000-00-00 00:00:00', t6 TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00'); CREATE TABLE t2 AS SELECT t0 + 1, t3 + 1, t6 + 1, t0 - 1, t3 - 1, t6 - 1, t0 * 1, t3 * 1, t6 * 1, t0 / 1, t3 / 1, t6 / 1, TIMESTAMP'2001-01-01 10:10:10' + 1, TIMESTAMP'2001-01-01 10:10:10.123' + 1, TIMESTAMP'2001-01-01 10:10:10.123456' + 1, TIMESTAMP'2001-01-01 10:10:10' - 1, TIMESTAMP'2001-01-01 10:10:10.123' - 1, TIMESTAMP'2001-01-01 10:10:10.123456' - 1, TIMESTAMP'2001-01-01 10:10:10' * 1, TIMESTAMP'2001-01-01 10:10:10.123' * 1, TIMESTAMP'2001-01-01 10:10:10.123456' * 1, TIMESTAMP'2001-01-01 10:10:10' / 1, TIMESTAMP'2001-01-01 10:10:10.123' / 1, TIMESTAMP'2001-01-01 10:10:10.123456' / 1 FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `t0 + 1` bigint(16) NOT NULL DEFAULT '0', `t3 + 1` decimal(18,3) NOT NULL DEFAULT '0.000', `t6 + 1` decimal(21,6) NOT NULL DEFAULT '0.000000', `t0 - 1` bigint(16) NOT NULL DEFAULT '0', `t3 - 1` decimal(18,3) NOT NULL DEFAULT '0.000', `t6 - 1` decimal(21,6) NOT NULL DEFAULT '0.000000', `t0 * 1` bigint(16) NOT NULL DEFAULT '0', `t3 * 1` decimal(18,3) NOT NULL DEFAULT '0.000', `t6 * 1` decimal(21,6) NOT NULL DEFAULT '0.000000', `t0 / 1` decimal(18,4) DEFAULT NULL, `t3 / 1` decimal(21,7) DEFAULT NULL, `t6 / 1` decimal(24,10) DEFAULT NULL, `TIMESTAMP'2001-01-01 10:10:10' + 1` bigint(16) NOT NULL DEFAULT '0', `TIMESTAMP'2001-01-01 10:10:10.123' + 1` decimal(18,3) NOT NULL DEFAULT '0.000', `TIMESTAMP'2001-01-01 10:10:10.123456' + 1` decimal(21,6) NOT NULL DEFAULT '0.000000', `TIMESTAMP'2001-01-01 10:10:10' - 1` bigint(16) NOT NULL DEFAULT '0', `TIMESTAMP'2001-01-01 10:10:10.123' - 1` decimal(18,3) NOT NULL DEFAULT '0.000', `TIMESTAMP'2001-01-01 10:10:10.123456' - 1` decimal(21,6) NOT NULL DEFAULT '0.000000', `TIMESTAMP'2001-01-01 10:10:10' * 1` bigint(16) NOT NULL DEFAULT '0', `TIMESTAMP'2001-01-01 10:10:10.123' * 1` decimal(18,3) NOT NULL DEFAULT '0.000', `TIMESTAMP'2001-01-01 10:10:10.123456' * 1` decimal(21,6) NOT NULL DEFAULT '0.000000', `TIMESTAMP'2001-01-01 10:10:10' / 1` decimal(18,4) DEFAULT NULL, `TIMESTAMP'2001-01-01 10:10:10.123' / 1` decimal(21,7) DEFAULT NULL, `TIMESTAMP'2001-01-01 10:10:10.123456' / 1` decimal(24,10) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # # Testing that TIMESTAMP behaves as DECIMAL for SUM() and AVG() # SET @t='2010-01-01 00:11:12.123456'; CREATE TABLE t1 (t0 DATETIME, t3 DATETIME(3), t6 DATETIME(6)); INSERT INTO t1 VALUES (@t, @t, @t); SELECT MIN(t0), MAX(t0), AVG(t0), SUM(t0) FROM t1; MIN(t0) 2010-01-01 00:11:12 MAX(t0) 2010-01-01 00:11:12 AVG(t0) 20100101001112.0000 SUM(t0) 20100101001112 SELECT MIN(t3), MAX(t3), AVG(t3), SUM(t3) FROM t1; MIN(t3) 2010-01-01 00:11:12.123 MAX(t3) 2010-01-01 00:11:12.123 AVG(t3) 20100101001112.1230000 SUM(t3) 20100101001112.123 SELECT MIN(t6), MAX(t6), AVG(t6), SUM(t6) FROM t1; MIN(t6) 2010-01-01 00:11:12.123456 MAX(t6) 2010-01-01 00:11:12.123456 AVG(t6) 20100101001112.1234560000 SUM(t6) 20100101001112.123456 SET @t='2010-01-01 00:11:12.000000'; INSERT INTO t1 VALUES (@t, @t, @t); SELECT MIN(t0), MAX(t0), AVG(t0), SUM(t0) FROM t1; MIN(t0) 2010-01-01 00:11:12 MAX(t0) 2010-01-01 00:11:12 AVG(t0) 20100101001112.0000 SUM(t0) 40200202002224 SELECT MIN(t3), MAX(t3), AVG(t3), SUM(t3) FROM t1; MIN(t3) 2010-01-01 00:11:12.000 MAX(t3) 2010-01-01 00:11:12.123 AVG(t3) 20100101001112.0615000 SUM(t3) 40200202002224.123 SELECT MIN(t6), MAX(t6), AVG(t6), SUM(t6) FROM t1; MIN(t6) 2010-01-01 00:11:12.000000 MAX(t6) 2010-01-01 00:11:12.123456 AVG(t6) 20100101001112.0617280000 SUM(t6) 40200202002224.123456 CREATE TABLE t2 AS SELECT MIN(t0), MAX(t0), AVG(t0), SUM(t0), MIN(t3), MAX(t3), AVG(t3), SUM(t3), MIN(t6), MAX(t6), AVG(t6), SUM(t6) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `MIN(t0)` datetime DEFAULT NULL, `MAX(t0)` datetime DEFAULT NULL, `AVG(t0)` decimal(18,4) DEFAULT NULL, `SUM(t0)` decimal(36,0) DEFAULT NULL, `MIN(t3)` datetime(3) DEFAULT NULL, `MAX(t3)` datetime(3) DEFAULT NULL, `AVG(t3)` decimal(21,7) DEFAULT NULL, `SUM(t3)` decimal(39,3) DEFAULT NULL, `MIN(t6)` datetime(6) DEFAULT NULL, `MAX(t6)` datetime(6) DEFAULT NULL, `AVG(t6)` decimal(24,10) DEFAULT NULL, `SUM(t6)` decimal(42,6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # # Testing functions ADDTIME, SUBTIME, TIMESTAMP, TIMEDIFF, DATE_ADD/SUB # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('1970-01-01 01:00:01.000000'); INSERT INTO t1 VALUES ('1970-01-01 01:00:01.000001'); INSERT INTO t1 VALUES ('1971-01-01 01:00:00.000000'); INSERT INTO t1 VALUES ('1971-01-01 01:00:00.000001'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000000'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000001'); INSERT INTO t1 VALUES ('2001-01-01 01:00:00.000000'); INSERT INTO t1 VALUES ('2001-01-01 01:00:00.000001'); SELECT ADDTIME(a, '00:00:00.000001') FROM t1 ORDER BY a; ADDTIME(a, '00:00:00.000001') 1970-01-01 01:00:01.000001 1970-01-01 01:00:01.000002 1971-01-01 01:00:00.000001 1971-01-01 01:00:00.000002 2001-01-01 00:00:00.000001 2001-01-01 00:00:00.000002 2001-01-01 01:00:00.000001 2001-01-01 01:00:00.000002 SELECT ADDTIME(a, '10:00:00.000001') FROM t1 ORDER BY a; ADDTIME(a, '10:00:00.000001') 1970-01-01 11:00:01.000001 1970-01-01 11:00:01.000002 1971-01-01 11:00:00.000001 1971-01-01 11:00:00.000002 2001-01-01 10:00:00.000001 2001-01-01 10:00:00.000002 2001-01-01 11:00:00.000001 2001-01-01 11:00:00.000002 SELECT ADDTIME(CAST(a AS DATETIME(0)), 100000) FROM t1 ORDER BY a; ADDTIME(CAST(a AS DATETIME(0)), 100000) 1970-01-01 11:00:01 1970-01-01 11:00:01 1971-01-01 11:00:00 1971-01-01 11:00:00 2001-01-01 10:00:00 2001-01-01 10:00:00 2001-01-01 11:00:00 2001-01-01 11:00:00 SELECT ADDTIME(CAST(a AS DATETIME(0)), 100000.1) FROM t1 ORDER BY a; ADDTIME(CAST(a AS DATETIME(0)), 100000.1) 1970-01-01 11:00:01.1 1970-01-01 11:00:01.1 1971-01-01 11:00:00.1 1971-01-01 11:00:00.1 2001-01-01 10:00:00.1 2001-01-01 10:00:00.1 2001-01-01 11:00:00.1 2001-01-01 11:00:00.1 SELECT a, ADDTIME(CAST(a AS DATETIME(0)), CAST('10:00:00' AS TIME(0))) FROM t1 ORDER BY a; a ADDTIME(CAST(a AS DATETIME(0)), CAST('10:00:00' AS TIME(0))) 1970-01-01 01:00:01.000000 1970-01-01 11:00:01 1970-01-01 01:00:01.000001 1970-01-01 11:00:01 1971-01-01 01:00:00.000000 1971-01-01 11:00:00 1971-01-01 01:00:00.000001 1971-01-01 11:00:00 2001-01-01 00:00:00.000000 2001-01-01 10:00:00 2001-01-01 00:00:00.000001 2001-01-01 10:00:00 2001-01-01 01:00:00.000000 2001-01-01 11:00:00 2001-01-01 01:00:00.000001 2001-01-01 11:00:00 SELECT a, ADDTIME(CAST(a AS DATETIME(6)), CAST('10:00:00' AS TIME(0))) FROM t1 ORDER BY a; a ADDTIME(CAST(a AS DATETIME(6)), CAST('10:00:00' AS TIME(0))) 1970-01-01 01:00:01.000000 1970-01-01 11:00:01.000000 1970-01-01 01:00:01.000001 1970-01-01 11:00:01.000001 1971-01-01 01:00:00.000000 1971-01-01 11:00:00.000000 1971-01-01 01:00:00.000001 1971-01-01 11:00:00.000001 2001-01-01 00:00:00.000000 2001-01-01 10:00:00.000000 2001-01-01 00:00:00.000001 2001-01-01 10:00:00.000001 2001-01-01 01:00:00.000000 2001-01-01 11:00:00.000000 2001-01-01 01:00:00.000001 2001-01-01 11:00:00.000001 SELECT a, ADDTIME(CAST(a AS DATETIME(0)), CAST('10:00:00' AS TIME(6))) FROM t1 ORDER BY a; a ADDTIME(CAST(a AS DATETIME(0)), CAST('10:00:00' AS TIME(6))) 1970-01-01 01:00:01.000000 1970-01-01 11:00:01.000000 1970-01-01 01:00:01.000001 1970-01-01 11:00:01.000000 1971-01-01 01:00:00.000000 1971-01-01 11:00:00.000000 1971-01-01 01:00:00.000001 1971-01-01 11:00:00.000000 2001-01-01 00:00:00.000000 2001-01-01 10:00:00.000000 2001-01-01 00:00:00.000001 2001-01-01 10:00:00.000000 2001-01-01 01:00:00.000000 2001-01-01 11:00:00.000000 2001-01-01 01:00:00.000001 2001-01-01 11:00:00.000000 SELECT ADDTIME(a, a) FROM t1 ORDER BY a; ADDTIME(a, a) NULL NULL NULL NULL NULL NULL NULL NULL CREATE TABLE t2 AS SELECT ADDTIME(a, '00:00:00.000001'), ADDTIME(a, '10:00:00.000001'), ADDTIME(CAST(a AS DATETIME(0)), 100000), ADDTIME(CAST(a AS DATETIME(0)), 100000.1), ADDTIME(a,a) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `ADDTIME(a, '00:00:00.000001')` datetime(6) DEFAULT NULL, `ADDTIME(a, '10:00:00.000001')` datetime(6) DEFAULT NULL, `ADDTIME(CAST(a AS DATETIME(0)), 100000)` datetime DEFAULT NULL, `ADDTIME(CAST(a AS DATETIME(0)), 100000.1)` datetime(1) DEFAULT NULL, `ADDTIME(a,a)` datetime(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; SELECT TIMESTAMP(a, '10:00:00') FROM t1; TIMESTAMP(a, '10:00:00') 1970-01-01 11:00:01.000000 1970-01-01 11:00:01.000001 1971-01-01 11:00:00.000000 1971-01-01 11:00:00.000001 2001-01-01 10:00:00.000000 2001-01-01 10:00:00.000001 2001-01-01 11:00:00.000000 2001-01-01 11:00:00.000001 SELECT TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(0))) FROM t1; TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(0))) 1970-01-01 01:00:01 1970-01-01 01:00:01 1971-01-01 01:00:00 1971-01-01 01:00:00 2001-01-01 00:00:00 2001-01-01 00:00:00 2001-01-01 01:00:00 2001-01-01 01:00:00 SELECT TIMESTAMP(CAST(a AS DATETIME(6)), CAST('00:00:00' AS TIME(0))) FROM t1; TIMESTAMP(CAST(a AS DATETIME(6)), CAST('00:00:00' AS TIME(0))) 1970-01-01 01:00:01.000000 1970-01-01 01:00:01.000001 1971-01-01 01:00:00.000000 1971-01-01 01:00:00.000001 2001-01-01 00:00:00.000000 2001-01-01 00:00:00.000001 2001-01-01 01:00:00.000000 2001-01-01 01:00:00.000001 SELECT TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(6))) FROM t1; TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(6))) 1970-01-01 01:00:01.000000 1970-01-01 01:00:01.000000 1971-01-01 01:00:00.000000 1971-01-01 01:00:00.000000 2001-01-01 00:00:00.000000 2001-01-01 00:00:00.000000 2001-01-01 01:00:00.000000 2001-01-01 01:00:00.000000 CREATE TABLE t2 AS SELECT TIMESTAMP(a, '10:00:00'), TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(0))), TIMESTAMP(CAST(a AS DATETIME(6)), CAST('00:00:00' AS TIME(0))), TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(6))) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `TIMESTAMP(a, '10:00:00')` datetime(6) DEFAULT NULL, `TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(0)))` datetime DEFAULT NULL, `TIMESTAMP(CAST(a AS DATETIME(6)), CAST('00:00:00' AS TIME(0)))` datetime(6) DEFAULT NULL, `TIMESTAMP(CAST(a AS DATETIME(0)), CAST('00:00:00' AS TIME(6)))` datetime(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; SELECT SUBTIME(a, '00:00:00.000001') FROM t1 ORDER BY a; SUBTIME(a, '00:00:00.000001') 1970-01-01 01:00:00.999999 1970-01-01 01:00:01.000000 1971-01-01 00:59:59.999999 1971-01-01 01:00:00.000000 2000-12-31 23:59:59.999999 2001-01-01 00:00:00.000000 2001-01-01 00:59:59.999999 2001-01-01 01:00:00.000000 SELECT SUBTIME(a, '10:00:00.000001') FROM t1 ORDER BY a; SUBTIME(a, '10:00:00.000001') 1969-12-31 15:00:00.999999 1969-12-31 15:00:01.000000 1970-12-31 14:59:59.999999 1970-12-31 15:00:00.000000 2000-12-31 13:59:59.999999 2000-12-31 14:00:00.000000 2000-12-31 14:59:59.999999 2000-12-31 15:00:00.000000 SELECT SUBTIME(a, a) FROM t1 ORDER BY a; SUBTIME(a, a) NULL NULL NULL NULL NULL NULL NULL NULL CREATE TABLE t2 AS SELECT SUBTIME(a, '00:00:00.000001'), SUBTIME(a, '10:00:00.000001'), SUBTIME(CAST(a AS DATETIME(0)), 100000), SUBTIME(CAST(a AS DATETIME(0)), 100000.1), SUBTIME(a,a) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `SUBTIME(a, '00:00:00.000001')` datetime(6) DEFAULT NULL, `SUBTIME(a, '10:00:00.000001')` datetime(6) DEFAULT NULL, `SUBTIME(CAST(a AS DATETIME(0)), 100000)` datetime DEFAULT NULL, `SUBTIME(CAST(a AS DATETIME(0)), 100000.1)` datetime(1) DEFAULT NULL, `SUBTIME(a,a)` datetime(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; SELECT DATE_ADD(a, INTERVAL 1 MINUTE) FROM t1 ORDER BY a; DATE_ADD(a, INTERVAL 1 MINUTE) 1970-01-01 01:01:01.000000 1970-01-01 01:01:01.000001 1971-01-01 01:01:00.000000 1971-01-01 01:01:00.000001 2001-01-01 00:01:00.000000 2001-01-01 00:01:00.000001 2001-01-01 01:01:00.000000 2001-01-01 01:01:00.000001 SELECT DATE_SUB(a, INTERVAL 1 MINUTE) FROM t1 ORDER BY a; DATE_SUB(a, INTERVAL 1 MINUTE) 1970-01-01 00:59:01.000000 1970-01-01 00:59:01.000001 1971-01-01 00:59:00.000000 1971-01-01 00:59:00.000001 2000-12-31 23:59:00.000000 2000-12-31 23:59:00.000001 2001-01-01 00:59:00.000000 2001-01-01 00:59:00.000001 SELECT DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 MINUTE) FROM t1 ORDER BY a; DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 MINUTE) 1970-01-01 01:01:01 1970-01-01 01:01:01 1971-01-01 01:01:00 1971-01-01 01:01:00 2001-01-01 00:01:00 2001-01-01 00:01:00 2001-01-01 01:01:00 2001-01-01 01:01:00 SELECT DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 MINUTE) FROM t1 ORDER BY a; DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 MINUTE) 1970-01-01 00:59:01 1970-01-01 00:59:01 1971-01-01 00:59:00 1971-01-01 00:59:00 2000-12-31 23:59:00 2000-12-31 23:59:00 2001-01-01 00:59:00 2001-01-01 00:59:00 SELECT DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND) FROM t1 ORDER BY a; DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND) 1970-01-01 01:00:01.000001 1970-01-01 01:00:01.000001 1971-01-01 01:00:00.000001 1971-01-01 01:00:00.000001 2001-01-01 00:00:00.000001 2001-01-01 00:00:00.000001 2001-01-01 01:00:00.000001 2001-01-01 01:00:00.000001 SELECT DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND) FROM t1 ORDER BY a; DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND) 1970-01-01 01:00:00.999999 1970-01-01 01:00:00.999999 1971-01-01 00:59:59.999999 1971-01-01 00:59:59.999999 2000-12-31 23:59:59.999999 2000-12-31 23:59:59.999999 2001-01-01 00:59:59.999999 2001-01-01 00:59:59.999999 SELECT a, DATE_ADD(a, INTERVAL -0.1 SECOND) FROM t1 ORDER BY a; a DATE_ADD(a, INTERVAL -0.1 SECOND) 1970-01-01 01:00:01.000000 1970-01-01 01:00:00.900000 1970-01-01 01:00:01.000001 1970-01-01 01:00:00.900001 1971-01-01 01:00:00.000000 1971-01-01 00:59:59.900000 1971-01-01 01:00:00.000001 1971-01-01 00:59:59.900001 2001-01-01 00:00:00.000000 2000-12-31 23:59:59.900000 2001-01-01 00:00:00.000001 2000-12-31 23:59:59.900001 2001-01-01 01:00:00.000000 2001-01-01 00:59:59.900000 2001-01-01 01:00:00.000001 2001-01-01 00:59:59.900001 SELECT a, DATE_SUB(a, INTERVAL -0.1 SECOND) FROM t1 ORDER BY a; a DATE_SUB(a, INTERVAL -0.1 SECOND) 1970-01-01 01:00:01.000000 1970-01-01 01:00:01.100000 1970-01-01 01:00:01.000001 1970-01-01 01:00:01.100001 1971-01-01 01:00:00.000000 1971-01-01 01:00:00.100000 1971-01-01 01:00:00.000001 1971-01-01 01:00:00.100001 2001-01-01 00:00:00.000000 2001-01-01 00:00:00.100000 2001-01-01 00:00:00.000001 2001-01-01 00:00:00.100001 2001-01-01 01:00:00.000000 2001-01-01 01:00:00.100000 2001-01-01 01:00:00.000001 2001-01-01 01:00:00.100001 CREATE TABLE t2 AS SELECT DATE_ADD(a, INTERVAL 1 SECOND), DATE_SUB(a, INTERVAL 1 SECOND), DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 SECOND), DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 SECOND), DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND), DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `DATE_ADD(a, INTERVAL 1 SECOND)` datetime(6) DEFAULT NULL, `DATE_SUB(a, INTERVAL 1 SECOND)` datetime(6) DEFAULT NULL, `DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 SECOND)` datetime DEFAULT NULL, `DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 SECOND)` datetime DEFAULT NULL, `DATE_ADD(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND)` datetime(6) DEFAULT NULL, `DATE_SUB(CAST(a AS DATETIME), INTERVAL 1 MICROSECOND)` datetime(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT MAX(DATE_ADD(a, INTERVAL 1 MINUTE)) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `MAX(DATE_ADD(a, INTERVAL 1 MINUTE))` datetime(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t2; MAX(DATE_ADD(a, INTERVAL 1 MINUTE)) 2001-01-01 01:01:00.000001 DROP TABLE t2; DROP TABLE t1; # # Testing explicit CAST of datetime hybrid functions to DATETIME # SET @@timestamp=UNIX_TIMESTAMP('2001-01-01 00:00:00'); SELECT CAST(ADDTIME('20:10:10', 10) AS DATETIME); CAST(ADDTIME('20:10:10', 10) AS DATETIME) 2001-01-01 20:10:20 SELECT CAST(CAST('10:10:20' AS TIME) + INTERVAL 10 HOUR AS DATETIME); CAST(CAST('10:10:20' AS TIME) + INTERVAL 10 HOUR AS DATETIME) 2001-01-01 20:10:20 SELECT CAST(CAST('10:10:20' AS TIME(6)) + INTERVAL 10 HOUR AS DATETIME); CAST(CAST('10:10:20' AS TIME(6)) + INTERVAL 10 HOUR AS DATETIME) 2001-01-01 20:10:20 SELECT CAST(STR_TO_DATE('23:59:01','%H:%i:%s') AS DATETIME); CAST(STR_TO_DATE('23:59:01','%H:%i:%s') AS DATETIME) 2001-01-01 23:59:01 SELECT CAST(STR_TO_DATE('23:59:01.123','%H:%i:%s.%f') AS DATETIME(6)); CAST(STR_TO_DATE('23:59:01.123','%H:%i:%s.%f') AS DATETIME(6)) 2001-01-01 23:59:01.123000 SELECT CAST(ADDTIME('40:10:10', 10) as DATETIME); CAST(ADDTIME('40:10:10', 10) as DATETIME) 2001-01-02 16:10:20 SELECT CAST(CAST('10:10:20' AS TIME) + INTERVAL 30 HOUR AS DATETIME); CAST(CAST('10:10:20' AS TIME) + INTERVAL 30 HOUR AS DATETIME) 2001-01-02 16:10:20 SELECT CAST(CAST('10:10:20' AS TIME(6)) + INTERVAL 30 HOUR AS DATETIME); CAST(CAST('10:10:20' AS TIME(6)) + INTERVAL 30 HOUR AS DATETIME) 2001-01-02 16:10:20 SET @@timestamp=default; # # Testing copy from TIMESTAMP to TIMESTAMP(6) and vice versa # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00.000000'); INSERT INTO t1 VALUES ('2001-01-01 01:02:03.123456', '0000-00-00 00:00:00'); UPDATE t1 SET b=a; SELECT b FROM t1; b 2001-01-01 01:02:03 UPDATE t1 SET b='2002-02-02 10:11:12'; UPDATE t1 SET a=b; SELECT a FROM t1; a 2002-02-02 10:11:12.000000 DROP TABLE t1; # # Testing ALTER from TIMESTAMP(6) to TIMESTAMP and vice versa # CREATE TABLE t1 (a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP); INSERT INTO t1 VALUES ('2000-01-01 01:02:03'); ALTER TABLE t1 MODIFY a TIMESTAMP(6); SELECT * FROM t1; a 2000-01-01 01:02:03.000000 UPDATE t1 SET a='2000-01-01 01:03:03.456'; SELECT * FROM t1; a 2000-01-01 01:03:03.456000 ALTER TABLE t1 MODIFY a TIMESTAMP; SELECT * FROM t1; a 2000-01-01 01:03:03 DROP TABLE t1; # # Testing ALTER between TIMESTAMP and BIGINT # CREATE TABLE t1 (a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000'); INSERT INTO t1 VALUES ('2000-01-01 11:22:33', '2000-01-01 11:22:33'); ALTER TABLE t1 MODIFY a BIGINT, MODIFY b BIGINT; SELECT * FROM t1; a b 20000101112233 20000101112233 UPDATE t1 SET a=20000101112233, b=20000101112233; ALTER TABLE t1 MODIFY a TIMESTAMP, MODIFY b TIMESTAMP(6); SELECT * FROM t1; a b 2000-01-01 11:22:33 2000-01-01 11:22:33.000000 DROP TABLE t1; # # Testing ALTER between TIMESTAMP(6) and DOUBLE # CREATE TABLE t1 (a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33', '2001-01-01 11:22:33.1234'); ALTER TABLE t1 MODIFY a DOUBLE, MODIFY b DOUBLE; SELECT * FROM t1; a b 20010101112233 20010101112233.125 UPDATE t1 SET a=20010101101112, b=20010101101112.1; ALTER TABLE t1 MODIFY a TIMESTAMP, MODIFY b TIMESTAMP(6); SELECT * FROM t1; a b 2001-01-01 10:11:12 2001-01-01 10:11:12.100000 DROP TABLE t1; # # Testing ALTER between TIMESTAMP(6) and DECIMAL # CREATE TABLE t1 (a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33', '2001-01-01 11:22:33.1234'); ALTER TABLE t1 MODIFY a DECIMAL(30,6), MODIFY b DECIMAL(30,6); SELECT * FROM t1; a b 20010101112233.000000 20010101112233.123400 UPDATE t1 SET a=20010101112233, b=20010101112233.1234; ALTER TABLE t1 MODIFY a TIMESTAMP, MODIFY b TIMESTAMP(6); SELECT * FROM t1; a b 2001-01-01 11:22:33 2001-01-01 11:22:33.123400 DROP TABLE t1; # # Testing ALTER from TIMESTAMP to various other temporal types # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00', c TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00'); INSERT INTO t1 VALUES ('2001-01-01 10:10:10.1', '2001-01-01 10:10:10.1', '2001-01-01 10:10:10.1'); ALTER TABLE t1 MODIFY a TIME(6), MODIFY b DATETIME(6), MODIFY c DATE; Warnings: Note 1265 Data truncated for column 'c' at row 1 SELECT * FROM t1; a b c 10:10:10.100000 2001-01-01 10:10:10.100000 2001-01-01 DROP TABLE t1; # # Testing INT value and CAST of TIMESTAMP(6) to various other types # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123'); SELECT CAST(a AS DATETIME) FROM t1; CAST(a AS DATETIME) 2001-01-01 11:22:33 SELECT CAST(a AS DATETIME(6)) FROM t1; CAST(a AS DATETIME(6)) 2001-01-01 11:22:33.123000 SELECT CAST(a AS TIME) FROM t1; CAST(a AS TIME) 11:22:33 SELECT CAST(a AS TIME(6)) FROM t1; CAST(a AS TIME(6)) 11:22:33.123000 SELECT a << 0 FROM t1; a << 0 20010101112233 SELECT CAST(a AS SIGNED) FROM t1; CAST(a AS SIGNED) 20010101112233 SELECT CAST(a AS UNSIGNED) FROM t1; CAST(a AS UNSIGNED) 20010101112233 SELECT CAST(a AS DECIMAL(30,6)) FROM t1; CAST(a AS DECIMAL(30,6)) 20010101112233.123000 SELECT CAST(a AS DECIMAL(30,3)) FROM t1; CAST(a AS DECIMAL(30,3)) 20010101112233.123 SELECT CAST(a AS CHAR) FROM t1; CAST(a AS CHAR) 2001-01-01 11:22:33.123000 SELECT CAST(a AS CHAR(6)) FROM t1; CAST(a AS CHAR(6)) 2001-0 Warnings: Warning 1292 Truncated incorrect CHAR(6) value: '2001-01-01 11:22:33.123000' CREATE TABLE t2 AS SELECT CAST(a AS CHAR) AS a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(26) NOT NULL DEFAULT '' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT a, LENGTH(a) FROM t2; a LENGTH(a) 2001-01-01 11:22:33.123000 26 DROP TABLE t2; DROP TABLE t1; # # Testing that default precision in "DEFAULT CURRENT_TIMESTAMP(N)" # and "ON UPDATE CURRENT_TIMESTAMP(N)" is the same to the precision # of the field itself. # CREATE TABLE t1 (a TIMESTAMP(1) NOT NULL DEFAULT CURRENT_TIMESTAMP(1) ON UPDATE CURRENT_TIMESTAMP(1)); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` timestamp(1) NOT NULL DEFAULT CURRENT_TIMESTAMP(1) ON UPDATE CURRENT_TIMESTAMP(1) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 (a TIMESTAMP(2) NOT NULL DEFAULT CURRENT_TIMESTAMP(2) ON UPDATE CURRENT_TIMESTAMP(2)); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` timestamp(2) NOT NULL DEFAULT CURRENT_TIMESTAMP(2) ON UPDATE CURRENT_TIMESTAMP(2) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 (a TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 (a TIMESTAMP(4) NOT NULL DEFAULT CURRENT_TIMESTAMP(4) ON UPDATE CURRENT_TIMESTAMP(4)); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` timestamp(4) NOT NULL DEFAULT CURRENT_TIMESTAMP(4) ON UPDATE CURRENT_TIMESTAMP(4) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 (a TIMESTAMP(5) NOT NULL DEFAULT CURRENT_TIMESTAMP(5) ON UPDATE CURRENT_TIMESTAMP(5)); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` timestamp(5) NOT NULL DEFAULT CURRENT_TIMESTAMP(5) ON UPDATE CURRENT_TIMESTAMP(5) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; # # Testing DEFAULT value # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT '2000-01-01 11:22:33.123456'); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` timestamp(6) NOT NULL DEFAULT '2000-01-01 11:22:33.123456' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; # # Testing DEFAULT CURRENT_TIMESTAMP # CREATE TABLE t1 (a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP(0)); DROP TABLE t1; CREATE TABLE t1 (a TIMESTAMP DEFAULT CURRENT_TIMESTAMP(1)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP DEFAULT CURRENT_TIMESTAMP(2)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP DEFAULT CURRENT_TIMESTAMP(3)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP DEFAULT CURRENT_TIMESTAMP(4)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP DEFAULT CURRENT_TIMESTAMP(5)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP DEFAULT CURRENT_TIMESTAMP(6)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP(0)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP(1)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP(2)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3)); SHOW COLUMNS FROM t1; Field Type Null Key Default Extra a timestamp(3) NO CURRENT_TIMESTAMP(3) DROP TABLE t1; CREATE TABLE t1 (a TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP(4)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP(5)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP(6)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP(0)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP(1)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP(2)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP(4)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP(5)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6)); SHOW COLUMNS FROM t1; Field Type Null Key Default Extra a timestamp(6) NO CURRENT_TIMESTAMP(6) DROP TABLE t1; CREATE TABLE t1 (a DATETIME DEFAULT CURRENT_TIMESTAMP(0)); DROP TABLE t1; CREATE TABLE t1 (a DATETIME DEFAULT CURRENT_TIMESTAMP(1)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME DEFAULT CURRENT_TIMESTAMP(2)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME DEFAULT CURRENT_TIMESTAMP(3)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME DEFAULT CURRENT_TIMESTAMP(4)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME DEFAULT CURRENT_TIMESTAMP(5)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME DEFAULT CURRENT_TIMESTAMP(6)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME(3) DEFAULT CURRENT_TIMESTAMP); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME(3) DEFAULT CURRENT_TIMESTAMP(0)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME(3) DEFAULT CURRENT_TIMESTAMP(1)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME(3) DEFAULT CURRENT_TIMESTAMP(2)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME(3) DEFAULT CURRENT_TIMESTAMP(3)); SHOW COLUMNS FROM t1; Field Type Null Key Default Extra a datetime(3) YES CURRENT_TIMESTAMP(3) DROP TABLE t1; CREATE TABLE t1 (a DATETIME(3) DEFAULT CURRENT_TIMESTAMP(4)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME(3) DEFAULT CURRENT_TIMESTAMP(5)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME(3) DEFAULT CURRENT_TIMESTAMP(6)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME(6) DEFAULT CURRENT_TIMESTAMP); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME(6) DEFAULT CURRENT_TIMESTAMP(0)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME(6) DEFAULT CURRENT_TIMESTAMP(1)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME(6) DEFAULT CURRENT_TIMESTAMP(2)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME(6) DEFAULT CURRENT_TIMESTAMP(4)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME(6) DEFAULT CURRENT_TIMESTAMP(5)); ERROR 42000: Invalid default value for 'a' CREATE TABLE t1 (a DATETIME(6) DEFAULT CURRENT_TIMESTAMP(6)); SHOW COLUMNS FROM t1; Field Type Null Key Default Extra a datetime(6) YES CURRENT_TIMESTAMP(6) DROP TABLE t1; # # Testing that DEFAULT CURRENT_TIMESTAMP(n) truncates rather than rounds # SET timestamp=UNIX_TIMESTAMP('2001-01-01 00:00:00.999999'); CREATE TABLE t1 ( a TIMESTAMP(2) NOT NULL DEFAULT CURRENT_TIMESTAMP(2) ON UPDATE CURRENT_TIMESTAMP(2), b DATETIME(2) DEFAULT CURRENT_TIMESTAMP(2) ); INSERT INTO t1 VALUES (DEFAULT, DEFAULT); INSERT INTO t1 VALUES (); SELECT CURRENT_TIMESTAMP(6); CURRENT_TIMESTAMP(6) 2001-01-01 00:00:00.999999 SELECT * FROM t1; a b 2001-01-01 00:00:00.99 2001-01-01 00:00:00.99 2001-01-01 00:00:00.99 2001-01-01 00:00:00.99 DROP TABLE t1; SET timestamp=DEFAULT; # # Testing ON UPDATE CURRENT_TIMESTAMP # CREATE TABLE t1 (a TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1 (a TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(0)); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1 (a TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(1)); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1 (a TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(2)); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1 (a TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(4)); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1 (a TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(5)); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ON UPDATE CURRENT_TIMESTAMP(6)); SHOW COLUMNS FROM t1; Field Type Null Key Default Extra a timestamp(6) NO 0000-00-00 00:00:00.000000 on update CURRENT_TIMESTAMP(6) SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ON UPDATE CURRENT_TIMESTAMP(6) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; CREATE TABLE t1 (a DATETIME(6) ON UPDATE CURRENT_TIMESTAMP); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1 (a DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(0)); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1 (a DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(1)); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1 (a DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(2)); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1 (a DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(4)); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1 (a DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(5)); ERROR HY000: Invalid ON UPDATE clause for 'a' column CREATE TABLE t1 (a DATETIME(6) ON UPDATE CURRENT_TIMESTAMP(6)); SHOW COLUMNS FROM t1; Field Type Null Key Default Extra a datetime(6) YES NULL on update CURRENT_TIMESTAMP(6) SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` datetime(6) DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(6) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; # # Testing that ON UPDATE CURRENT_TIMESTAMP(n) truncates rather than rounds # SET timestamp=UNIX_TIMESTAMP('2001-01-01 00:00:00.999999'); CREATE TABLE t1 ( a TIMESTAMP(2) ON UPDATE CURRENT_TIMESTAMP(2), b DATETIME(2) ON UPDATE CURRENT_TIMESTAMP(2), c INT); INSERT INTO t1 VALUES ('1999-01-01 00:00:00', '1999-01-01 00:00:00', 1); SELECT * FROM t1; a b c 1999-01-01 00:00:00.00 1999-01-01 00:00:00.00 1 UPDATE t1 SET c=2; SELECT CURRENT_TIMESTAMP(6); CURRENT_TIMESTAMP(6) 2001-01-01 00:00:00.999999 SELECT * FROM t1; a b c 2001-01-01 00:00:00.99 2001-01-01 00:00:00.99 2 DROP TABLE t1; SET timestamp=DEFAULT; # # Mixing varios TIMESTAMP(N) in CASE # CREATE TABLE t1 ( t0 TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, t1 TIMESTAMP(1) NOT NULL DEFAULT '0000-00-00 00:00:00.0', t3 TIMESTAMP(3) NOT NULL DEFAULT '0000-00-00 00:00:00.0', t4 TIMESTAMP(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0', t6 TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00.0'); CREATE TABLE t2 AS SELECT CASE WHEN 1 THEN t0 ELSE t1 END, CASE WHEN 1 THEN t0 ELSE t3 END, CASE WHEN 1 THEN t0 ELSE t4 END, CASE WHEN 1 THEN t0 ELSE t6 END, CASE WHEN 1 THEN t1 ELSE t0 END, CASE WHEN 1 THEN t1 ELSE t3 END, CASE WHEN 1 THEN t1 ELSE t4 END, CASE WHEN 1 THEN t1 ELSE t6 END, CASE WHEN 1 THEN t3 ELSE t0 END, CASE WHEN 1 THEN t3 ELSE t1 END, CASE WHEN 1 THEN t3 ELSE t4 END, CASE WHEN 1 THEN t3 ELSE t6 END, CASE WHEN 1 THEN t4 ELSE t0 END, CASE WHEN 1 THEN t4 ELSE t1 END, CASE WHEN 1 THEN t4 ELSE t3 END, CASE WHEN 1 THEN t4 ELSE t6 END, CASE WHEN 1 THEN t6 ELSE t0 END, CASE WHEN 1 THEN t6 ELSE t1 END, CASE WHEN 1 THEN t6 ELSE t3 END, CASE WHEN 1 THEN t6 ELSE t4 END FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CASE WHEN 1 THEN t0 ELSE t1 END` timestamp(1) NOT NULL DEFAULT '0000-00-00 00:00:00.0', `CASE WHEN 1 THEN t0 ELSE t3 END` timestamp(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000', `CASE WHEN 1 THEN t0 ELSE t4 END` timestamp(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000', `CASE WHEN 1 THEN t0 ELSE t6 END` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', `CASE WHEN 1 THEN t1 ELSE t0 END` timestamp(1) NOT NULL DEFAULT '0000-00-00 00:00:00.0', `CASE WHEN 1 THEN t1 ELSE t3 END` timestamp(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000', `CASE WHEN 1 THEN t1 ELSE t4 END` timestamp(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000', `CASE WHEN 1 THEN t1 ELSE t6 END` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', `CASE WHEN 1 THEN t3 ELSE t0 END` timestamp(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000', `CASE WHEN 1 THEN t3 ELSE t1 END` timestamp(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000', `CASE WHEN 1 THEN t3 ELSE t4 END` timestamp(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000', `CASE WHEN 1 THEN t3 ELSE t6 END` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', `CASE WHEN 1 THEN t4 ELSE t0 END` timestamp(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000', `CASE WHEN 1 THEN t4 ELSE t1 END` timestamp(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000', `CASE WHEN 1 THEN t4 ELSE t3 END` timestamp(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000', `CASE WHEN 1 THEN t4 ELSE t6 END` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', `CASE WHEN 1 THEN t6 ELSE t0 END` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', `CASE WHEN 1 THEN t6 ELSE t1 END` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', `CASE WHEN 1 THEN t6 ELSE t3 END` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', `CASE WHEN 1 THEN t6 ELSE t4 END` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # # Mixing various TIMESTAMP(N) in COALESCE # CREATE TABLE t1 ( a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00', c TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00.0', d TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00.0', e TIMESTAMP(3) NOT NULL DEFAULT '0000-00-00 00:00:00.0', f TIMESTAMP(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0'); CREATE TABLE t2 AS SELECT COALESCE(a, b), COALESCE(c, b), COALESCE(c, d), COALESCE(e, f), COALESCE(c, e), COALESCE(c, f) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `COALESCE(a, b)` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', `COALESCE(c, b)` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', `COALESCE(c, d)` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', `COALESCE(e, f)` timestamp(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000', `COALESCE(c, e)` timestamp(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000', `COALESCE(c, f)` timestamp(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT CONCAT(COALESCE(a, b)), CONCAT(COALESCE(c, b)), CONCAT(COALESCE(c, d)), CONCAT(COALESCE(e, f)), CONCAT(COALESCE(c, e)), CONCAT(COALESCE(c, f)) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CONCAT(COALESCE(a, b))` varchar(26) NOT NULL DEFAULT '', `CONCAT(COALESCE(c, b))` varchar(26) NOT NULL DEFAULT '', `CONCAT(COALESCE(c, d))` varchar(19) NOT NULL DEFAULT '', `CONCAT(COALESCE(e, f))` varchar(24) NOT NULL DEFAULT '', `CONCAT(COALESCE(c, e))` varchar(23) NOT NULL DEFAULT '', `CONCAT(COALESCE(c, f))` varchar(24) NOT NULL DEFAULT '' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # # Mixing TIMESTAMP(6) with another TIMESTAMP(6) in IF # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00'); CREATE TABLE t2 AS SELECT IF(1, a, b) AS a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # # Mixing TIMESTAMP(N) and TIMESTAMP(M) in IF # CREATE TABLE t1 (a TIMESTAMP(1) NOT NULL DEFAULT CURRENT_TIMESTAMP(1) ON UPDATE CURRENT_TIMESTAMP(1), b TIMESTAMP(2) NOT NULL DEFAULT '0000-00-00 00:00:00'); CREATE TABLE t2 AS SELECT IF(1, a, b), IF(1, b, a) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `IF(1, a, b)` timestamp(2) NOT NULL DEFAULT '0000-00-00 00:00:00.00', `IF(1, b, a)` timestamp(2) NOT NULL DEFAULT '0000-00-00 00:00:00.00' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # # Mixing TIMESTAMP(6) NOT NULL with another TIMESTAMP(6) NOT NULL # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00'); CREATE TABLE t2 AS SELECT IF(1, a, b) AS a FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # # UNION between TIMESTAMP(6) and TIMESTAMP(6) # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123456', '2001-01-01 00:11:22.123456'); CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT b FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t2 ORDER BY a; a 2001-01-01 00:11:22.123456 2001-01-01 11:22:33.123456 DROP TABLE t2; DROP TABLE t1; # # UNION between TIMESTAMP(n) # CREATE TABLE t1 (t0 TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, t1 TIMESTAMP(1) NOT NULL DEFAULT '0000-00-00 00:00:00.0', t3 TIMESTAMP(3) NOT NULL DEFAULT '0000-00-00 00:00:00.0', t4 TIMESTAMP(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0'); CREATE TABLE t2 AS SELECT t0 FROM t1 UNION SELECT t1 FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `t0` timestamp(1) NOT NULL DEFAULT '0000-00-00 00:00:00.0' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT t1 FROM t1 UNION SELECT t3 FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `t1` timestamp(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT t3 FROM t1 UNION SELECT t4 FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `t3` timestamp(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # # UNION between TIMESTAMP(6) and TIMESTAMP / DATE / DATETIME # CREATE TABLE t1 (a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00', c DATE NOT NULL, d DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123456', '2001-01-01 00:11:22.123456','2001-01-01','2001-01-01 20:20:20.123456'); CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT b FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra a timestamp(6) NO 0000-00-00 00:00:00.000000 SELECT * FROM t2 ORDER BY a; a 2001-01-01 00:11:22.123456 2001-01-01 11:22:33.000000 DROP TABLE t2; CREATE TABLE t2 AS SELECT b FROM t1 UNION SELECT a FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra b timestamp(6) NO 0000-00-00 00:00:00.000000 SELECT * FROM t2 ORDER BY b; b 2001-01-01 00:11:22.123456 2001-01-01 11:22:33.000000 DROP TABLE t2; CREATE TABLE t2 AS SELECT c FROM t1 UNION SELECT b FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra c datetime(6) NO 0000-00-00 00:00:00.000000 SELECT * FROM t2 ORDER BY c; c 2001-01-01 00:00:00.000000 2001-01-01 00:11:22.123456 DROP TABLE t2; CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT d FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra a datetime(6) YES NULL SELECT * FROM t2 ORDER BY a; a 2001-01-01 11:22:33.000000 2001-01-01 20:20:20.123456 DROP TABLE t2; CREATE TABLE t2 AS SELECT b FROM t1 UNION SELECT c FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra b datetime(6) NO 0000-00-00 00:00:00.000000 SELECT * FROM t2 ORDER BY b; b 2001-01-01 00:00:00.000000 2001-01-01 00:11:22.123456 DROP TABLE t2; CREATE TABLE t2 AS SELECT c FROM t1 UNION SELECT b FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra c datetime(6) NO 0000-00-00 00:00:00.000000 SELECT * FROM t2 ORDER BY c; c 2001-01-01 00:00:00.000000 2001-01-01 00:11:22.123456 DROP TABLE t2; DROP TABLE t1; # # UNION between TIMESTAMP(6) and various other types # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b BIGINT, c DOUBLE, d DECIMAL(20,6), e VARCHAR(20)); CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT b FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(26) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT c FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(26) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT d FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(26) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; CREATE TABLE t2 AS SELECT a FROM t1 UNION SELECT e FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `a` varchar(26) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t2; DROP TABLE t1; # # Testing TIMESTAMP(6) field in combination with DATETIME type functions # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), b TIME(6)); INSERT INTO t1 VALUES ('2001-01-01 10:00:00.123456', '10:00:00.123456'); INSERT INTO t1 VALUES ('2001-01-01 10:00:00', '10:00:00'); SELECT * FROM t1 WHERE a=TIMESTAMP('2001-01-01', b); a b 2001-01-01 10:00:00.123456 10:00:00.123456 2001-01-01 10:00:00.000000 10:00:00.000000 SELECT * FROM t1 WHERE a=ADDTIME('2001-01-01 00:00:00', '10:00:00'); a b 2001-01-01 10:00:00.000000 10:00:00.000000 SELECT * FROM t1 WHERE a=ADDTIME('2001-01-01 00:00:00', '10:00:00.123456'); a b 2001-01-01 10:00:00.123456 10:00:00.123456 DELETE FROM t1; INSERT INTO t1 VALUES (CURRENT_TIMESTAMP, CURRENT_TIME); SELECT COUNT(*) FROM t1 WHERE a <= CURRENT_TIMESTAMP; COUNT(*) 1 SELECT COUNT(*) FROM t1 WHERE a >= SUBTIME(CURRENT_TIMESTAMP, '10:00:00'); COUNT(*) 1 DROP TABLE t1; # # Testing partitions # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)) PARTITION BY KEY(a) PARTITIONS 4; Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000000'); Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000001'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000002'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000003'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000004'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000005'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000006'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000010'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000011'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000012'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000013'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000014'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000015'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000016'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000110'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000111'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000112'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000113'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000114'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000115'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000116'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000210'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000211'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000212'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000213'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000214'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000215'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.000216'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000000'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000001'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000002'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000003'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000004'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000005'); INSERT INTO t1 VALUES ('2001-01-01 00:00:01.000006'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000000'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000001'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000002'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000003'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000004'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000005'); INSERT INTO t1 VALUES ('2001-01-01 00:00:02.000006'); SELECT * FROM t1 PARTITION(p0); a 2001-01-01 00:00:00.000003 2001-01-01 00:00:00.000011 2001-01-01 00:00:00.000015 2001-01-01 00:00:00.000111 2001-01-01 00:00:00.000115 2001-01-01 00:00:00.000211 2001-01-01 00:00:00.000215 2001-01-01 00:00:01.000003 2001-01-01 00:00:02.000003 SELECT * FROM t1 PARTITION(p1); a 2001-01-01 00:00:00.000000 2001-01-01 00:00:00.000004 2001-01-01 00:00:00.000012 2001-01-01 00:00:00.000016 2001-01-01 00:00:00.000112 2001-01-01 00:00:00.000116 2001-01-01 00:00:00.000212 2001-01-01 00:00:00.000216 2001-01-01 00:00:01.000002 2001-01-01 00:00:01.000006 2001-01-01 00:00:02.000000 2001-01-01 00:00:02.000004 SELECT * FROM t1 PARTITION(p2); a 2001-01-01 00:00:00.000001 2001-01-01 00:00:00.000005 2001-01-01 00:00:00.000013 2001-01-01 00:00:00.000113 2001-01-01 00:00:00.000213 2001-01-01 00:00:01.000001 2001-01-01 00:00:01.000005 2001-01-01 00:00:02.000001 2001-01-01 00:00:02.000005 SELECT * FROM t1 PARTITION(p3); a 2001-01-01 00:00:00.000002 2001-01-01 00:00:00.000006 2001-01-01 00:00:00.000010 2001-01-01 00:00:00.000014 2001-01-01 00:00:00.000110 2001-01-01 00:00:00.000114 2001-01-01 00:00:00.000210 2001-01-01 00:00:00.000214 2001-01-01 00:00:01.000000 2001-01-01 00:00:01.000004 2001-01-01 00:00:02.000002 2001-01-01 00:00:02.000006 ALTER TABLE t1 PARTITION BY RANGE COLUMNS (a) ( PARTITION p0 VALUES LESS THAN ('2001-01-01 00:00:00.000200'), PARTITION p1 VALUES LESS THAN ('2001-01-01 00:00:01'), PARTITION p2 VALUES LESS THAN ('2001-01-01 00:00:02.000003'), PARTITION p3 VALUES LESS THAN MAXVALUE ); ERROR HY000: Field 'a' is of a not allowed type for this type of partitioning SELECT * FROM t1 PARTITION(p0); a 2001-01-01 00:00:00.000003 2001-01-01 00:00:00.000011 2001-01-01 00:00:00.000015 2001-01-01 00:00:00.000111 2001-01-01 00:00:00.000115 2001-01-01 00:00:00.000211 2001-01-01 00:00:00.000215 2001-01-01 00:00:01.000003 2001-01-01 00:00:02.000003 SELECT * FROM t1 PARTITION(p1); a 2001-01-01 00:00:00.000000 2001-01-01 00:00:00.000004 2001-01-01 00:00:00.000012 2001-01-01 00:00:00.000016 2001-01-01 00:00:00.000112 2001-01-01 00:00:00.000116 2001-01-01 00:00:00.000212 2001-01-01 00:00:00.000216 2001-01-01 00:00:01.000002 2001-01-01 00:00:01.000006 2001-01-01 00:00:02.000000 2001-01-01 00:00:02.000004 SELECT * FROM t1 PARTITION(p2); a 2001-01-01 00:00:00.000001 2001-01-01 00:00:00.000005 2001-01-01 00:00:00.000013 2001-01-01 00:00:00.000113 2001-01-01 00:00:00.000213 2001-01-01 00:00:01.000001 2001-01-01 00:00:01.000005 2001-01-01 00:00:02.000001 2001-01-01 00:00:02.000005 SELECT * FROM t1 PARTITION(p3); a 2001-01-01 00:00:00.000002 2001-01-01 00:00:00.000006 2001-01-01 00:00:00.000010 2001-01-01 00:00:00.000014 2001-01-01 00:00:00.000110 2001-01-01 00:00:00.000114 2001-01-01 00:00:00.000210 2001-01-01 00:00:00.000214 2001-01-01 00:00:01.000000 2001-01-01 00:00:01.000004 2001-01-01 00:00:02.000002 2001-01-01 00:00:02.000006 DROP TABLE t1; # # CAST from TIMESTAMP to TATETIME # CREATE TABLE t1 (a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00'); INSERT INTO t1 VALUES ('2001-01-01 11:22:33', '2001-01-01 11:22:33.123456'); CREATE TABLE t2 AS SELECT CAST(a AS DATETIME), CAST(b AS DATETIME) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CAST(a AS DATETIME)` datetime DEFAULT NULL, `CAST(b AS DATETIME)` datetime DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t2; CAST(a AS DATETIME) CAST(b AS DATETIME) 2001-01-01 11:22:33 2001-01-01 11:22:33 DROP TABLE t2; CREATE TABLE t2 AS SELECT CAST(a AS DATETIME(0)), CAST(b AS DATETIME(0)) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CAST(a AS DATETIME(0))` datetime DEFAULT NULL, `CAST(b AS DATETIME(0))` datetime DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t2; CAST(a AS DATETIME(0)) CAST(b AS DATETIME(0)) 2001-01-01 11:22:33 2001-01-01 11:22:33 DROP TABLE t2; CREATE TABLE t2 AS SELECT CAST(a AS DATETIME(6)), CAST(b AS DATETIME(6)) FROM t1; SHOW CREATE TABLE t2; Table Create Table t2 CREATE TABLE `t2` ( `CAST(a AS DATETIME(6))` datetime(6) DEFAULT NULL, `CAST(b AS DATETIME(6))` datetime(6) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t2; CAST(a AS DATETIME(6)) CAST(b AS DATETIME(6)) 2001-01-01 11:22:33.000000 2001-01-01 11:22:33.123456 DROP TABLE t2; DROP TABLE t1; # # Testing comparison between a TIMESTAMP(6) field and a DATETIME(N) cast # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 10:11:12.000000'); INSERT INTO t1 VALUES ('2001-01-01 10:11:12.000001'); INSERT INTO t1 VALUES ('2001-01-01 10:11:12.000002'); INSERT INTO t1 VALUES ('2001-01-01 10:11:12.000003'); SELECT * FROM t1 WHERE a=CAST('2001-01-01 10:11:12.000003' AS DATETIME(6)); a 2001-01-01 10:11:12.000003 SELECT * FROM t1 WHERE a=CAST('2001-01-01 10:11:12.000003' AS DATETIME(0)); a 2001-01-01 10:11:12.000000 DROP TABLE t1; # # Testing TIMESTAMP subquery in combination with CAST to DATETIME(N) # CREATE TABLE t1 (a TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, b TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00'); INSERT INTO t1 VALUES ('2001-01-01 23:00:00', '2001-01-01 23:00:00.123456'); SELECT CAST('2001-01-01 23:00:00' AS DATETIME) = (SELECT a FROM t1); CAST('2001-01-01 23:00:00' AS DATETIME) = (SELECT a FROM t1) 1 SELECT CAST('2001-01-01 23:00:00' AS DATETIME(6)) = (SELECT a FROM t1); CAST('2001-01-01 23:00:00' AS DATETIME(6)) = (SELECT a FROM t1) 1 SELECT CAST('2001-01-01 23:00:00.123456' AS DATETIME(0)) = (SELECT a FROM t1); CAST('2001-01-01 23:00:00.123456' AS DATETIME(0)) = (SELECT a FROM t1) 1 SELECT CAST('2001-01-01 23:00:00.123456' AS DATETIME(6)) = (SELECT b FROM t1); CAST('2001-01-01 23:00:00.123456' AS DATETIME(6)) = (SELECT b FROM t1) 1 DROP TABLE t1; # # Testing TIMESTAMP column with function MICROSECOND # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 11:12:13.000001'); INSERT INTO t1 VALUES ('2001-01-01 11:12:13.100001'); INSERT INTO t1 VALUES ('2001-01-01 11:12:13.999999'); SELECT a, MICROSECOND(a) FROM t1; a MICROSECOND(a) 2001-01-01 11:12:13.000001 1 2001-01-01 11:12:13.100001 100001 2001-01-01 11:12:13.999999 999999 SELECT a, EXTRACT(MICROSECOND FROM a) FROM t1; a EXTRACT(MICROSECOND FROM a) 2001-01-01 11:12:13.000001 1 2001-01-01 11:12:13.100001 100001 2001-01-01 11:12:13.999999 999999 DROP TABLE t1; # # Testing PS # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); PREPARE stmt FROM 'INSERT INTO t1 VALUES (?)'; SET @a='2001-01-01 11:22:33.123456'; SET @b=20010101112233.123456; SET @c=0.123456e0; EXECUTE stmt USING @a; EXECUTE stmt USING @c; Warnings: Warning 1265 Data truncated for column 'a' at row 1 DEALLOCATE PREPARE stmt; SELECT * FROM t1; a 2001-01-01 11:22:33.123456 0000-00-00 00:00:00.000000 PREPARE stmt FROM 'SELECT * FROM t1 WHERE a=?'; EXECUTE stmt USING @a; a 2001-01-01 11:22:33.123456 EXECUTE stmt USING @b; a 2001-01-01 11:22:33.123456 EXECUTE stmt USING @c; a Warnings: Warning 1292 Incorrect datetime value: '0.123456' for column 'a' at row 1 DEALLOCATE PREPARE stmt; DROP TABLE t1; # # Testing TIMESTAMP(6) and user variables # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 11:22:33.123456'); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.100000'); SELECT * FROM t1; a 2001-01-01 11:22:33.123456 2001-01-01 00:00:00.100000 SET @a='2001-01-01 11:22:33.123456'; SELECT * FROM t1 WHERE a=@a; a 2001-01-01 11:22:33.123456 SET @a=20010101112233.123456; SELECT * FROM t1 WHERE a=@a; a 2001-01-01 11:22:33.123456 SET @a=20010101000000.1e0; SELECT @a; @a 20010101000000.1 SELECT * FROM t1 WHERE a=@a; a SET @a=NULL; SELECT a INTO @a FROM t1 LIMIT 1; SELECT @a; @a 2001-01-01 11:22:33.123456 DROP TABLE t1; CREATE TABLE t1 AS SELECT @a AS a; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` longtext ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t1; a 2001-01-01 11:22:33.123456 DROP TABLE t1; # # Testing SP # CREATE PROCEDURE p1 () BEGIN DECLARE a TIMESTAMP(6); SET a='2001-01-01 11:22:33.123'; SELECT a; END// SHOW CREATE PROCEDURE p1// Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation p1 NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() BEGIN DECLARE a TIMESTAMP(6); SET a='2001-01-01 11:22:33.123'; SELECT a; END latin1 latin1_swedish_ci latin1_swedish_ci CALL p1// a 2001-01-01 11:22:33.123000 DROP PROCEDURE p1// CREATE PROCEDURE p1 (a TIMESTAMP(6)) BEGIN SELECT a; END// SHOW CREATE PROCEDURE p1// Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation p1 NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`(a TIMESTAMP(6)) BEGIN SELECT a; END latin1 latin1_swedish_ci latin1_swedish_ci CALL p1(20010101112233)// a 2001-01-01 11:22:33.000000 CALL p1(20010101112233.123)// a 2001-01-01 11:22:33.123000 CALL p1(0.123e0)// a 0000-00-00 00:00:00.000000 Warnings: Warning 1265 Data truncated for column 'a' at row 1 CALL p1('2001-01-01 11:22:33.123')// a 2001-01-01 11:22:33.123000 DROP PROCEDURE p1// CREATE PROCEDURE p1() BEGIN DECLARE a TIMESTAMP(6); CREATE TABLE t1 AS SELECT a; SHOW CREATE TABLE t1; DROP TABLE t1; END// SHOW CREATE PROCEDURE p1// Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation p1 NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`() BEGIN DECLARE a TIMESTAMP(6); CREATE TABLE t1 AS SELECT a; SHOW CREATE TABLE t1; DROP TABLE t1; END latin1 latin1_swedish_ci latin1_swedish_ci CALL p1// Table Create Table t1 CREATE TABLE `t1` ( `a` timestamp(6) NULL DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP PROCEDURE p1// CREATE FUNCTION p1 (a TIMESTAMP(6)) RETURNS TIMESTAMP(6) BEGIN RETURN a; END// SHOW CREATE FUNCTION p1// Function sql_mode Create Function character_set_client collation_connection Database Collation p1 NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` FUNCTION `p1`(a TIMESTAMP(6)) RETURNS timestamp(6) BEGIN RETURN a; END latin1 latin1_swedish_ci latin1_swedish_ci SELECT p1(20010101112233)// p1(20010101112233) 2001-01-01 11:22:33.000000 SELECT p1(20010101112233.123)// p1(20010101112233.123) 2001-01-01 11:22:33.123000 DROP FUNCTION p1// # # Testing INFORMATION_SCHEMA.COLUMNS # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='t1';; TABLE_CATALOG def TABLE_SCHEMA test TABLE_NAME t1 COLUMN_NAME a ORDINAL_POSITION 1 COLUMN_DEFAULT CURRENT_TIMESTAMP(6) IS_NULLABLE NO DATA_TYPE timestamp CHARACTER_MAXIMUM_LENGTH NULL CHARACTER_OCTET_LENGTH NULL NUMERIC_PRECISION NULL NUMERIC_SCALE NULL DATETIME_PRECISION 6 CHARACTER_SET_NAME NULL COLLATION_NAME NULL COLUMN_TYPE timestamp(6) COLUMN_KEY EXTRA on update CURRENT_TIMESTAMP(6) PRIVILEGES # COLUMN_COMMENT GENERATION_EXPRESSION DROP TABLE t1; # # SELECT from a subquery # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.123456'), ('2001-01-01 11:11:11.123456'); SELECT * FROM (SELECT * FROM t1) t12; a 2001-01-01 00:00:00.123456 2001-01-01 11:11:11.123456 DROP TABLE t1; # # Testing IN and = subqueries # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.123456'), ('2001-01-01 11:11:11.123456'); SELECT * FROM t1 WHERE a IN (SELECT MIN(a) FROM t1); a 2001-01-01 00:00:00.123456 SELECT * FROM t1 WHERE a = (SELECT a FROM t1 ORDER BY a DESC LIMIT 1); a 2001-01-01 11:11:11.123456 DROP TABLE t1; # # Testing IN subquery + GROUP # CREATE TABLE t1 (id INT, a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES (1, '2001-01-01 00:00:00.123456'), (1, '2001-01-01 11:00:00.123456'); INSERT INTO t1 VALUES (2, '2001-01-01 00:01:00.123456'), (2, '2001-01-01 11:01:00.123456'); SELECT * FROM t1 WHERE a IN (SELECT MAX(a) FROM t1 GROUP BY id); id a 1 2001-01-01 11:00:00.123456 2 2001-01-01 11:01:00.123456 DROP TABLE t1; # # Testing VIEW # CREATE TABLE t1 (a TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.123456'), ('2001-01-01 11:11:11.123456'); CREATE VIEW v1 AS SELECT a FROM t1; SELECT * FROM v1 WHERE a='2001-01-01 00:00:00.123456'; a 2001-01-01 00:00:00.123456 SELECT MIN(a), MAX(a) FROM v1; MIN(a) MAX(a) 2001-01-01 00:00:00.123456 2001-01-01 11:11:11.123456 SELECT * FROM t1 WHERE a IN (SELECT MAX(a) FROM v1); a 2001-01-01 11:11:11.123456 DROP VIEW v1; CREATE VIEW v1 AS SELECT MAX(a) AS a FROM t1; SELECT * FROM v1; a 2001-01-01 11:11:11.123456 SELECT * FROM t1 WHERE a=(SELECT a FROM v1); a 2001-01-01 11:11:11.123456 DROP VIEW v1; DROP TABLE t1; # # Testing default value # CREATE TABLE t1 (a DATETIME(6), b TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 (a) VALUES (CURRENT_TIMESTAMP(6)); SELECT a=b FROM t1; a=b 1 DROP TABLE t1; SET time_zone=DEFAULT; CREATE TABLE t1 (a DATETIME(6), b TIME(6)); INSERT INTO t1 VALUES ('1212-12-12 21:21:21.555555', '00:00:00.21'); INSERT INTO t1 VALUES ('9999-12-31 23:59:59.999999', '00:00:00.000001'); SELECT a + b FROM t1; a + b 12121212212121.765555 99991231235960.000000 DROP TABLE t1; # # Testing that IF always returns correct number of decimal digits # SET timestamp=UNIX_TIMESTAMP('2011-11-10 18:04:30'); CREATE TABLE t1 (dt2 DATETIME(2), t3 TIME(3), d DATE); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.12', '00:00:00.567', '2002-01-01'); SELECT if(0, dt2, t3), CONCAT(if(0, dt2, t3)) FROM t1; if(0, dt2, t3) CONCAT(if(0, dt2, t3)) 2011-11-10 00:00:00.567 2011-11-10 00:00:00.567 SELECT if(1, dt2, t3), CONCAT(if(1, dt2, t3)) FROM t1; if(1, dt2, t3) CONCAT(if(1, dt2, t3)) 2001-01-01 00:00:00.120 2001-01-01 00:00:00.120 SELECT if(0, t3, dt2), CONCAT(if(0, t3, dt2)) FROM t1; if(0, t3, dt2) CONCAT(if(0, t3, dt2)) 2001-01-01 00:00:00.120 2001-01-01 00:00:00.120 SELECT if(1, t3, dt2), CONCAT(if(1, t3, dt2)) FROM t1; if(1, t3, dt2) CONCAT(if(1, t3, dt2)) 2011-11-10 00:00:00.567 2011-11-10 00:00:00.567 SELECT if(0, t3, d), CONCAT(if(0, t3, d)) FROM t1; if(0, t3, d) CONCAT(if(0, t3, d)) 2002-01-01 00:00:00.000 2002-01-01 00:00:00.000 SELECT if(1, t3, d), CONCAT(if(1, t3, d)) FROM t1; if(1, t3, d) CONCAT(if(1, t3, d)) 2011-11-10 00:00:00.567 2011-11-10 00:00:00.567 SELECT if(0, d, t3), CONCAT(if(0, d, t3)) FROM t1; if(0, d, t3) CONCAT(if(0, d, t3)) 2011-11-10 00:00:00.567 2011-11-10 00:00:00.567 SELECT if(1, d, t3), CONCAT(if(1, d, t3)) FROM t1; if(1, d, t3) CONCAT(if(1, d, t3)) 2002-01-01 00:00:00.000 2002-01-01 00:00:00.000 DROP TABLE t1; SET timestamp=DEFAULT; # # Testing that CASE always returns correct number of decimal digits # SET timestamp=UNIX_TIMESTAMP('2011-11-10 18:04:30'); CREATE TABLE t1 (dt2 DATETIME(2), t3 TIME(3), d DATE); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.12', '00:00:00.567', '2002-01-01'); SELECT CASE WHEN 0 THEN dt2 ELSE t3 END FROM t1; CASE WHEN 0 THEN dt2 ELSE t3 END 2011-11-10 00:00:00.567 SELECT CONCAT(CASE WHEN 0 THEN dt2 ELSE t3 END) FROM t1; CONCAT(CASE WHEN 0 THEN dt2 ELSE t3 END) 2011-11-10 00:00:00.567 SELECT CASE WHEN 1 THEN dt2 ELSE t3 END FROM t1; CASE WHEN 1 THEN dt2 ELSE t3 END 2001-01-01 00:00:00.120 SELECT CONCAT(CASE WHEN 1 THEN dt2 ELSE t3 END) FROM t1; CONCAT(CASE WHEN 1 THEN dt2 ELSE t3 END) 2001-01-01 00:00:00.120 SELECT CASE WHEN 0 THEN t3 ELSE dt2 END FROM t1; CASE WHEN 0 THEN t3 ELSE dt2 END 2001-01-01 00:00:00.120 SELECT CONCAT(CASE WHEN 0 THEN t3 ELSE dt2 END) FROM t1; CONCAT(CASE WHEN 0 THEN t3 ELSE dt2 END) 2001-01-01 00:00:00.120 SELECT CASE WHEN 1 THEN t3 ELSE dt2 END FROM t1; CASE WHEN 1 THEN t3 ELSE dt2 END 2011-11-10 00:00:00.567 SELECT CONCAT(CASE WHEN 1 THEN t3 ELSE dt2 END) FROM t1; CONCAT(CASE WHEN 1 THEN t3 ELSE dt2 END) 2011-11-10 00:00:00.567 SELECT CASE WHEN 0 THEN d ELSE t3 END FROM t1; CASE WHEN 0 THEN d ELSE t3 END 2011-11-10 00:00:00.567 SELECT CONCAT(CASE WHEN 0 THEN d ELSE t3 END) FROM t1; CONCAT(CASE WHEN 0 THEN d ELSE t3 END) 2011-11-10 00:00:00.567 SELECT CASE WHEN 1 THEN d ELSE t3 END FROM t1; CASE WHEN 1 THEN d ELSE t3 END 2002-01-01 00:00:00.000 SELECT CONCAT(CASE WHEN 1 THEN d ELSE t3 END) FROM t1; CONCAT(CASE WHEN 1 THEN d ELSE t3 END) 2002-01-01 00:00:00.000 SELECT CASE WHEN 0 THEN t3 ELSE d END FROM t1; CASE WHEN 0 THEN t3 ELSE d END 2002-01-01 00:00:00.000 SELECT CONCAT(CASE WHEN 0 THEN t3 ELSE d END) FROM t1; CONCAT(CASE WHEN 0 THEN t3 ELSE d END) 2002-01-01 00:00:00.000 SELECT CASE WHEN 1 THEN t3 ELSE d END FROM t1; CASE WHEN 1 THEN t3 ELSE d END 2011-11-10 00:00:00.567 SELECT CONCAT(CASE WHEN 1 THEN t3 ELSE d END) FROM t1; CONCAT(CASE WHEN 1 THEN t3 ELSE d END) 2011-11-10 00:00:00.567 DROP TABLE t1; SET timestamp=DEFAULT; # # Testing that COALESCE always returns correct number of decimal digits # SET timestamp=UNIX_TIMESTAMP('2011-11-10 18:04:30'); CREATE TABLE t1 (dt2 DATETIME(2), t3 TIME(3), d DATE); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.12', '00:00:00.567', '2002-01-01'); SELECT COALESCE(dt2, t3) FROM t1; COALESCE(dt2, t3) 2001-01-01 00:00:00.120 SELECT CONCAT(COALESCE(dt2, t3)) FROM t1; CONCAT(COALESCE(dt2, t3)) 2001-01-01 00:00:00.120 SELECT COALESCE(t3, dt2) FROM t1; COALESCE(t3, dt2) 2011-11-10 00:00:00.567 SELECT CONCAT(COALESCE(t3, dt2)) FROM t1; CONCAT(COALESCE(t3, dt2)) 2011-11-10 00:00:00.567 SELECT COALESCE(d, t3) FROM t1; COALESCE(d, t3) 2002-01-01 00:00:00.000 SELECT CONCAT(COALESCE(d, t3)) FROM t1; CONCAT(COALESCE(d, t3)) 2002-01-01 00:00:00.000 SELECT COALESCE(t3, d) FROM t1; COALESCE(t3, d) 2011-11-10 00:00:00.567 SELECT CONCAT(COALESCE(t3, d)) FROM t1; CONCAT(COALESCE(t3, d)) 2011-11-10 00:00:00.567 DROP TABLE t1; SET timestamp=DEFAULT; # # Testing that IFNULL always returns correct number of decimal digits # SET timestamp=UNIX_TIMESTAMP('2011-11-10 18:04:30'); CREATE TABLE t1 (dt2 DATETIME(2), t3 TIME(3), d DATE); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.12', '00:00:00.567', '2002-01-01'); SELECT IFNULL(dt2, t3) FROM t1; IFNULL(dt2, t3) 2001-01-01 00:00:00.120 SELECT CONCAT(IFNULL(dt2, t3)) FROM t1; CONCAT(IFNULL(dt2, t3)) 2001-01-01 00:00:00.120 SELECT IFNULL(t3, dt2) FROM t1; IFNULL(t3, dt2) 2011-11-10 00:00:00.567 SELECT CONCAT(IFNULL(t3, dt2)) FROM t1; CONCAT(IFNULL(t3, dt2)) 2011-11-10 00:00:00.567 SELECT IFNULL(d, t3) FROM t1; IFNULL(d, t3) 2002-01-01 00:00:00.000 SELECT CONCAT(IFNULL(d, t3)) FROM t1; CONCAT(IFNULL(d, t3)) 2002-01-01 00:00:00.000 SELECT IFNULL(t3, d) FROM t1; IFNULL(t3, d) 2011-11-10 00:00:00.567 SELECT CONCAT(IFNULL(t3, d)) FROM t1; CONCAT(IFNULL(t3, d)) 2011-11-10 00:00:00.567 DROP TABLE t1; SET timestamp=DEFAULT; # # Testing that LEAST always returns correct number of decimal digits # SET timestamp=UNIX_TIMESTAMP('2011-11-10 18:04:30'); CREATE TABLE t1 (dt2 DATETIME(2), t3 TIME(3), d DATE); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.12', '00:00:00.567', '2002-01-01'); INSERT INTO t1 VALUES ('2012-01-01 00:00:00.12', '00:00:00.567', '2013-01-01'); SELECT LEAST(dt2, t3) FROM t1; LEAST(dt2, t3) 2001-01-01 00:00:00.120 2011-11-10 00:00:00.567 SELECT CONCAT(LEAST(dt2, t3)) FROM t1; CONCAT(LEAST(dt2, t3)) 2001-01-01 00:00:00.120 2011-11-10 00:00:00.567 SELECT LEAST(t3, dt2) FROM t1; LEAST(t3, dt2) 2001-01-01 00:00:00.120 2011-11-10 00:00:00.567 SELECT CONCAT(LEAST(t3, dt2)) FROM t1; CONCAT(LEAST(t3, dt2)) 2001-01-01 00:00:00.120 2011-11-10 00:00:00.567 SELECT LEAST(d, t3) FROM t1; LEAST(d, t3) 2002-01-01 00:00:00.000 2011-11-10 00:00:00.567 SELECT CONCAT(LEAST(d, t3)) FROM t1; CONCAT(LEAST(d, t3)) 2002-01-01 00:00:00.000 2011-11-10 00:00:00.567 SELECT LEAST(t3, d) FROM t1; LEAST(t3, d) 2002-01-01 00:00:00.000 2011-11-10 00:00:00.567 SELECT CONCAT(LEAST(t3, d)) FROM t1; CONCAT(LEAST(t3, d)) 2002-01-01 00:00:00.000 2011-11-10 00:00:00.567 DROP TABLE t1; SET timestamp=DEFAULT; # # Testing that GREATEST always returns correct number of decimal digits # SET timestamp=UNIX_TIMESTAMP('2011-11-10 18:04:30'); CREATE TABLE t1 (dt2 DATETIME(2), t3 TIME(3), d DATE); INSERT INTO t1 VALUES ('2001-01-01 00:00:00.12', '00:00:00.567', '2002-01-01'); INSERT INTO t1 VALUES ('2012-01-01 00:00:00.12', '00:00:00.567', '2013-01-01'); SELECT GREATEST(dt2, t3) FROM t1; GREATEST(dt2, t3) 2011-11-10 00:00:00.567 2012-01-01 00:00:00.120 SELECT CONCAT(GREATEST(dt2, t3)) FROM t1; CONCAT(GREATEST(dt2, t3)) 2011-11-10 00:00:00.567 2012-01-01 00:00:00.120 SELECT GREATEST(t3, dt2) FROM t1; GREATEST(t3, dt2) 2011-11-10 00:00:00.567 2012-01-01 00:00:00.120 SELECT CONCAT(GREATEST(t3, dt2)) FROM t1; CONCAT(GREATEST(t3, dt2)) 2011-11-10 00:00:00.567 2012-01-01 00:00:00.120 SELECT GREATEST(d, t3) FROM t1; GREATEST(d, t3) 2011-11-10 00:00:00.567 2013-01-01 00:00:00.000 SELECT CONCAT(GREATEST(d, t3)) FROM t1; CONCAT(GREATEST(d, t3)) 2011-11-10 00:00:00.567 2013-01-01 00:00:00.000 SELECT GREATEST(t3, d) FROM t1; GREATEST(t3, d) 2011-11-10 00:00:00.567 2013-01-01 00:00:00.000 SELECT CONCAT(GREATEST(t3, d)) FROM t1; CONCAT(GREATEST(t3, d)) 2011-11-10 00:00:00.567 2013-01-01 00:00:00.000 DROP TABLE t1; SET timestamp=DEFAULT; # # Testing that hybrid type functions correctly convert # from DATETIME to TIME # CREATE TABLE t1 (a DATETIME(3)); INSERT INTO t1 VALUES ('2001-01-01 10:20:30.123'); SELECT CAST(IF(0, a, a) AS TIME(6)) FROM t1; CAST(IF(0, a, a) AS TIME(6)) 10:20:30.123000 SELECT CAST(COALESCE(a, a) AS TIME(6)) FROM t1; CAST(COALESCE(a, a) AS TIME(6)) 10:20:30.123000 SELECT CAST(IFNULL(a, a) AS TIME(6)) FROM t1; CAST(IFNULL(a, a) AS TIME(6)) 10:20:30.123000 SELECT CAST(CASE WHEN 0 THEN a ELSE a END AS TIME(6)) FROM t1; CAST(CASE WHEN 0 THEN a ELSE a END AS TIME(6)) 10:20:30.123000 SELECT CAST(GREATEST(a, a) AS TIME(6)) FROM t1; CAST(GREATEST(a, a) AS TIME(6)) 10:20:30.123000 SELECT CAST(LEAST(a, a) AS TIME(6)) FROM t1; CAST(LEAST(a, a) AS TIME(6)) 10:20:30.123000 DROP TABLE t1; # # Testing that hybrid type functions correctly convert # from TIME to DATETIME # SET timestamp=UNIX_TIMESTAMP('2011-11-10 00:00:00'); CREATE TABLE t1 (a TIME(3)); INSERT INTO t1 VALUES ('10:20:30.123'); SELECT CAST(IF(0, a, a) AS DATETIME(6)) FROM t1; CAST(IF(0, a, a) AS DATETIME(6)) 2011-11-10 10:20:30.123000 SELECT CAST(COALESCE(a, a) AS DATETIME(6)) FROM t1; CAST(COALESCE(a, a) AS DATETIME(6)) 2011-11-10 10:20:30.123000 SELECT CAST(IFNULL(a, a) AS DATETIME(6)) FROM t1; CAST(IFNULL(a, a) AS DATETIME(6)) 2011-11-10 10:20:30.123000 SELECT CAST(CASE WHEN 0 THEN a ELSE a END AS DATETIME(6)) FROM t1; CAST(CASE WHEN 0 THEN a ELSE a END AS DATETIME(6)) 2011-11-10 10:20:30.123000 SELECT CAST(GREATEST(a, a) AS DATETIME(6)) FROM t1; CAST(GREATEST(a, a) AS DATETIME(6)) 2011-11-10 10:20:30.123000 SELECT CAST(LEAST(a, a) AS DATETIME(6)) FROM t1; CAST(LEAST(a, a) AS DATETIME(6)) 2011-11-10 10:20:30.123000 DROP TABLE t1; SET timestamp=DEFAULT; # # Storing TIME functions into VARCHAR column # SET @@timestamp=1000000000; CREATE TABLE t1 (a VARCHAR(32)); INSERT INTO t1 VALUES (CAST('00:00:00' AS TIME)); INSERT INTO t1 VALUES (CAST('00:00:00' AS TIME(6))); SELECT * FROM t1; a 00:00:00 00:00:00.000000 DELETE FROM t1; INSERT INTO t1 VALUES (SEC_TO_TIME(10)); INSERT INTO t1 VALUES (SEC_TO_TIME(-0.1)); INSERT INTO t1 VALUES (SEC_TO_TIME(-0.01)); INSERT INTO t1 VALUES (SEC_TO_TIME(-0.001)); INSERT INTO t1 VALUES (SEC_TO_TIME(-0.0001)); INSERT INTO t1 VALUES (SEC_TO_TIME(-0.00001)); INSERT INTO t1 VALUES (SEC_TO_TIME(-0.000001)); INSERT INTO t1 VALUES (SEC_TO_TIME(10.0)); INSERT INTO t1 VALUES (SEC_TO_TIME(10.1)); INSERT INTO t1 VALUES (SEC_TO_TIME(10.12)); INSERT INTO t1 VALUES (SEC_TO_TIME(10.123)); INSERT INTO t1 VALUES (SEC_TO_TIME(10.1234)); INSERT INTO t1 VALUES (SEC_TO_TIME(10.12345)); INSERT INTO t1 VALUES (SEC_TO_TIME(10.123456)); SELECT * FROM t1; a 00:00:10 -00:00:00.1 -00:00:00.01 -00:00:00.001 -00:00:00.0001 -00:00:00.00001 -00:00:00.000001 00:00:10.0 00:00:10.1 00:00:10.12 00:00:10.123 00:00:10.1234 00:00:10.12345 00:00:10.123456 DELETE FROM t1; INSERT INTO t1 VALUES (TIMEDIFF(NOW(), NOW())); INSERT INTO t1 VALUES (TIMEDIFF(NOW(6), NOW(6))); SELECT * FROM t1; a 00:00:00 00:00:00.000000 DELETE FROM t1; INSERT INTO t1 VALUES (MAKETIME(10, 10, 10)); INSERT INTO t1 VALUES (MAKETIME(10, 10, 10.1)); INSERT INTO t1 VALUES (MAKETIME(10, 10, 10.12)); INSERT INTO t1 VALUES (MAKETIME(10, 10, 10.123)); INSERT INTO t1 VALUES (MAKETIME(10, 10, 10.1234)); INSERT INTO t1 VALUES (MAKETIME(10, 10, 10.12345)); INSERT INTO t1 VALUES (MAKETIME(10, 10, 10.123456)); SELECT * FROM t1; a 10:10:10 10:10:10.1 10:10:10.12 10:10:10.123 10:10:10.1234 10:10:10.12345 10:10:10.123456 DELETE FROM t1; INSERT INTO t1 VALUES (CURRENT_TIME()); INSERT INTO t1 VALUES (CURRENT_TIME(6)); SELECT LENGTH(a) FROM t1; LENGTH(a) 8 15 DELETE FROM t1; DROP TABLE t1; SET @@timestamp=default; # # Storing DATETIME functions into VARCHAR column # SET @@time_zone='+00:00'; SET @@timestamp=1000000000; CREATE TABLE t1 (a VARCHAR(32)); INSERT INTO t1 VALUES (CAST('2001-01-01 00:00:00' AS DATETIME)); INSERT INTO t1 VALUES (CAST('2001-01-01 00:00:00' AS DATETIME(6))); SELECT * FROM t1; a 2001-01-01 00:00:00 2001-01-01 00:00:00.000000 DELETE FROM t1; INSERT INTO t1 VALUES (FROM_UNIXTIME(1000000000)); INSERT INTO t1 VALUES (FROM_UNIXTIME(1000000000.0)); INSERT INTO t1 VALUES (FROM_UNIXTIME(1000000000.1)); INSERT INTO t1 VALUES (FROM_UNIXTIME(1000000000.12)); INSERT INTO t1 VALUES (FROM_UNIXTIME(1000000000.123)); INSERT INTO t1 VALUES (FROM_UNIXTIME(1000000000.1234)); INSERT INTO t1 VALUES (FROM_UNIXTIME(1000000000.12345)); INSERT INTO t1 VALUES (FROM_UNIXTIME(1000000000.123456)); SELECT * FROM t1; a 2001-09-09 01:46:40 2001-09-09 01:46:40.0 2001-09-09 01:46:40.1 2001-09-09 01:46:40.12 2001-09-09 01:46:40.123 2001-09-09 01:46:40.1234 2001-09-09 01:46:40.12345 2001-09-09 01:46:40.123456 DELETE FROM t1; INSERT INTO t1 VALUES (CONVERT_TZ(CAST('2001-01-01 00:00:00' AS DATETIME), '+00:00', '+10:00')); INSERT INTO t1 VALUES (CONVERT_TZ(CAST('2001-01-01 00:00:00' AS DATETIME(6)), '+00:00', '+10:00')); SELECT * FROM t1; a 2001-01-01 10:00:00 2001-01-01 10:00:00.000000 DELETE FROM t1; INSERT INTO t1 VALUES (CURRENT_TIMESTAMP()); INSERT INTO t1 VALUES (CURRENT_TIMESTAMP(6)); SELECT LENGTH(a) FROM t1; LENGTH(a) 19 26 DELETE FROM t1; DROP TABLE t1; SET @@timestamp=default; SET @@time_zone=default; # # Storing DATE/TIME hybrid functions into VARCHAR column # SET @@time_zone='+00:00'; SET @@timestamp=1000000000; CREATE TABLE t1 (a VARCHAR(32)); INSERT INTO t1 VALUES (ADDTIME('10:10:10', 10)); INSERT INTO t1 VALUES (ADDTIME('10:10:10', 10.123456)); INSERT INTO t1 VALUES (ADDTIME('10:10:10.000000', 10)); INSERT INTO t1 VALUES (ADDTIME('10:10:10.123456', 10)); SELECT * FROM t1; a 10:10:20 10:10:20.123456 10:10:20 10:10:20.123456 DELETE FROM t1; INSERT INTO t1 VALUES (ADDTIME(CURRENT_TIME, 10)); INSERT INTO t1 VALUES (ADDTIME(CURRENT_TIME, 10.123456)); INSERT INTO t1 VALUES (ADDTIME(CURRENT_TIMESTAMP, 10)); INSERT INTO t1 VALUES (ADDTIME(CURRENT_TIMESTAMP, 10.123456)); SELECT * FROM t1; a 01:46:50 01:46:50.123456 2001-09-09 01:46:50 2001-09-09 01:46:50.123456 DELETE FROM t1; INSERT INTO t1 VALUES(DATE_ADD('2001-01-01 00:00:00', INTERVAL 1 SECOND)); INSERT INTO t1 VALUES(DATE_ADD('2001-01-01 00:00:00', INTERVAL 1.1 SECOND)); INSERT INTO t1 VALUES(DATE_ADD('2001-01-01 00:00:00.000000', INTERVAL 1 SECOND)); INSERT INTO t1 VALUES(DATE_ADD('2001-01-01 00:00:00.123456', INTERVAL 1 SECOND)); SELECT * FROM t1; a 2001-01-01 00:00:01 2001-01-01 00:00:01.100000 2001-01-01 00:00:01 2001-01-01 00:00:01.123456 DELETE FROM t1; INSERT INTO t1 VALUES(DATE_ADD(CAST('2001-01-01 00:00:00' AS DATETIME), INTERVAL 1 SECOND)); INSERT INTO t1 VALUES(DATE_ADD(CAST('2001-01-01 00:00:00' AS DATETIME(6)), INTERVAL 1 SECOND)); INSERT INTO t1 VALUES(DATE_ADD(CAST('2001-01-01 00:00:00' AS DATETIME), INTERVAL 1.1 SECOND)); INSERT INTO t1 VALUES(DATE_ADD(CAST('2001-01-01 00:00:00' AS DATETIME(6)), INTERVAL 1.1 SECOND)); SELECT * FROM t1; a 2001-01-01 00:00:01 2001-01-01 00:00:01.000000 2001-01-01 00:00:01.1 2001-01-01 00:00:01.100000 DELETE FROM t1; INSERT INTO t1 VALUES(DATE_ADD(CAST('00:00:00' AS TIME), INTERVAL 1 SECOND)); INSERT INTO t1 VALUES(DATE_ADD(CAST('00:00:00' AS TIME(6)), INTERVAL 1 SECOND)); INSERT INTO t1 VALUES(DATE_ADD(CAST('00:00:00' AS TIME), INTERVAL 1.1 SECOND)); INSERT INTO t1 VALUES(DATE_ADD(CAST('00:00:00' AS TIME(6)), INTERVAL 1.1 SECOND)); SELECT * FROM t1; a 00:00:01 00:00:01.000000 00:00:01.1 00:00:01.100000 DELETE FROM t1; INSERT INTO t1 VALUES (STR_TO_DATE('2000', '%Y')); INSERT INTO t1 VALUES (STR_TO_DATE('2000 10', '%Y %h')); INSERT INTO t1 VALUES (STR_TO_DATE('2000 10 000000', '%Y %h %f')); INSERT INTO t1 VALUES (STR_TO_DATE('2000 10 123456', '%Y %h %f')); INSERT INTO t1 VALUES (STR_TO_DATE('2000 10 000000', '2000 %h 000000')); INSERT INTO t1 VALUES (STR_TO_DATE('2000 10 123456', '2000 %h 123456')); INSERT INTO t1 VALUES (STR_TO_DATE('2000 10 000000', '2000 %h %f')); INSERT INTO t1 VALUES (STR_TO_DATE('2000 10 123456', '2000 %h %f')); SELECT * FROM t1; a 2000-00-00 2000-00-00 10:00:00 2000-00-00 10:00:00.000000 2000-00-00 10:00:00.123456 10:00:00 10:00:00 10:00:00.000000 10:00:00.123456 DELETE FROM t1; DROP TABLE t1; SET @@timestamp=default; SET @@time_zone=default; # # Testing ALTER from DATE to various other temporal types # CREATE TABLE t1 (a DATE, b DATE, c DATE); INSERT INTO t1 VALUES ('2001-01-01', '2001-01-01', '2001-01-01'); ALTER TABLE t1 MODIFY a DATETIME(6), MODIFY b TIMESTAMP(6), MODIFY c TIME(6); SELECT * FROM t1; a b c 2001-01-01 00:00:00.000000 2001-01-01 00:00:00.000000 00:00:00.000000 DROP TABLE t1; # # Examples from the WL#946 section "Literals" # CREATE TABLE t1 (datetime_column DATETIME(1)); INSERT INTO t1 VALUES ('0000/1/1T1.23'); SELECT * FROM t1; datetime_column 0000-01-01 01:23:00.0 DROP TABLE t1; CREATE TABLE t1 (datetime_column DATETIME(1)); INSERT INTO t1 VALUES ('1111.11.11 11.11.11.55'); SELECT * FROM t1; datetime_column 1111-11-11 11:11:11.6 DROP TABLE t1; CREATE TABLE t1 (time_column TIME(1)); INSERT INTO t1 VALUES ('1.1'); SELECT * FROM t1; time_column 00:00:01.1 DROP TABLE t1; CREATE TABLE t1 (time_column TIME(1)); INSERT INTO t1 VALUES ('1:2:3:4'); Warnings: Warning 1265 Data truncated for column 'time_column' at row 1 SELECT * FROM t1; time_column 01:02:03.0 DROP TABLE t1; CREATE TABLE t1 (datetime_column DATETIME(2)); INSERT INTO t1 VALUES ('73-1-1 1:1:1.2'); SELECT * FROM t1; datetime_column 1973-01-01 01:01:01.20 DROP TABLE t1; CREATE TABLE t1 (datetime_column DATETIME(2)); INSERT INTO t1 VALUES (1101010101.55); SELECT * FROM t1; datetime_column 2000-11-01 01:01:01.55 DROP TABLE t1; SELECT TIMEDIFF('00:00:00.1', '00:00:00.3'); TIMEDIFF('00:00:00.1', '00:00:00.3') -00:00:00.2 # # Examples from the WL#946 section "Treat like decimals" # CREATE TABLE t1 (time_column TIME(6)); INSERT INTO t1 SET time_column=TIME'1.000001'; SELECT * FROM t1; time_column 00:00:01.000001 DROP TABLE t1; CREATE TABLE t1 (time_column TIME(6)); INSERT INTO t1 SET time_column=TIME'1.0000005'; SELECT * FROM t1; time_column 00:00:01.000001 DROP TABLE t1; CREATE TABLE t1 (time_column TIME(6)); INSERT INTO t1 SET time_column=TIME'1.0000005' + 0.000001; SELECT * FROM t1; time_column 00:00:01.000002 DROP TABLE t1; SELECT TIME'00:00:00.1' = TIME'00:00:00.100'; TIME'00:00:00.1' = TIME'00:00:00.100' 1 CREATE TABLE t1 (timestamp_column TIMESTAMP(0)); INSERT INTO t1 SET timestamp_column = '2005-01-01 23:59:59.9'; SELECT * FROM t1; timestamp_column 2005-01-02 00:00:00 DROP TABLE t1; CREATE TABLE t1 (ts3 TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3), ts2 TIMESTAMP(2) NOT NULL DEFAULT '0000-00-00 00:00:00'); CREATE TABLE t2 AS SELECT ts3 FROM t1 UNION SELECT ts2 FROM t1; SHOW COLUMNS FROM t2; Field Type Null Key Default Extra ts3 timestamp(3) NO 0000-00-00 00:00:00.000 DROP TABLE t2; DROP TABLE t1; # # Examples from the WL#946 section "Behaviour changes" # CREATE TABLE t1 AS SELECT TIME'10:10:10' + INTERVAL 1 SECOND, ADDTIME(TIME'10:10:10', '1.1'); SHOW COLUMNS FROM t1; Field Type Null Key Default Extra TIME'10:10:10' + INTERVAL 1 SECOND time YES NULL ADDTIME(TIME'10:10:10', '1.1') time(1) YES NULL DROP TABLE t1; SELECT TIME'10:10:10' + INTERVAL .6 SECOND; TIME'10:10:10' + INTERVAL .6 SECOND 10:10:10.6 SELECT TIME('20:20:20') + INTERVAL .4 SECOND; TIME('20:20:20') + INTERVAL .4 SECOND 20:20:20.4 CREATE TABLE t1 AS SELECT TIMESTAMP'2001-01-01 00:00:00' + INTERVAL 1 MICROSECOND AS a; SHOW COLUMNS FROM t1; Field Type Null Key Default Extra a datetime(6) YES NULL DROP TABLE t1; SELECT ADDTIME('9999-01-01 00:00:00', '.1'); ADDTIME('9999-01-01 00:00:00', '.1') 9999-01-01 00:00:00.100000 SELECT ADDTIME(TIMESTAMP'9999-01-01 00:00:00', '.1'); ADDTIME(TIMESTAMP'9999-01-01 00:00:00', '.1') 9999-01-01 00:00:00.1 SET timestamp=UNIX_TIMESTAMP('2001-01-01 10:20:30'); SELECT CURRENT_TIME(6), CURRENT_TIME; CURRENT_TIME(6) CURRENT_TIME 10:20:30.000000 10:20:30 SET timestamp=DEFAULT; SET time_zone='+00:00'; SELECT FROM_UNIXTIME(0.5); FROM_UNIXTIME(0.5) 1970-01-01 00:00:00.5 SET time_zone=DEFAULT; CREATE TABLE t1 (s1 DATETIME); INSERT INTO t1 VALUES ('2000-12-31 23:59:59.9'); SELECT * FROM t1; s1 2001-01-01 00:00:00 DROP TABLE t1; SELECT SEC_TO_TIME(36000.123); SEC_TO_TIME(36000.123) 10:00:00.123 SET timestamp=1308300674; SELECT @@timestamp; @@timestamp 1308300674.000000 CREATE TABLE t1 AS SELECT @@timestamp; SHOW COLUMNS FROM t1; Field Type Null Key Default Extra @@timestamp double(21,6) YES NULL DROP TABLE t1; SET timestamp=DEFAULT; # # Examples from the WL#946 section "Metadata" # CREATE TABLE t1 (a TIME(3)); SHOW COLUMNS FROM t1; Field Type Null Key Default Extra a time(3) YES NULL DESC t1; Field Type Null Key Default Extra a time(3) YES NULL SHOW FIELDS FROM t1; Field Type Null Key Default Extra a time(3) YES NULL SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `a` time(3) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DROP TABLE t1; # # Bug#12546965 - 60990: INCORRECT DATE COMPARISON # CREATE TABLE t1 (first_usage DATE, last_recharge DATETIME, life_time SMALLINT(4) UNSIGNED); INSERT INTO t1 VALUES ('2011-04-27', null, 900); SELECT DATE_ADD(GREATEST(first_usage, IFNULL(last_recharge, first_usage)), INTERVAL life_time DAY ) as dt, DATE_ADD(GREATEST(first_usage, IFNULL(last_recharge, first_usage)), INTERVAL life_time DAY ) < DATE('2011-04-28') as exp FROM t1; dt exp 2013-10-13 00:00:00 0 DROP TABLE t1; # # Bug 12565857 - 61193: INCORRECT ROUNDING OF DATE DECIMAL(17,3) # SELECT TIME(20110512154559.616), DATE(20110512154559.616), DATE(FLOOR(20110512154559.616)); TIME(20110512154559.616) DATE(20110512154559.616) DATE(FLOOR(20110512154559.616)) 15:45:59.616 2011-05-12 2011-05-12 # # "SELECT 3 IN (SELECT MAX(a) FROM t1)" returned 0 instead of NULL # at some point of WL#946 development. # This case is not covered elsewhere in the tests. # CREATE TABLE t1 (a INT); SELECT 3 IN (SELECT MAX(a) FROM t1); 3 IN (SELECT MAX(a) FROM t1) NULL DROP TABLE t1; CREATE TABLE t1(s1 DATETIME(6), s2 TIME(6)); INSERT INTO t1 VALUES ('1212-12-12 21:21:21.555555', '00:00:00.21'); SELECT s1 + s2 FROM t1; s1 + s2 12121212212121.765555 DROP TABLE t1; CREATE TABLE t1 (s1 TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6)); INSERT INTO t1 VALUES ('1971-01-01 00:00:00.0000099'); SELECT * FROM t1; s1 1971-01-01 00:00:00.000010 DROP TABLE t1; SET @@timestamp=UNIX_TIMESTAMP('2001-01-01 10:00:00'); CREATE TABLE t1 (s0 TIMESTAMP(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0), s6 TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00'); INSERT INTO t1 VALUES (TIME'11:11:11.123456', TIME'11:11:11.123456'); SELECT * FROM t1; s0 s6 2001-01-01 11:11:11 2001-01-01 11:11:11.123456 DROP TABLE t1; SET @@timestamp=default; SET sql_mode='' /* not 'no_zero_in_date' */; CREATE TABLE t1 (s1 DATETIME); INSERT INTO t1 VALUES ('1000-00-01 00:00:00'); INSERT INTO t1 VALUES (TIMESTAMP'1000-00-01 00:00:00'); SELECT * FROM t1; s1 1000-00-01 00:00:00 1000-00-01 00:00:00 DROP TABLE t1; SELECT SYSDATE(6) LIKE '____-__-__ __:__:__.______'; SYSDATE(6) LIKE '____-__-__ __:__:__.______' 1 SELECT SYSDATE(6) NOT LIKE '%.000000' || SYSDATE(6) NOT LIKE '%.000000'; SYSDATE(6) NOT LIKE '%.000000' || SYSDATE(6) NOT LIKE '%.000000' 1 CREATE TABLE t1 (s1 DATETIME(2)); INSERT INTO t1 VALUES ('1970-01-01 11:11:11.1234'); SELECT * FROM t1; s1 1970-01-01 11:11:11.12 DROP TABLE t1; CREATE TABLE t1 (s1 DATETIME(2)); INSERT INTO t1 VALUES (TIMESTAMP '0001-01-01 00:00:00.05'); SELECT TIMESTAMPADD(second, 1, s1) FROM t1; TIMESTAMPADD(second, 1, s1) 0001-01-01 00:00:01.05 DROP TABLE t1; CREATE TABLE t1 AS SELECT TIME'11:11:11.1234567'; SHOW COLUMNS FROM t1; Field Type Null Key Default Extra TIME'11:11:11.1234567' time(6) NO 00:00:00.000000 SELECT * FROM t1; TIME'11:11:11.1234567' 11:11:11.123457 DROP TABLE t1; CREATE TABLE t1 (s1 datetime(6)); INSERT INTO t1 VALUES ('2011-05-18 16:17:11.291816'); SELECT MAX(s1), MAX(s1 + 0), MAX(s1) FROM t1; MAX(s1) MAX(s1 + 0) MAX(s1) 2011-05-18 16:17:11.291816 20110518161711.291816 2011-05-18 16:17:11.291816 DROP TABLE t1; SELECT TIMESTAMP'2011-05-18 16:17:11.'; TIMESTAMP'2011-05-18 16:17:11.' 2011-05-18 16:17:11 SELECT TIMESTAMP('2011-05-18 16:17:11.2', '11.29'); TIMESTAMP('2011-05-18 16:17:11.2', '11.29') 2011-05-18 16:17:22.49 SELECT TIMESTAMPADD(second, 1, '2011-05-18 16:17:11.0'); TIMESTAMPADD(second, 1, '2011-05-18 16:17:11.0') 2011-05-18 16:17:12 SELECT DATE_ADD('2011-05-18 16:17:11.0', INTERVAL 1 SECOND); DATE_ADD('2011-05-18 16:17:11.0', INTERVAL 1 SECOND) 2011-05-18 16:17:12 SELECT TIMESTAMPADD(second, 1.1, '2011-05-18 16:17:11.0'); TIMESTAMPADD(second, 1.1, '2011-05-18 16:17:11.0') 2011-05-18 16:17:12.100000 SELECT DATE_ADD('2011-05-18 16:17:11.0', INTERVAL 1.1 SECOND); DATE_ADD('2011-05-18 16:17:11.0', INTERVAL 1.1 SECOND) 2011-05-18 16:17:12.100000 CREATE TABLE t1 (time_column TIME(6)); INSERT INTO t1 VALUES (0); UPDATE t1 SET time_column=TIME '1.0000005'; SELECT * FROM t1; time_column 00:00:01.000001 DROP TABLE t1; CREATE TABLE t1 (time_column TIME(6)); INSERT INTO t1 VALUES (0); UPDATE t1 SET time_column=TIME '1.0000005' + 0.000001; SELECT * FROM t1; time_column 00:00:01.000002 DROP TABLE t1; CREATE TABLE t1 (timestamp_column TIMESTAMP(0)); INSERT INTO t1 VALUES (DEFAULT); UPDATE t1 SET timestamp_column = '2005-01-01 23:59:59.9'; SELECT * FROM t1; timestamp_column 2005-01-02 00:00:00 DROP TABLE t1; CREATE TABLE t1 AS SELECT TIME('00:00:00.123'); SHOW COLUMNS FROM t1; Field Type Null Key Default Extra TIME('00:00:00.123') time(3) YES NULL SELECT * FROM t1; TIME('00:00:00.123') 00:00:00.123 DROP TABLE t1; CREATE TABLE t1 AS SELECT TIMESTAMP('2000-01-01 00:00:00.123'); SHOW COLUMNS FROM t1; Field Type Null Key Default Extra TIMESTAMP('2000-01-01 00:00:00.123') datetime(3) YES NULL SELECT * FROM t1; TIMESTAMP('2000-01-01 00:00:00.123') 2000-01-01 00:00:00.123 DROP TABLE t1; CREATE TABLE t1 AS SELECT TIME'10:20:30.1234567'; SHOW COLUMNS FROM t1; Field Type Null Key Default Extra TIME'10:20:30.1234567' time(6) NO 00:00:00.000000 SELECT * FROM t1; TIME'10:20:30.1234567' 10:20:30.123457 DROP TABLE t1; CREATE TABLE t1 (a TIME(1)); INSERT INTO t1 VALUES ('1.1'); SELECT * FROM t1; a 00:00:01.1 DROP TABLE t1; SET time_zone='+00:00'; SET @@timestamp=UNIX_TIMESTAMP('2011-09-21 20:40:05.123456'); CREATE TABLE t1 AS SELECT UNIX_TIMESTAMP(CURRENT_TIMESTAMP(6)); SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `UNIX_TIMESTAMP(CURRENT_TIMESTAMP(6))` decimal(16,6) NOT NULL DEFAULT '0.000000' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 SELECT * FROM t1; UNIX_TIMESTAMP(CURRENT_TIMESTAMP(6)) 1316637605.123456 DROP TABLE t1; SET @@timestamp=DEFAULT; SET time_zone=DEFAULT; SET @@timestamp=UNIX_TIMESTAMP('1970-01-02 03:04:05.123456'); SELECT FROM_UNIXTIME(@@timestamp); FROM_UNIXTIME(@@timestamp) 1970-01-02 03:04:05.123456 SET @@timestamp=default; # # Bugs found by Saikumar during testing. # The below function calls made server crash. # SET TIMESTAMP=UNIX_TIMESTAMP('2001-01-01 00:00:00'); SELECT ADDTIME(UTC_DATE, '23:28:14.014837') FROM dual; ADDTIME(UTC_DATE, '23:28:14.014837') 23:28:14.014837 SELECT SUBTIME(UTC_DATE, '04:44:03.014042') FROM dual ; SUBTIME(UTC_DATE, '04:44:03.014042') -04:44:03.014042 SELECT TIMEDIFF(CURRENT_DATE, '2004-12-07') FROM dual; TIMEDIFF(CURRENT_DATE, '2004-12-07') -838:59:59 Warnings: Warning 1292 Truncated incorrect time value: '-34464:00:00' SELECT TIMEDIFF('0000-00-00 00:00:00.00000', UTC_DATE) FROM dual; TIMEDIFF('0000-00-00 00:00:00.00000', UTC_DATE) NULL SELECT TIME(CURRENT_DATE) FROM dual; TIME(CURRENT_DATE) 00:00:00 CREATE TABLE t1 ( pk TIMESTAMP(1) NOT NULL DEFAULT '0000-00-00 00:00:00.0', PRIMARY KEY (pk) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (pk)PARTITIONS 2 */; INSERT INTO t1 VALUES ('2011-07-13 13:17:58.3'), ('2011-07-13 13:17:59.3'); SELECT EXTRACT(HOUR_SECOND FROM CURRENT_DATE) FROM t1; EXTRACT(HOUR_SECOND FROM CURRENT_DATE) 0 0 DROP TABLE t1; SET TIMESTAMP=DEFAULT; # # bug7 # CREATE TABLE t1 ( col_timestamp_2_not_null_key timestamp(2) NULL DEFAULT '0000-00-00 00:00:00.00', col_datetime_4_not_null_key datetime(4) NOT NULL, KEY col_timestamp_2_not_null_key (col_timestamp_2_not_null_key), KEY col_datetime_4_not_null_key (col_datetime_4_not_null_key)); UPDATE t1 SET col_datetime_4_not_null_key = 9 WHERE col_timestamp_2_not_null_key !=9; Warnings: Warning 1292 Incorrect datetime value: '9' for column 'col_timestamp_2_not_null_key' at row 1 Warning 1292 Incorrect datetime value: '9' for column 'col_timestamp_2_not_null_key' at row 1 DROP TABLE t1; # # bug8 # CREATE TABLE t1 ( col_time_3_not_null_key time(3) NOT NULL, col_datetime_4_not_null_key datetime(4) NOT NULL, KEY col_time_3_not_null_key (col_time_3_not_null_key), KEY col_datetime_4_not_null_key (col_datetime_4_not_null_key)); SELECT col_time_3_not_null_key FROM t1 WHERE col_datetime_4_not_null_key > 7; col_time_3_not_null_key Warnings: Warning 1292 Incorrect datetime value: '7' for column 'col_datetime_4_not_null_key' at row 1 DROP TABLE t1; # # bug9 # CREATE TABLE t1 ( col_time_3_key time(3) DEFAULT NULL, col_datetime_5_not_null datetime(5) NOT NULL, pk datetime(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', PRIMARY KEY (pk), KEY col_time_3_key (col_time_3_key)); INSERT INTO t1 VALUES (NULL,'2003-02-10 18:14:45.03977','2011-07-16 20:53:44.979841'), ('07:57:19.051','0000-00-00 00:00:00.00000','2011-07-16 20:53:45.979841'), ('05:18:39.031','0000-00-00 00:00:00.00000','2011-07-16 20:53:46.979841'), ('12:15:34.041','2001-12-22 00:00:00.00000','2011-07-16 20:53:47.979841'), ('03:40:59.005','0000-00-00 00:00:00.00000','2011-07-16 20:53:48.979841'), ('01:41:57.004','0000-00-00 00:00:00.00000','2011-07-16 20:53:49.979841'); SELECT col_datetime_5_not_null FROM t1 WHERE TIMESTAMPADD(QUARTER, 5, col_time_3_key); col_datetime_5_not_null Warnings: Warning 1441 Datetime function: time field overflow Warning 1441 Datetime function: time field overflow Warning 1441 Datetime function: time field overflow Warning 1441 Datetime function: time field overflow Warning 1441 Datetime function: time field overflow DROP TABLE t1; # # bug10 # CREATE TABLE t1 ( col_time_1_not_null_key time(1) NOT NULL, col_time_2_key time(2) DEFAULT NULL, col_datetime_6_not_null_key datetime(6) NOT NULL, col_datetime_4_not_null_key datetime(4) NOT NULL, col_datetime_6_key datetime(6) DEFAULT NULL, col_timestamp_4_key timestamp(4) NULL DEFAULT '0000-00-00 00:00:00.0000', col_timestamp_5_key timestamp(5) NULL DEFAULT '0000-00-00 00:00:00.00000', col_datetime_key datetime DEFAULT NULL, col_datetime_5_not_null_key datetime(5) NOT NULL, col_time_5_key time(5) DEFAULT NULL, col_datetime_3_key datetime(3) DEFAULT NULL, pk datetime NOT NULL DEFAULT '0000-00-00 00:00:00', col_time_not_null_key time NOT NULL, col_time_4_not_null_key time(4) NOT NULL, PRIMARY KEY (pk), KEY col_time_1_not_null_key (col_time_1_not_null_key), KEY col_time_2_key (col_time_2_key), KEY col_datetime_6_not_null_key (col_datetime_6_not_null_key), KEY col_datetime_4_not_null_key (col_datetime_4_not_null_key), KEY col_datetime_6_key (col_datetime_6_key), KEY col_timestamp_4_key (col_timestamp_4_key), KEY col_timestamp_5_key (col_timestamp_5_key), KEY col_datetime_key (col_datetime_key), KEY col_datetime_5_not_null_key (col_datetime_5_not_null_key), KEY col_time_5_key (col_time_5_key), KEY col_datetime_3_key (col_datetime_3_key), KEY col_time_not_null_key (col_time_not_null_key), KEY col_time_4_not_null_key (col_time_4_not_null_key)) /*!50100 PARTITION BY KEY (pk)PARTITIONS 2 */; Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. SELECT col_datetime_3_key , COUNT( col_timestamp_5_key ) FROM t1 FORCE KEY (PRIMARY, col_datetime_5_not_null_key, col_datetime_6_key, col_time_5_key, col_time_2_key) WHERE (col_time_4_not_null_key NOT BETWEEN '2002-01-01 21:50:38.023562' AND '20090504151448.022774' AND col_time_1_not_null_key IN ('2000-07-13 21:35:51.034786', '2004-10-13 19:51:18.029716', '2001-11-23 10:22:42.001689', '2001-12-07 06:56:47.034426', '20081109153313.042580' ) ) AND (col_timestamp_4_key BETWEEN '0000-00-00 00:00:00' AND '2008-06-16 10:42:11.032174' OR col_time_not_null_key BETWEEN '2007-02-13 14:29:42.008072' AND '2009-05-18 17:06:18.036503' ) AND ( (col_datetime_key <> '2004-09-06 19:57:07.024714') AND col_datetime_5_not_null_key NOT IN ('20061212182915.005997', '0000-00-00 00:00:00', '20000920051358.001283', '2000-09-03 00:07:36.061713' ) ) AND (col_datetime_4_not_null_key IS NULL OR col_time_5_key BETWEEN '20051201163954.001782' AND '0000-00-00 00:00:00') GROUP BY col_datetime_6_not_null_key; col_datetime_3_key COUNT( col_timestamp_5_key ) Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. DROP TABLE t1; # # bug11 # CREATE TABLE t1 ( col_time_5 time(5) DEFAULT NULL, col_time_1_not_null time(1) NOT NULL, col_time_2_key time(2) DEFAULT NULL, col_timestamp_2_not_null timestamp(2) NULL DEFAULT '0000-00-00 00:00:00.00', col_datetime_not_null datetime NOT NULL, col_timestamp_3_not_null_key timestamp(3) NULL DEFAULT '0000-00-00 00:00:00.000', col_datetime_5_key datetime(5) DEFAULT NULL, pk time(3) NOT NULL DEFAULT '00:00:00.000', PRIMARY KEY (pk), KEY col_time_2_key (col_time_2_key), KEY col_timestamp_3_not_null_key (col_timestamp_3_not_null_key), KEY col_datetime_5_key (col_datetime_5_key)) /*!50100 PARTITION BY KEY (pk)PARTITIONS 2 */; Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. INSERT INTO t1 VALUES ( '00:20:00.00000', '15:50:06.1', '00:20:07.00', '0000-00-00 00:00:00.00', '2009-07-16 09:31:21', '2009-10-14 21:00:00.000', '0000-00-00 00:00:00.00000', '22:59:36.734'); Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. SELECT col_datetime_5_key AS c1 FROM t1 WHERE col_datetime_not_null NOT BETWEEN col_time_5 AND LEAST(col_time_1_not_null, ADDDATE(CAST(col_time_2_key AS DATE), col_timestamp_2_not_null)) ORDER BY 1; c1 0000-00-00 00:00:00.00000 DROP TABLE t1; # # bug13 # SET timestamp=UNIX_TIMESTAMP('2011-07-31 10:00:00'); CREATE TABLE t1 ( col_datetime_2_not_null_key datetime(2) NOT NULL, col_datetime_5 datetime(5) DEFAULT NULL, col_time_key time DEFAULT NULL, col_time_not_null time NOT NULL, pk datetime(5) NOT NULL DEFAULT '0000-00-00 00:00:00.00000', PRIMARY KEY (pk), KEY col_datetime_2_not_null_key (col_datetime_2_not_null_key), KEY col_time_key (col_time_key)); INSERT INTO t1 VALUES ('2001-10-20 00:00:00.00','2001-09-20 11:18:18.03630','03:00:10','00:20:01','2011-07-19 17:37:06.26725'), ('0000-00-00 00:00:00.00','0000-00-00 00:00:00.00000','08:30:41','00:20:01','2011-07-19 17:37:07.26725'), ('0000-00-00 00:00:00.00','0000-00-00 00:00:00.00000','20:07:31','01:12:26','2011-07-19 17:37:08.26725'), ('2000-01-14 17:55:57.03','0000-00-00 00:00:00.00000','00:20:04','14:35:10','2011-07-19 17:37:09.26725'), ('2006-12-27 07:25:14.04',NULL,'08:07:59','07:58:50','2011-07-19 17:37:10.26725'), ('2000-10-17 22:03:12.01','0000-00-00 00:00:00.00000','00:20:02','23:21:51','2011-07-19 17:37:11.26725'), ('0000-00-00 00:00:00.00','0000-00-00 00:00:00.00000','00:20:05','00:20:04','2011-07-19 17:37:12.26725'), ('0000-00-00 00:00:00.00','0000-00-00 00:00:00.00000','00:20:04','23:19:52','2011-07-19 17:37:13.26725'), ('0000-00-00 00:00:00.00','2008-06-04 23:05:50.03642','00:20:03','22:28:03','2011-07-19 17:37:14.26725'), ('2000-10-22 23:52:09.01',NULL,'00:20:07','00:20:07','2011-07-19 17:37:15.26725'); SELECT col_datetime_2_not_null_key AS c1, col_time_not_null AS c2 FROM t1 WHERE pk = LEAST(STR_TO_DATE(DATE_FORMAT(col_time_key, CONCAT_WS( ':','%I','%m' )) , CONCAT_WS('-','%y','%H','%V','%k','%k' )), '0000-00-00') OR col_datetime_5 = CURRENT_DATE() ORDER BY 1; c1 c2 Warnings: Warning 1411 Incorrect datetime value: '03:07' for function str_to_date Warning 1411 Incorrect datetime value: '08:07' for function str_to_date Warning 1411 Incorrect datetime value: '08:07' for function str_to_date Warning 1411 Incorrect datetime value: '12:07' for function str_to_date Warning 1411 Incorrect datetime value: '08:07' for function str_to_date Warning 1411 Incorrect datetime value: '12:07' for function str_to_date Warning 1411 Incorrect datetime value: '12:07' for function str_to_date Warning 1411 Incorrect datetime value: '12:07' for function str_to_date Warning 1411 Incorrect datetime value: '12:07' for function str_to_date Warning 1411 Incorrect datetime value: '12:07' for function str_to_date DROP TABLE t1; SET timestamp=DEFAULT; # # bug15 # CREATE TABLE t1 ( col_datetime_5 datetime(5) DEFAULT NULL, col_timestamp_6_key timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', col_time_2_not_null time(2) NOT NULL, KEY col_timestamp_6_key (col_timestamp_6_key)) ENGINE=MEMORY DEFAULT CHARSET=latin1; INSERT INTO t1 VALUES (current_timestamp(5),current_timestamp(6),current_time(6)); SELECT col_datetime_5 AS c1 FROM t1 WHERE col_time_2_not_null = GREATEST(CURRENT_DATE(),col_timestamp_6_key) ORDER BY 1; c1 DROP TABLE t1; SET @@time_zone='+00:00'; CREATE TABLE t1 (col_datetime_4_not_null DATETIME(4) NOT NULL); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.0000'),('2006-05-12 07:06:44.0441'),('2007-11-08 00:00:00.0000'), ('2007-07-23 00:00:00.0000'),('2006-01-10 22:19:14.0158'),('2006-09-13 18:54:05.0013'), ('2002-03-26 00:00:00.0000'),('2002-10-22 10:53:06.0151'),('0000-00-00 00:00:00.0000'), ('2001-06-04 00:00:00.0000'),('0000-00-00 00:00:00.0000'),('2000-12-11 10:47:58.0505'), ('2009-04-21 20:01:40.0570'),('2007-03-12 10:48:41.0031'),('0000-00-00 00:00:00.0000'), ('2009-06-22 00:00:00.0000'),('2008-01-21 15:28:44.0592'),('2003-10-05 00:43:55.0577'), ('2002-11-04 00:46:30.0630'),('2006-01-19 11:38:03.0378'),('0000-00-00 00:00:00.0000'), ('2001-02-04 00:00:00.0000'),('2004-10-22 21:59:04.0394'),('2006-03-20 18:54:13.0139'), ('2004-06-09 03:17:31.0403'),('0000-00-00 00:00:00.0000'),('2003-06-01 17:59:12.0365'), ('0000-00-00 00:00:00.0000'),('2009-06-15 08:58:58.0329'),('0000-00-00 00:00:00.0000'), ('2004-03-26 00:00:00.0000'),('2009-04-27 00:00:00.0000'),('2000-09-07 00:00:00.0000'), ('2006-11-04 00:51:03.0501'),('2005-02-20 00:30:47.0647'),('0000-00-00 00:00:00.0000'), ('2004-12-07 00:00:00.0000'),('0000-00-00 00:00:00.0000'),('0000-00-00 00:00:00.0000'), ('2002-08-17 00:27:20.0536'),('2006-10-12 12:12:28.0337'),('0000-00-00 00:00:00.0000'), ('0000-00-00 00:00:00.0000'),('2009-09-09 14:16:05.0354'),('2000-02-25 00:00:00.0000'), ('2003-12-16 05:38:37.0626'),('2000-10-05 03:46:43.0067'),('0000-00-00 00:00:00.0000'), ('2000-10-08 06:45:51.0547'),('0000-00-00 00:00:00.0000'),('2000-04-06 01:46:21.0620'), ('2001-08-10 23:15:40.0304'),('2001-06-24 10:14:00.0497'),('0000-00-00 00:00:00.0000'), ('0000-00-00 00:00:00.0000'),('2004-10-22 00:00:00.0000'),('0000-00-00 00:00:00.0000'), ('0000-00-00 00:00:00.0000'),('2005-08-23 06:34:23.0058'),('2005-03-28 18:34:18.0138'), ('2004-05-18 00:00:00.0000'); SELECT UNIX_TIMESTAMP(col_datetime_4_not_null) FROM t1 ORDER BY 1; UNIX_TIMESTAMP(col_datetime_4_not_null) 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 951436800.0000 954985581.0620 968284800.0000 970717603.0067 970987551.0547 976531678.0505 981244800.0000 991612800.0000 993377640.0497 997485340.0304 1017100800.0000 1029544040.0536 1035283986.0151 1036370790.0630 1054490352.0365 1065314635.0577 1071553117.0626 1080259200.0000 1084838400.0000 1086751051.0403 1098403200.0000 1098482344.0394 1102377600.0000 1108859447.0647 1112034858.0138 1124778863.0058 1136931554.0158 1137670683.0378 1142880853.0139 1147417604.0441 1158173645.0013 1160655148.0337 1162601463.0501 1173696521.0031 1185148800.0000 1194480000.0000 1200929324.0592 1240344100.0570 1240790400.0000 1245056338.0329 1245628800.0000 1252505765.0354 DROP TABLE t1; SET @@time_zone=DEFAULT; SET @@timestamp=UNIX_TIMESTAMP('2011-09-21 10:20:30.123456'); CREATE TABLE t1 ( col_timestamp_4_not_null_key TIMESTAMP(4) NULL DEFAULT '0000-00-00 00:00:00.0000', col_datetime_6_not_null DATETIME(6) NOT NULL, col_time_2_not_null TIME(2) NOT NULL, pk TIME(5) NOT NULL DEFAULT '00:00:00.00000', col_timestamp_5_not_null_key TIMESTAMP(5) NULL DEFAULT '0000-00-00 00:00:00.00000', PRIMARY KEY (pk), KEY col_timestamp_4_not_null_key (col_timestamp_4_not_null_key), KEY col_timestamp_5_not_null_key (col_timestamp_5_not_null_key) ) /*!50100 PARTITION BY KEY (pk)PARTITIONS 2 */; Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. SELECT LEAST('2008-05-18', LOCALTIMESTAMP(), col_timestamp_5_not_null_key ) AS c1 FROM t1 WHERE col_time_2_not_null = TIME (STR_TO_DATE (DATE_FORMAT (DATE('2009-05-04'), CONCAT_WS(':', '%M', '%a', '%x', '%S', '%j' )), CONCAT_WS('-', '%V', '%S', '%U' ))) AND col_timestamp_4_not_null_key BETWEEN CURDATE() AND STR_TO_DATE(DATE_FORMAT(col_datetime_6_not_null, CONCAT_WS('-', '%I', '%S', '%v' )), CONCAT_WS('-', '%V', '%H' )); c1 Warnings: Warning 1411 Incorrect datetime value: 'May:Mon:2009:00:124' for function str_to_date DROP TABLE t1; SET @@timestamp=DEFAULT; SET @@timestamp= UNIX_TIMESTAMP('2011-09-21 08:20:30.123456'); CREATE TABLE t1 ( col_datetime_6 DATETIME(6) DEFAULT NULL, col_time_1_key TIME(1) DEFAULT NULL, col_time_4_key TIME(4) DEFAULT NULL, col_time_1 TIME(1) DEFAULT NULL, pk TIME(4) NOT NULL DEFAULT '00:00:00.0000', col_time_2_key TIME(2) DEFAULT NULL, col_datetime DATETIME DEFAULT NULL, col_datetime_5_not_null DATETIME(5) NOT NULL, col_time_3_key TIME(3) DEFAULT NULL, col_time_3 TIME(3) DEFAULT NULL, PRIMARY KEY (pk), KEY col_time_1_key (col_time_1_key), KEY col_time_4_key (col_time_4_key), KEY col_time_2_key (col_time_2_key), KEY col_time_3_key (col_time_3_key) )/*!50100 PARTITION BY KEY (pk)PARTITIONS 2 */; Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. INSERT INTO t1 VALUES ('2004-06-28 22:47:21.052552','17:11:33.0','00:20:09.0000','00:20:04.0','02:05:58.4461','08:36:44.02','0000-00-00 00:00:00','0000-00-00 00:00:00.00000','02:17:50.049','07:31:13.030'); Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. SELECT col_datetime_6 AS c1, col_datetime AS c2 FROM t1 WHERE col_time_2_key NOT BETWEEN SUBTIME(DATE('0000-00-00 00:00:00'), '19:30:30.005477' ) AND CURRENT_TIME() ORDER BY col_time_1, col_time_3, col_datetime_6, col_time_3_key, col_datetime_5_not_null, col_time_1_key, col_time_4_key; c1 c2 2004-06-28 22:47:21.052552 0000-00-00 00:00:00 DROP TABLE t1; SET @@timestamp=DEFAULT; SET @@timestamp=UNIX_TIMESTAMP('2011-09-21 10:20:30'); CREATE TABLE t1 ( col_time_6_not_null_key TIME(6) NOT NULL, col_time_not_null TIME NOT NULL, pk TIME(4) NOT NULL DEFAULT '00:00:00.0000', col_time_key TIME DEFAULT NULL, col_time_2_not_null_key TIME(2) NOT NULL, col_time_4 TIME(4) DEFAULT NULL, col_time_3_not_null TIME(3) NOT NULL, col_datetime_2 DATETIME(2) DEFAULT NULL, PRIMARY KEY (pk), KEY col_time_6_not_null_key (col_time_6_not_null_key), KEY col_time_key (col_time_key), KEY col_time_2_not_null_key (col_time_2_not_null_key) ) /*!50100 PARTITION BY KEY (pk)PARTITIONS 2 */; Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. INSERT INTO t1 VALUES ( CURRENT_TIME(4), CURRENT_TIME(), CURRENT_TIME(4), CURRENT_TIME(), CURRENT_TIME(2), CURRENT_TIME(4), CURRENT_TIME(3), CURRENT_TIMESTAMP(2)); Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. SELECT col_datetime_2 AS c1, col_time_not_null AS c2 FROM t1 WHERE col_time_6_not_null_key > COALESCE(col_time_2_not_null_key, col_time_4, col_time_not_null, col_time_3_not_null) ORDER BY 1; c1 c2 DROP TABLE t1; SET @@timestamp=DEFAULT; CREATE TABLE t1 ( col_time_6_not_null_key TIME(6) NOT NULL, col_time_5_key TIME(5) DEFAULT NULL, col_timestamp TIMESTAMP NULL DEFAULT '0000-00-00 00:00:00', col_time_key TIME DEFAULT NULL, col_datetime_key DATETIME DEFAULT NULL, col_time_not_null TIME NOT NULL, pk TIMESTAMP(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000', PRIMARY KEY (pk), KEY col_time_6_not_null_key (col_time_6_not_null_key), KEY col_time_5_key (col_time_5_key), KEY col_time_key (col_time_key), KEY col_datetime_key (col_datetime_key) ) /*!50100 PARTITION BY KEY (pk)PARTITIONS 2 */; Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. INSERT INTO t1 VALUES ('03:07:29.013169',NULL,'0000-00-00 00:00:00','18:29:54','2000-06-10 19:41:30', '13:56:51','2011-09-07 23:08:20.8362'),('00:20:06.000000','08:25:11.04580', '2009-06-16 04:33:32','00:20:04','2004-08-23 21:05:10','00:20:06', '2011-09-07 23:08:22.8362'),('00:20:03.000000','00:20:07.00000', '2007-05-28 13:16:25','00:26:33','0000-00-00 00:00:00','01:04:48', '2011-09-07 23:08:24.8362'),('19:48:23.009935','00:20:07.00000', '2009-04-09 13:29:15','00:20:01',NULL,'21:43:24','2011-09-07 23:08:26.8362'), ('00:20:01.000000','22:27:30.00296','2009-03-21 23:00:46',NULL,'2003-01-23 14:57:31', '00:20:09','2011-09-07 23:08:28.8362'),('23:09:37.056340','07:01:38.05720', '2006-01-25 15:25:59','00:20:05',NULL,'05:10:32','2011-09-07 23:08:19.8362'), ('09:44:10.025082','00:20:07.00000','2009-01-06 18:48:29','00:20:02', '0000-00-00 00:00:00','00:20:00','2011-09-07 23:08:21.8362'), ('23:02:50.013380','22:48:12.05831',NULL,NULL,'2003-11-18 04:32:18','00:20:06', '2011-09-07 23:08:23.8362'),('00:20:01.000000','16:19:55.00007', '0000-00-00 00:00:00','07:55:21','0000-00-00 00:00:00','14:48:29', '2011-09-07 23:08:25.8362'),('06:00:36.034953','00:20:01.00000','2007-03-15 21:00:00', '00:20:01',NULL,'23:29:59','2011-09-07 23:08:27.8362'); Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. SELECT col_time_5_key AS c1, col_time_key AS c2, col_timestamp AS c3 FROM t1 WHERE col_time_not_null NOT BETWEEN EXTRACT(YEAR_MONTH FROM '0000-00-00 00:00:00') AND COALESCE (col_time_6_not_null_key, col_datetime_key) ORDER BY 1, 2; c1 c2 c3 NULL 18:29:54 0000-00-00 00:00:00 00:20:01.00000 00:20:01 2007-03-15 21:00:00 00:20:07.00000 00:20:01 2009-04-09 13:29:15 00:20:07.00000 00:26:33 2007-05-28 13:16:25 16:19:55.00007 07:55:21 0000-00-00 00:00:00 22:27:30.00296 NULL 2009-03-21 23:00:46 DROP TABLE t1; SET @@timestamp=UNIX_TIMESTAMP('2011-09-21 10:20:30.123456'); CREATE TABLE t1 ( col_time_5_not_null TIME(5) NOT NULL, col_timestamp_4_not_null_key TIMESTAMP(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000', col_timestamp_1 TIMESTAMP(1) NOT NULL DEFAULT '0000-00-00 00:00:00.0', pk TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', col_date_key date DEFAULT NULL, col_time TIME DEFAULT NULL, col_timestamp TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', col_time_3_not_null_key TIME(3) NOT NULL, PRIMARY KEY (pk), KEY col_timestamp_4_not_null_key (col_timestamp_4_not_null_key), KEY col_date_key (col_date_key), KEY col_time_3_not_null_key (col_time_3_not_null_key) ) ENGINE=MEMORY /*!50100 PARTITION BY KEY (pk)PARTITIONS 2 */; Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. INSERT INTO t1 VALUES ( CURRENT_TIME(5), CURRENT_TIMESTAMP(4), CURRENT_TIMESTAMP(1), CURRENT_TIMESTAMP(), CURRENT_DATE(), CURRENT_TIME(), CURRENT_TIMESTAMP(),CURRENT_TIME()); Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. SELECT col_time_3_not_null_key AS c1 FROM t1 WHERE col_timestamp <> col_date_key AND col_time <=> MAKETIME(24, 60, 4) ORDER BY 1; c1 DROP TABLE t1; SET @@timestamp=DEFAULT; SET @@timestamp=UNIX_TIMESTAMP('2011-09-21 09:30:40'); CREATE TABLE t1 ( col_datetime_5 DATETIME(5) DEFAULT NULL, col_time_2_key TIME(2) DEFAULT NULL, col_time_3_not_null TIME(3) NOT NULL, col_timestamp_1 TIMESTAMP(1) NOT NULL DEFAULT '0000-00-00 00:00:00.0', col_time_4_key TIME(4) DEFAULT NULL, col_datetime_3_key DATETIME(3) DEFAULT NULL, col_time_not_null TIME NOT NULL, col_time_6_key TIME(6) DEFAULT NULL, col_time_5_not_null TIME(5) NOT NULL, col_datetime_2_not_null DATETIME(2) NOT NULL, col_datetime_4 DATETIME(4) DEFAULT NULL, col_time_5 TIME(5) DEFAULT NULL, col_datetime_3 DATETIME(3) DEFAULT NULL, col_timestamp_2_not_null_key TIMESTAMP(2) NOT NULL DEFAULT '0000-00-00 00:00:00.00', col_time_3_key TIME(3) DEFAULT NULL, col_time_6_not_null_key TIME(6) NOT NULL, col_timestamp_2_key TIMESTAMP(2) NOT NULL DEFAULT '0000-00-00 00:00:00.00', col_timestamp_3 TIMESTAMP(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000', col_timestamp_6 TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', col_date date DEFAULT NULL, col_timestamp_3_not_null TIMESTAMP(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000', col_datetime_1_not_null_key DATETIME(1) NOT NULL, KEY col_time_2_key (col_time_2_key), KEY col_time_4_key (col_time_4_key), KEY col_datetime_3_key (col_datetime_3_key), KEY col_time_6_key (col_time_6_key), KEY col_timestamp_2_not_null_key (col_timestamp_2_not_null_key), KEY col_time_3_key (col_time_3_key), KEY col_time_6_not_null_key (col_time_6_not_null_key), KEY col_timestamp_2_key (col_timestamp_2_key), KEY col_datetime_1_not_null_key (col_datetime_1_not_null_key) ); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00000','00:20:08.00','00:20:01.000','0000-00-00 00:00:00.0','00:20:01.0000','0000-00-00 00:00:00.000','00:20:04','09:45:20.061990','00:20:09.00000','0000-00-00 00:00:00.00','0000-00-00 00:00:00.0000','00:20:04.00000','2001-05-23 09:36:42.052','2009-01-05 21:00:00.00','00:20:05.000','14:46:32.052047','2002-11-17 18:55:09.02','0000-00-00 00:00:00.000','2008-09-13 21:00:00.000000','2008-08-19','2007-02-10 21:00:00.000','0000-00-00 00:00:00.0'), ('2000-07-14 05:54:53.06239','00:20:05.00','00:20:05.000','1999-12-31 21:00:00.0','07:03:39.0208','2000-08-23 21:06:58.019','00:20:04','00:20:02.000000','15:44:52.01936','2005-11-17 00:00:00.00','2004-08-13 00:00:00.0000','06:06:48.02990','2006-09-05 02:09:02.053','2002-05-20 13:05:03.02','16:55:37.028','18:50:32.053805','2006-07-19 07:48:53.03','2007-03-18 04:55:22.063','2005-03-03 01:11:52.063987','2000-11-21','2006-01-03 23:43:37.061','2004-03-24 11:09:52.0'), ('0000-00-00 00:00:00.00000','18:28:33.04','00:20:01.000','2000-01-26 21:00:00.0','00:20:04.0000','0000-00-00 00:00:00.000','00:20:04','05:34:26.042699','00:40:37.02528','0000-00-00 00:00:00.00','2005-10-05 00:00:00.0000','23:03:38.03254','2002-07-10 00:00:00.000','2004-08-17 21:00:00.00','00:20:09.000','00:20:02.000000','2007-04-28 12:39:49.01','2009-10-19 21:00:00.000','2002-10-15 22:19:51.010640','2004-09-02','2000-06-03 21:00:00.000','2006-01-21 21:56:34.1'), ('2002-06-04 00:00:00.00000','17:18:15.01','00:20:07.000','0000-00-00 00:00:00.0','00:20:08.0000','0000-00-00 00:00:00.000','00:20:02','03:08:54.060553','07:16:55.00371','2004-05-23 00:18:17.06','2006-10-15 07:36:25.0250','21:17:33.03725','0000-00-00 00:00:00.000','2006-01-09 21:00:00.00','17:37:00.021','20:34:56.023570','2006-07-19 12:40:27.03','0000-00-00 00:00:00.000','0000-00-00 00:00:00.000000','0000-00-00','2001-02-17 08:11:26.052','0000-00-00 00:00:00.0'), ('2008-06-08 06:20:14.03026','00:20:02.00','00:20:09.000','2005-04-05 12:46:20.0','17:11:24.0634','2002-11-21 00:00:00.000','10:43:56','00:20:08.000000','00:20:07.00000','2008-05-13 10:13:26.06','2001-04-17 00:00:00.0000','01:47:22.02812','2009-09-16 14:44:14.026','0000-00-00 00:00:00.00','00:20:01.000','01:09:04.037569','2004-07-22 03:01:37.04','0000-00-00 00:00:00.000','2001-05-21 21:00:00.000000','0000-00-00','0000-00-00 00:00:00.000','0000-00-00 00:00:00.0'), ('0000-00-00 00:00:00.00000','00:20:08.00','12:51:21.056','0000-00-00 00:00:00.0','00:39:29.0565','2003-01-04 00:00:00.000','01:19:53','00:20:05.000000','17:19:59.03478','2001-07-12 00:00:00.00','2008-12-16 13:56:12.0187','00:21:45.00721','0000-00-00 00:00:00.000','0000-00-00 00:00:00.00','13:54:49.005','00:20:07.000000','2004-02-23 10:21:57.02','0000-00-00 00:00:00.000','0000-00-00 00:00:00.000000','2005-10-10','2000-07-10 21:37:07.038','0000-00-00 00:00:00.0'), ('0000-00-00 00:00:00.00000','23:11:02.06','00:20:04.000','2002-09-06 08:31:08.0','20:03:26.0050','0000-00-00 00:00:00.000','09:40:06','17:18:46.036378','01:21:25.03109','0000-00-00 00:00:00.00','2005-11-11 12:10:13.0077','00:20:09.00000','0000-00-00 00:00:00.000','0000-00-00 00:00:00.00','09:04:28.034','00:20:08.000000','0000-00-00 00:00:00.00','2009-07-28 08:02:12.002','0000-00-00 00:00:00.000000','2005-04-06','2006-06-09 07:10:23.064','0000-00-00 00:00:00.0'), ('0000-00-00 00:00:00.00000','00:20:09.00','04:15:43.040','2002-09-15 21:00:00.0','00:20:03.0000','0000-00-00 00:00:00.000','11:07:33','00:20:00.000000','00:20:09.00000','0000-00-00 00:00:00.00','0000-00-00 00:00:00.0000','04:06:54.01875','2001-12-06 21:09:30.042','2002-09-23 22:33:09.03','13:56:42.014','07:56:26.029465','0000-00-00 00:00:00.00','2001-05-19 19:41:58.064','2006-03-28 06:12:25.002048','0000-00-00','0000-00-00 00:00:00.000','0000-00-00 00:00:00.0'), ('2008-05-22 00:00:00.00000','21:46:17.04','00:20:00.000','2004-05-01 21:00:00.0','00:20:04.0000','0000-00-00 00:00:00.000','16:08:23','00:20:00.000000','00:39:12.04586','2001-08-25 00:00:00.00','2003-09-08 20:19:27.0197','16:01:03.03502','2005-02-14 00:00:00.000','0000-00-00 00:00:00.00','13:29:52.038','00:20:02.000000','2004-10-07 23:51:00.06','2009-02-03 23:21:26.017','0000-00-00 00:00:00.000000','0000-00-00','0000-00-00 00:00:00.000','2004-09-13 00:00:00.0'), ('2005-10-13 00:00:00.00000','00:20:08.00','18:41:54.050','2007-09-10 21:00:00.0','01:55:43.0424','0000-00-00 00:00:00.000','00:20:07','06:49:20.035790','00:20:04.00000','0000-00-00 00:00:00.00','2008-02-13 10:19:26.0346','00:20:01.00000','0000-00-00 00:00:00.000','0000-00-00 00:00:00.00','15:01:22.011','18:47:41.003944','2008-02-11 21:00:00.00','0000-00-00 00:00:00.000','2005-02-17 12:54:03.001418','2000-08-18','0000-00-00 00:00:00.000','2004-09-19 23:37:42.0'); SELECT col_timestamp_3 AS c1, col_date AS c2, CURTIME() AS c3 FROM t1 WHERE col_time_3_not_null NOT IN (col_time_not_null, CAST(col_time_5 AS DATETIME(3)), MAKEDATE(DAYOFMONTH('2002-09-13'), DATEDIFF('2009-12-15', col_timestamp_6)), CURRENT_DATE()) AND col_time_3_key NOT BETWEEN LEAST(CURRENT_TIME(), TIMESTAMPADD(HOUR, 187, MAKETIME(209, 60, 1))) AND CURTIME() AND col_datetime_2_not_null NOT IN (DATE('2009-03-28'), col_timestamp_2_not_null_key, ADDDATE(col_timestamp_2_key, 28), col_datetime_3, UTC_DATE()) OR col_time_6_key IS NOT NULL AND col_timestamp_3_not_null IN (col_timestamp_1, col_datetime_3_key, col_time_4_key) OR col_time_6_not_null_key BETWEEN TIMESTAMP('0000-00-00', '16:50:23.062015') AND col_datetime_5 AND col_datetime_4 >= col_time_2_key AND col_time_5_not_null BETWEEN col_timestamp_3_not_null AND col_datetime_1_not_null_key ORDER BY col_time_4_key, col_datetime_3_key; c1 c2 c3 2001-05-19 19:41:58.064 0000-00-00 09:30:40 2009-02-03 23:21:26.017 0000-00-00 09:30:40 0000-00-00 00:00:00.000 2000-08-18 09:30:40 2007-03-18 04:55:22.063 2000-11-21 09:30:40 DROP TABLE t1; SET @@timestamp=DEFAULT; CREATE TABLE t1 ( col_datetime_1_key DATETIME(1) DEFAULT NULL, col_time_5_not_null_key TIME(5) NOT NULL, col_datetime_2_not_null DATETIME(2) NOT NULL, pk DATETIME(2) NOT NULL DEFAULT '0000-00-00 00:00:00.00', col_time_2_not_null_key TIME(2) NOT NULL, col_time_2_key TIME(2) DEFAULT NULL, col_timestamp_3_not_null TIMESTAMP(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000', col_timestamp_4 TIMESTAMP(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000', PRIMARY KEY (pk), KEY col_datetime_1_key (col_datetime_1_key), KEY col_time_5_not_null_key (col_time_5_not_null_key), KEY col_time_2_not_null_key (col_time_2_not_null_key), KEY col_time_2_key (col_time_2_key) )/*!50100 PARTITION BY KEY (pk)PARTITIONS 2 */; Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. INSERT INTO t1 VALUES ('2007-11-05 00:00:00.0','00:20:01.00000','0000-00-00 00:00:00.00','0000-00-00 00:00:00.00','00:20:08.00','07:54:36.06','0000-00-00 00:00:00.000','2008-02-19 21:00:00.0000'),('2001-09-22 23:10:01.0','00:20:00.00000','0000-00-00 00:00:00.00','2011-09-09 20:59:53.03','00:20:01.00','00:20:02.00','0000-00-00 00:00:00.000','2003-07-11 13:55:04.0379'),('2007-10-20 00:00:00.0','22:15:28.06072','0000-00-00 00:00:00.00','2011-09-09 20:59:54.03','00:20:03.00','00:20:07.00','0000-00-00 00:00:00.000','0000-00-00 00:00:00.0000'),('0000-00-00 00:00:00.0','00:20:03.00000','2009-01-27 00:00:00.00','2011-09-09 20:59:55.03','03:34:18.06','14:32:24.01','0000-00-00 00:00:00.000','2003-11-17 09:58:11.0160'),('2008-04-10 00:00:00.0','00:20:05.00000','2004-10-16 01:19:20.06','2011-09-09 20:59:56.03','21:14:08.05','02:32:00.04','2008-09-15 17:48:32.047','2003-01-16 21:00:00.0000'),('0000-00-00 00:00:00.0','00:20:03.00000','0000-00-00 00:00:00.00','2011-09-09 20:59:57.03','00:20:05.00','22:08:39.02','0000-00-00 00:00:00.000','2003-03-19 02:39:29.0637'),('2009-04-10 21:16:38.0','00:20:07.00000','2001-05-17 15:25:33.04','2011-09-09 20:59:58.03','00:20:05.00','09:36:28.04','2005-01-12 10:44:24.031','0000-00-00 00:00:00.0000'),('2001-06-10 20:23:08.0','07:38:25.03484','2002-06-22 00:00:00.00','2011-09-09 20:59:59.03','02:05:30.01','04:24:09.06','2002-05-25 21:00:00.000','2006-05-16 06:48:03.0399'); Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. SELECT col_datetime_2_not_null AS c1, col_time_2_key AS c2, col_time_5_not_null_key AS c3 FROM t1 WHERE col_time_2_not_null_key NOT IN (TIMESTAMP(MAKEDATE(19 + 0, 213)), MAKEDATE(46, DATEDIFF('0000-00-00 00:00:00', '0000-00-00 00:00:00'))) AND col_datetime_1_key IS NULL OR col_timestamp_4 < col_timestamp_3_not_null ORDER BY 1; c1 c2 c3 2001-05-17 15:25:33.04 09:36:28.04 00:20:07.00000 2004-10-16 01:19:20.06 02:32:00.04 00:20:05.00000 Warnings: Warning 1292 Incorrect datetime value: '0000-00-00 00:00:00' Warning 1292 Incorrect datetime value: '0000-00-00 00:00:00' DROP TABLE t1; SET @@timestamp=UNIX_TIMESTAMP('2011-09-21 10:20:30.123456'); CREATE TABLE t1 ( col_time_1_not_null TIME(1) NOT NULL, col_time_6 TIME(6) DEFAULT NULL, col_datetime_6_not_null_key DATETIME(6) NOT NULL, col_timestamp_key TIMESTAMP NULL DEFAULT '0000-00-00 00:00:00', col_timestamp_2 TIMESTAMP(2) NULL DEFAULT '0000-00-00 00:00:00.00', col_timestamp_not_null TIMESTAMP NULL DEFAULT '0000-00-00 00:00:00', col_timestamp TIMESTAMP NULL DEFAULT '0000-00-00 00:00:00', pk DATETIME(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000', col_time_6_not_null TIME(6) NOT NULL, col_datetime_3_not_null DATETIME(3) NOT NULL, PRIMARY KEY (pk), KEY col_datetime_6_not_null_key (col_datetime_6_not_null_key), KEY col_timestamp_key (col_timestamp_key) ) /*!50100 PARTITION BY KEY (pk)PARTITIONS 2 */; Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. INSERT INTO t1 VALUES ( CURRENT_TIME(1), CURRENT_TIME(6), CURRENT_TIMESTAMP(6), CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP(2), CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP, CURRENT_TIMESTAMP(3), CURRENT_TIME(6), CURRENT_TIMESTAMP(3)); Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. SELECT col_timestamp_not_null AS c1, col_datetime_6_not_null_key AS c2 FROM t1 WHERE col_timestamp IS NOT NULL AND col_timestamp_2 <> col_time_1_not_null AND col_timestamp_key BETWEEN col_datetime_3_not_null AND CURRENT_TIME() OR col_time_6_not_null != LEAST(col_time_6, UTC_TIME()); c1 c2 2011-09-21 10:20:30 2011-09-21 10:20:30.123456 DROP TABLE t1; SET @@timestamp=DEFAULT; SET @@timestamp=UNIX_TIMESTAMP('2011-09-21 10:20:30.123456'); CREATE TABLE t1 ( col_timestamp_2 TIMESTAMP(2) NOT NULL DEFAULT '0000-00-00 00:00:00.00', col_datetime_5 DATETIME(5) DEFAULT NULL, col_time_3 TIME(3) DEFAULT NULL, col_time_4_not_null TIME(4) NOT NULL, col_datetime_5_not_null DATETIME(5) NOT NULL, col_timestamp_5_key TIMESTAMP(5) NOT NULL DEFAULT '0000-00-00 00:00:00.00000', col_time_1_not_null_key TIME(1) NOT NULL, col_datetime DATETIME DEFAULT NULL, col_timestamp_4 TIMESTAMP(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000', KEY col_timestamp_5_key (col_timestamp_5_key), KEY col_time_1_not_null_key (col_time_1_not_null_key) ); INSERT INTO t1 VALUES ( CURRENT_TIMESTAMP(2), CURRENT_TIMESTAMP(5), CURRENT_TIME(3), CURRENT_TIME(4), CURRENT_TIMESTAMP(5), CURRENT_TIMESTAMP(5), CURRENT_TIME(1), CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP(4)); SELECT col_datetime_5_not_null AS c1, col_time_1_not_null_key AS c2 FROM t1 WHERE col_time_4_not_null = MAKETIME(24, 60, 3 ) AND col_time_3 NOT IN ( col_datetime_5, UTC_DATE(), col_timestamp_5_key, ADDDATE('0000-00-00 00:00:00', DATEDIFF('2001-09-21',FROM_UNIXTIME(1018888192, CONCAT_WS('-','%s','%V','%u')))), col_timestamp_4) AND col_timestamp_2 NOT BETWEEN col_datetime AND '2005-09-12' ORDER BY 1; c1 c2 SELECT col_datetime_5_not_null AS c1, col_time_1_not_null_key AS c2 FROM t1 WHERE col_time_4_not_null=MAKETIME(24,60, 3) AND col_time_3 NOT IN (col_datetime_5, UTC_DATE(), col_timestamp_5_key, col_timestamp_4) AND col_timestamp_2 NOT BETWEEN col_datetime AND '2005-09-12' ORDER BY 1; c1 c2 DROP TABLE t1; SET @@timestamp=DEFAULT; SET @@timestamp=UNIX_TIMESTAMP('2011-09-21 10:20:30.123456'); CREATE TABLE t1 ( col_time_4_key TIME(4) DEFAULT NULL, col_datetime_4_not_null DATETIME(4) NOT NULL, col_timestamp_5 TIMESTAMP(5) NOT NULL DEFAULT '0000-00-00 00:00:00.00000', col_datetime_not_null_key DATETIME NOT NULL, col_timestamp_key TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', KEY col_time_4_key (col_time_4_key), KEY col_datetime_not_null_key (col_datetime_not_null_key), KEY col_timestamp_key (col_timestamp_key) ); INSERT INTO t1 VALUES ('00:20:08.0000','0000-00-00 00:00:00.0000','0000-00-00 00:00:00.00000','0000-00-00 00:00:00','2006-10-24 21:00:00'),('19:24:23.0232','2006-12-11 22:04:06.0393','2004-12-08 21:00:00.00000','2009-06-04 03:01:35','2003-08-19 21:00:00'); SELECT UNIX_TIMESTAMP(col_datetime_4_not_null) AS c1 FROM t1 WHERE col_time_4_key NOT BETWEEN '2001-07-06' AND LEAST(FROM_DAYS(col_timestamp_key), col_timestamp_5) OR CONVERT_TZ(MAKETIME(24, 5, 7), 'Japan', 'Japan') IS NULL OR CURRENT_TIMESTAMP() IS NOT NULL OR col_datetime_not_null_key >= UTC_TIME() ORDER BY 1 ; c1 0.0000 1165863846.0393 DROP TABLE t1; SET @@timestamp=DEFAULT; CREATE TABLE t1 ( col_time_not_null_key TIME NOT NULL, col_datetime_5_not_null_key DATETIME(5) NOT NULL, col_timestamp_6_key TIMESTAMP(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', col_time_1 TIME(1) DEFAULT NULL, pk DATETIME(1) NOT NULL DEFAULT '0000-00-00 00:00:00.0', col_time_2_key TIME(2) DEFAULT NULL, PRIMARY KEY (pk), KEY col_time_not_null_key (col_time_not_null_key), KEY col_datetime_5_not_null_key (col_datetime_5_not_null_key), KEY col_timestamp_6_key (col_timestamp_6_key), KEY col_time_2_key (col_time_2_key) )/*!50100 PARTITION BY KEY (pk)PARTITIONS 2 */; Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. INSERT INTO t1 VALUES ('00:20:02','2007-08-09 05:14:12.05054','2007-06-20 21:00:00.000000','06:16:36.0','2011-09-09 21:37:45.2','19:15:37.02'),('18:00:14','0000-00-00 00:00:00.00000','2000-12-10 12:35:01.029761','00:20:04.0','2011-09-09 21:37:46.2','06:21:03.03'); Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. SELECT col_time_1 AS c1 FROM t1 WHERE col_time_not_null_key <= col_timestamp_6_key AND col_time_2_key > SUBTIME('2006-07-16', '05:05:02.040778') ORDER BY col_datetime_5_not_null_key, col_time_1; c1 DROP TABLE t1; CREATE TABLE t1 ( col_timestamp_3_not_null_key timestamp(3) NULL DEFAULT '0000-00-00 00:00:00.000', pk time(1) NOT NULL DEFAULT '00:00:00.0', col_datetime_6 datetime(6) DEFAULT NULL, col_time_5_not_null_key time(5) NOT NULL, col_timestamp_1_not_null_key timestamp(1) NULL DEFAULT '0000-00-00 00:00:00.0', col_datetime_4_key datetime(4) DEFAULT NULL, col_time_2_not_null_key time(2) NOT NULL, PRIMARY KEY (pk), KEY col_timestamp_3_not_null_key (col_timestamp_3_not_null_key), KEY col_time_5_not_null_key (col_time_5_not_null_key), KEY col_timestamp_1_not_null_key (col_timestamp_1_not_null_key), KEY col_datetime_4_key (col_datetime_4_key), KEY col_time_2_not_null_key (col_time_2_not_null_key) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (pk)PARTITIONS 2 */; INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000','14:09:27.6','0000-00-00 00:00:00.000000','18:38:36.04289','2003-07-01 21:00:00.0','2009-09-15 09:25:49.0110','15:47:52.01'); INSERT INTO t1 VALUES ('2004-04-08 23:25:16.012','14:09:26.6',NULL,'05:45:23.05509','2008-12-11 21:00:00.0','2001-04-23 20:41:27.0470','05:09:23.04'); SELECT SUBTIME(col_timestamp_3_not_null_key , SYSDATE()) AS c1 FROM t1 WHERE col_timestamp_1_not_null_key NOT IN (col_datetime_4_key , GREATEST(DATE('2006-04-26'), UTC_DATE())) ORDER BY col_datetime_6 , col_time_2_not_null_key , col_time_5_not_null_key; DROP TABLE t1; CREATE TABLE t1 ( col_time_1_not_null_key time(1) NOT NULL, pk timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', col_datetime_3_not_null_key datetime(3) NOT NULL, col_time_2_key time(2) DEFAULT NULL, PRIMARY KEY (pk), KEY col_time_1_not_null_key (col_time_1_not_null_key), KEY col_datetime_3_not_null_key (col_datetime_3_not_null_key), KEY col_time_2_key (col_time_2_key) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY KEY (pk)PARTITIONS 2 */; Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. INSERT INTO t1 VALUES ('00:20:05.0','1999-12-31 21:00:01','0000-00-00 00:00:00.000','04:25:59.01'); Warnings: Warning 1287 The partition engine, used by table 'test.t1', is deprecated and will be removed in a future release. Please use native partitioning instead. INSERT INTO t1 VALUES ('00:15:56.0','1999-12-31 21:00:03','0000-00-00 00:00:00.000','00:20:06.00'); INSERT INTO t1 VALUES ('00:20:03.0','1999-12-31 21:00:05','2002-10-18 16:08:58.006','00:20:00.00'); INSERT INTO t1 VALUES ('00:20:09.0','1999-12-31 21:00:07','2002-11-11 17:21:02.045','18:39:12.05'); INSERT INTO t1 VALUES ('13:51:22.0','1999-12-31 21:00:09','2002-08-07 10:27:35.055','00:20:07.00'); INSERT INTO t1 VALUES ('00:20:06.0','0000-00-00 00:00:00','2003-08-12 00:00:00.000','20:35:34.01'); SELECT col_time_1_not_null_key AS c1 FROM t1 WHERE col_datetime_3_not_null_key NOT IN (LEAST( DATE('0000-00-00 00:00:00'), CURDATE()), col_time_2_key); DROP TABLE t1; SET timestamp=UNIX_TIMESTAMP('2001-11-07 15:13:00'); CREATE TABLE t1 ( col_time_3_not_null time(3) NOT NULL, col_datetime_4_not_null_key datetime(4) NOT NULL, col_datetime_key datetime DEFAULT NULL, col_time_1_key time(1) DEFAULT NULL, col_time_5 time(5) DEFAULT NULL, col_timestamp_6_not_null_key timestamp(6) NULL DEFAULT '0000-00-00 00:00:00.000000', pk datetime(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000', PRIMARY KEY (pk), KEY col_datetime_4_not_null_key (col_datetime_4_not_null_key), KEY col_datetime_key (col_datetime_key), KEY col_time_1_key (col_time_1_key), KEY col_timestamp_6_not_null_key (col_timestamp_6_not_null_key)); INSERT INTO t1 VALUES ('12:52:24.022','0000-00-00 00:00:00.0000','2003-05-24 00:00:00','00:20:09.0','15:11:20.03463','0000-00-00 00:00:00.000000','2011-11-07 12:01:35.111932'); INSERT INTO t1 VALUES ('18:52:49.043','2000-10-13 00:00:00.0000','2005-07-22 00:00:00',NULL,'08:19:02.03845','2000-09-20 03:26:09.009008','2011-11-07 12:01:36.111932'); INSERT INTO t1 VALUES ('23:46:05.010','2005-12-27 04:06:15.0087','0000-00-00 00:00:00','23:40:13.0','08:30:24.03114','0000-00-00 00:00:00.000000','2011-11-07 12:01:37.111932'); INSERT INTO t1 VALUES ('00:20:05.000','2009-06-01 08:01:58.0532','2007-03-26 12:18:48','00:20:03.0','20:32:22.04519','2000-08-19 21:00:00.000000','2011-11-07 12:01:38.111932'); INSERT INTO t1 VALUES ('00:20:05.000','2002-05-01 00:00:00.0000','0000-00-00 00:00:00','04:31:10.0','00:20:04.00000','0000-00-00 00:00:00.000000','2011-11-07 12:01:39.111932'); INSERT INTO t1 VALUES ('00:20:06.000','2007-07-25 22:20:58.0023','0000-00-00 00:00:00','00:23:16.1',NULL,'2008-03-19 16:17:15.042024','2011-11-07 12:01:40.111932'); INSERT INTO t1 VALUES ('02:55:32.040','0000-00-00 00:00:00.0000',NULL,'00:20:02.0','08:45:57.00998','2009-06-25 10:21:16.011345','2011-11-07 12:01:41.111932'); INSERT INTO t1 VALUES ('00:20:06.000','2009-01-07 01:12:15.0324','2000-05-26 00:00:00','17:41:45.1','00:20:07.00000','0000-00-00 00:00:00.000000','2011-11-07 12:01:42.111932'); INSERT INTO t1 VALUES ('12:01:30.061','2009-04-01 00:00:00.0000','2001-05-08 05:31:04','07:43:41.1','11:12:29.03251','2009-12-22 17:45:46.040987','2011-11-07 12:01:43.111932'); INSERT INTO t1 VALUES ('00:16:22.057','2005-05-10 00:18:58.0345',NULL,'02:24:15.0',NULL,'2008-02-14 20:55:46.023678','2011-11-07 12:01:44.111932'); INSERT INTO t1 VALUES ('06:54:17.018','2002-12-27 12:28:03.0382','0000-00-00 00:00:00','19:19:54.0','01:42:30.03406','0000-00-00 00:00:00.000000','2011-11-07 12:01:45.111932'); INSERT INTO t1 VALUES ('00:20:04.000','2007-03-11 00:00:00.0000','0000-00-00 00:00:00',NULL,'13:12:03.05778','2005-02-19 02:31:13.046418','2011-11-07 12:01:46.111932'); INSERT INTO t1 VALUES ('00:20:01.000','2009-08-13 00:00:00.0000','0000-00-00 00:00:00','00:20:02.0',NULL,'2008-05-21 10:53:59.004633','2011-11-07 12:01:47.111932'); INSERT INTO t1 VALUES ('02:44:13.025','2001-07-02 14:06:37.0411','2009-04-01 00:43:45','00:20:07.0','16:15:02.01279','2004-07-28 17:34:20.031118','2011-11-07 12:01:48.111932'); INSERT INTO t1 VALUES ('14:51:02.019','2006-02-24 04:12:05.0014','0000-00-00 00:00:00','00:20:08.0','00:20:09.00000','2001-04-25 21:00:00.000000','2011-11-07 12:01:49.111932'); SELECT col_timestamp_6_not_null_key AS c1, col_datetime_key AS c2, UTC_DATE() AS c3 FROM t1 WHERE col_time_1_key BETWEEN TIMESTAMPADD(MONTH, 38 ,CONVERT_TZ( DATE(MAKEDATE(207, 38 )), '+00:00','+04:00')) AND LOCALTIMESTAMP() ORDER BY col_datetime_4_not_null_key , col_time_5 , col_time_3_not_null; c1 c2 c3 2009-06-25 10:21:16.011345 NULL 2001-11-07 0000-00-00 00:00:00.000000 2003-05-24 00:00:00 2001-11-07 2004-07-28 17:34:20.031118 2009-04-01 00:43:45 2001-11-07 0000-00-00 00:00:00.000000 0000-00-00 00:00:00 2001-11-07 2008-02-14 20:55:46.023678 NULL 2001-11-07 2001-04-25 21:00:00.000000 0000-00-00 00:00:00 2001-11-07 2008-03-19 16:17:15.042024 0000-00-00 00:00:00 2001-11-07 2009-12-22 17:45:46.040987 2001-05-08 05:31:04 2001-11-07 2000-08-19 21:00:00.000000 2007-03-26 12:18:48 2001-11-07 2008-05-21 10:53:59.004633 0000-00-00 00:00:00 2001-11-07 DROP TABLE t1; SET timestamp=DEFAULT; # # Bug#13359097 ASSERT FAILURE IN MAKE_SORTKEY # SET timestamp=UNIX_TIMESTAMP('2011-11-01 17:48:00'); CREATE TABLE t1 ( pk time(6) NOT NULL DEFAULT '00:00:00.000000', col_date_not_null date NOT NULL, PRIMARY KEY (pk) ); INSERT INTO t1 VALUES ('00:00:00.000000','2001-09-10'); INSERT INTO t1 VALUES ('12:07:41.148239','2000-05-23'); SELECT GREATEST('2004-04-07', COALESCE (pk, col_date_not_null)) FROM t1 ORDER BY 1; GREATEST('2004-04-07', COALESCE (pk, col_date_not_null)) 2011-11-01 00:00:00.000000 2011-11-01 12:07:41.148239 DROP TABLE t1; SET timestamp=DEFAULT; # # BUG 13385275 - ASSERT FAILURE IN TIME_FROM_LONGLONG_PACKED # CREATE TABLE t1 ( col_date_not_null_key date NOT NULL, KEY col_date_not_null_key (col_date_not_null_key)); INSERT INTO t1 VALUES ('0000-00-00'), ('2000-11-20'); SELECT ADDTIME(GREATEST(col_date_not_null_key, '2007-03-11 08:51:19.009408'), '12:20:40.029940') FROM t1; ADDTIME(GREATEST(col_date_not_null_key, '2007-03-11 08:51:19.009408'), '12:20:40.029940') 21:11:59.039348 21:11:59.039348 DROP TABLE t1; # # BUG#13386657 ASSERT FAILURE IN ITEM::GET_DATE_FROM_NON_TEMPORAL # CREATE TABLE t1 ( col_time_5_not_null_key time(5) NOT NULL, col_datetime_4 datetime(4) DEFAULT NULL, col_timestamp_1_not_null_key timestamp(1) NULL DEFAULT '0000-00-00 00:00:00.0', col_datetime_3_not_null_key datetime(3) NOT NULL, KEY col_time_5_not_null_key (col_time_5_not_null_key), KEY col_timestamp_1_not_null_key (col_timestamp_1_not_null_key), KEY col_datetime_3_not_null_key (col_datetime_3_not_null_key)); INSERT INTO t1 VALUES ('15:01:38.00004','0000-00-00 00:00:00.0000','2005-06-08 16:51:23.0','0000-00-00 00:00:00.000'); SELECT col_datetime_4 FROM t1 WHERE col_datetime_3_not_null_key IN (COALESCE (col_timestamp_1_not_null_key), col_time_5_not_null_key); col_datetime_4 DROP TABLE t1; CREATE TABLE t1 (a TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)); INSERT INTO t1 VALUES ('2001-01-01 10:20:30.999'); SELECT CAST(COALESCE(a,a) AS CHAR) FROM t1; CAST(COALESCE(a,a) AS CHAR) 2001-01-01 10:20:30.999 SELECT CAST(COALESCE(a,a) AS SIGNED) FROM t1; CAST(COALESCE(a,a) AS SIGNED) 20010101102031 SELECT CAST(COALESCE(a,a) AS DECIMAL(25,3)) FROM t1; CAST(COALESCE(a,a) AS DECIMAL(25,3)) 20010101102030.999 SELECT CAST(COALESCE(a,a) AS DATETIME(6)) FROM t1; CAST(COALESCE(a,a) AS DATETIME(6)) 2001-01-01 10:20:30.999000 SELECT CAST(COALESCE(a,a) AS TIME(6)) FROM t1; CAST(COALESCE(a,a) AS TIME(6)) 10:20:30.999000 SELECT ROUND(COALESCE(a,a)) FROM t1; ROUND(COALESCE(a,a)) 20010101102031 DROP TABLE t1; # # Bug#13391370 ASSERT FAILURE IN TIME_TO_LONGLONG_DATETIME_PACKED # SET timestamp=UNIX_TIMESTAMP('2011-11-15 16:25:30'); CREATE TABLE t1 ( col_time_2_not_null time(2) NOT NULL, col_timestamp_1_not_null timestamp(1) NULL DEFAULT '0000-00-00 00:00:00.0', col_datetime_1 datetime(1) DEFAULT NULL, col_timestamp_4_not_null timestamp(4) NULL DEFAULT '0000-00-00 00:00:00.0000', col_timestamp_6_not_null_key timestamp(6) NULL DEFAULT '0000-00-00 00:00:00.000000', col_date date DEFAULT NULL, KEY col_timestamp_6_not_null_key (col_timestamp_6_not_null_key)); DELETE FROM t1; INSERT INTO t1 VALUES ('00:20:09.00','2008-02-09 00:19:47.1','0000-00-00 00:00:00.0','2009-03-13 00:56:44.0401','2008-10-17 09:43:02.051040','2000-11-13'); INSERT INTO t1 VALUES ('00:20:04.00','0000-00-00 00:00:00.0','0000-00-00 00:00:00.0','0000-00-00 00:00:00.0000','0000-00-00 00:00:00.000000','2006-11-14'); INSERT INTO t1 VALUES ('15:54:14.06','2003-04-19 04:55:47.0',NULL,'0000-00-00 00:00:00.0000','2009-12-27 02:49:14.005722','0000-00-00'); INSERT INTO t1 VALUES ('04:58:16.02','2004-02-17 21:00:00.0',NULL,'0000-00-00 00:00:00.0000','2001-10-07 11:02:50.054375','2000-04-10'); INSERT INTO t1 VALUES ('10:34:28.04','2006-10-16 21:00:00.0',NULL,'0000-00-00 00:00:00.0000','2008-05-17 05:14:50.028683','0000-00-00'); INSERT INTO t1 VALUES ('14:17:38.04','2001-06-24 04:33:25.0','2008-09-05 21:25:39.0','0000-00-00 00:00:00.0000','0000-00-00 00:00:00.000000',NULL); INSERT INTO t1 VALUES ('00:20:06.00','2005-06-26 22:52:46.0','0000-00-00 00:00:00.0','2000-09-11 02:51:17.0211','0000-00-00 00:00:00.000000','2006-10-10'); INSERT INTO t1 VALUES ('00:09:41.03','0000-00-00 00:00:00.0','2008-02-16 19:59:19.0','2000-10-21 21:00:00.0000','2006-11-14 10:22:27.009969','0000-00-00'); INSERT INTO t1 VALUES ('16:57:08.01','2009-05-13 21:03:39.0','2004-01-12 11:46:42.0','2000-02-28 10:51:01.0152','2001-05-10 14:21:38.022082',NULL); INSERT INTO t1 VALUES ('19:02:15.03','0000-00-00 00:00:00.0','2009-07-16 20:15:38.1','0000-00-00 00:00:00.0000','0000-00-00 00:00:00.000000',NULL); SELECT SUBTIME('2002-04-08 06:05:42.056589', '01:26:40.063385') AS c1 FROM t1 WHERE col_timestamp_6_not_null_key IN ( LEAST(col_datetime_1, MAKETIME(24,8,0), ADDTIME(NOW(),'06:07:21.061946'), col_time_2_not_null), DATE ('2005-11-03'), CURTIME(), COALESCE(col_timestamp_4_not_null, TIMESTAMP('2003-09-10'))) ORDER BY col_date, col_timestamp_1_not_null; c1 2002-04-08 04:39:01.993204 2002-04-08 04:39:01.993204 2002-04-08 04:39:01.993204 2002-04-08 04:39:01.993204 DROP TABLE t1; CREATE TABLE t1 (a datetime(1)); INSERT INTO t1 VALUES ('2006-11-14 10:22:27.009969'); SELECT * FROM t1 WHERE timestamp'2006-11-14 10:22:27.009969' IN (LEAST(a, MAKETIME(24,8,0))); a DROP TABLE t1; SET timestamp=DEFAULT; # # Bug#13384069 - EMBEDED UPDATE WITH CAST AND DATETIME WITH FSP DOES NOT WORK # CREATE TABLE t1 ( pk timestamp(2) NOT NULL DEFAULT '0000-00-00 00:00:00.00', col_datetime_6 datetime(6) DEFAULT NULL, PRIMARY KEY (pk)); INSERT INTO t1 VALUES ('2011-11-11 17:59:41.12','0000-00-00 00:00:00.000000'); SELECT col_datetime_6, CAST(col_datetime_6 AS DATETIME(2)) AS c1 FROM t1; col_datetime_6 c1 0000-00-00 00:00:00.000000 0000-00-00 00:00:00.00 CREATE TABLE t2 AS SELECT CAST(col_datetime_6 AS DATETIME(2)) AS c1 FROM t1; SELECT * FROM t2; c1 0000-00-00 00:00:00.00 UPDATE t2 SET c1=(SELECT CAST(col_datetime_6 AS DATETIME(2)) AS c1 FROM t1); SELECT * FROM t2; c1 0000-00-00 00:00:00.00 DROP TABLE t1, t2; CREATE TABLE t1 (a DATE); INSERT INTO t1 VALUES ('0000-00-00'); SELECT CAST(COALESCE(a,a) AS SIGNED) FROM t1; CAST(COALESCE(a,a) AS SIGNED) 0 SELECT CAST(COALESCE(a,a) AS CHAR) FROM t1; CAST(COALESCE(a,a) AS CHAR) 0000-00-00 SELECT CAST(COALESCE(a,a) AS DECIMAL(25,3)) FROM t1; CAST(COALESCE(a,a) AS DECIMAL(25,3)) 0.000 SELECT CAST(COALESCE(a,a) AS DATETIME(6)) FROM t1; CAST(COALESCE(a,a) AS DATETIME(6)) 0000-00-00 00:00:00.000000 SELECT CAST(COALESCE(a,a) AS TIME(6)) FROM t1; CAST(COALESCE(a,a) AS TIME(6)) 00:00:00.000000 SELECT ROUND(COALESCE(a,a)) FROM t1; ROUND(COALESCE(a,a)) 0 DROP TABLE t1; CREATE TABLE t1 (a DATETIME); INSERT INTO t1 VALUES ('0000-00-00 00:00:00'); SELECT CAST(COALESCE(a,a) AS SIGNED) FROM t1; CAST(COALESCE(a,a) AS SIGNED) 0 SELECT CAST(COALESCE(a,a) AS CHAR) FROM t1; CAST(COALESCE(a,a) AS CHAR) 0000-00-00 00:00:00 SELECT CAST(COALESCE(a,a) AS DECIMAL(25,3)) FROM t1; CAST(COALESCE(a,a) AS DECIMAL(25,3)) 0.000 SELECT CAST(COALESCE(a,a) AS DATETIME(6)) FROM t1; CAST(COALESCE(a,a) AS DATETIME(6)) 0000-00-00 00:00:00.000000 SELECT CAST(COALESCE(a,a) AS TIME(6)) FROM t1; CAST(COALESCE(a,a) AS TIME(6)) 00:00:00.000000 SELECT ROUND(COALESCE(a,a)) FROM t1; ROUND(COALESCE(a,a)) 0 DROP TABLE t1; # # Bug#13383838 - DELETE DOESN'T EMPTY RECORDS WHEN CAST WITH DATETIME TYPE IN EMBEDED SELECT # CREATE TABLE t1 ( pk timestamp(2) NOT NULL DEFAULT '0000-00-00 00:00:00.00', col_datetime_6 datetime(6) DEFAULT NULL, PRIMARY KEY (pk)); INSERT INTO t1 VALUES ('2011-11-11 17:59:41.12','0000-00-00 00:00:00.000000'); CREATE TABLE t2 SELECT CAST(col_datetime_6 AS DATETIME) AS c1 FROM t1; UPDATE t2 SET c1=(SELECT CAST(col_datetime_6 AS DATETIME) AS c1 FROM t1) WHERE c1 IN (SELECT CAST(col_datetime_6 AS DATETIME) AS c1 FROM t1); SELECT * FROM t2 WHERE c1 IN (SELECT CAST( col_datetime_6 AS DATETIME ) AS c1 FROM t1); c1 0000-00-00 00:00:00 DELETE FROM t2 WHERE c1 IN (SELECT CAST( col_datetime_6 AS DATETIME ) AS c1 FROM t1); SELECT COUNT(*) FROM t2; COUNT(*) 0 DROP TABLE t1, t2; CREATE TABLE t1 ( pk timestamp(2) NOT NULL DEFAULT '0000-00-00 00:00:00.00', col_date date DEFAULT NULL, PRIMARY KEY (pk)); INSERT INTO t1 VALUES ('2011-11-11 17:59:41.12','0000-00-00'); CREATE TABLE t2 SELECT CAST(col_date AS DATE) AS c1 FROM t1; UPDATE t2 SET c1=(SELECT CAST(col_date AS DATE) AS c1 FROM t1) WHERE c1 IN (SELECT CAST(col_date AS DATE) AS c1 FROM t1); SELECT * FROM t2 WHERE c1 IN (SELECT CAST(col_date AS DATE) AS c1 FROM t1); c1 0000-00-00 DELETE FROM t2 WHERE c1 IN (SELECT CAST(col_date AS DATE) AS c1 FROM t1); SELECT COUNT(*) FROM t2; COUNT(*) 0 DROP TABLE t1, t2; # # Bug#13392141 ASSERT FAILURE IN SEC_SINCE_EPOCH # SELECT CONVERT_TZ(TIMESTAMP'2021-00-00 00:00:00', '+00:00', '+7:5'); CONVERT_TZ(TIMESTAMP'2021-00-00 00:00:00', '+00:00', '+7:5') NULL SELECT CONVERT_TZ(DATE'2021-00-00', '+00:00', '+7:5'); CONVERT_TZ(DATE'2021-00-00', '+00:00', '+7:5') NULL SELECT CONVERT_TZ(GREATEST(DATE('2021-00-00'),DATE('2021-00-00')),'+00:00','+7:5'); CONVERT_TZ(GREATEST(DATE('2021-00-00'),DATE('2021-00-00')),'+00:00','+7:5') NULL SET timestamp=UNIX_TIMESTAMP('2011-11-16 17:28:30'); DROP TABLE IF EXISTS t1; Warnings: Note 1051 Unknown table 'test.t1' CREATE TABLE t1 ( col_timestamp_2_not_null_key timestamp(2) NULL DEFAULT '0000-00-00 00:00:00.00', pk time NOT NULL DEFAULT '00:00:00', PRIMARY KEY (pk), KEY col_timestamp_2_not_null_key (col_timestamp_2_not_null_key)); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:49:56'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:49:58'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:00'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:02'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:03'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:05'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:12'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:14'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:18'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:19'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:23'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:24'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:28'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:30'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:34'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:35'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:37'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:38'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:46'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:47'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:50'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.00','18:50:52'); INSERT INTO t1 VALUES ('2000-05-24 21:00:00.00','18:50:11'); INSERT INTO t1 VALUES ('2000-08-09 13:04:19.05','18:50:32'); INSERT INTO t1 VALUES ('2000-10-05 09:01:10.01','18:50:42'); INSERT INTO t1 VALUES ('2000-12-08 03:00:13.05','18:50:04'); INSERT INTO t1 VALUES ('2001-03-02 07:52:23.01','18:50:44'); INSERT INTO t1 VALUES ('2001-04-24 10:01:32.05','18:50:49'); INSERT INTO t1 VALUES ('2003-02-18 14:31:23.06','18:50:39'); INSERT INTO t1 VALUES ('2003-03-07 21:00:00.00','18:50:29'); INSERT INTO t1 VALUES ('2003-04-16 21:00:00.00','18:50:17'); INSERT INTO t1 VALUES ('2003-08-10 21:00:00.00','18:50:36'); INSERT INTO t1 VALUES ('2003-11-24 06:30:37.06','18:49:53'); INSERT INTO t1 VALUES ('2003-12-01 21:00:00.00','18:50:41'); INSERT INTO t1 VALUES ('2004-05-16 19:56:24.05','18:50:31'); INSERT INTO t1 VALUES ('2004-05-27 18:45:05.06','18:50:08'); INSERT INTO t1 VALUES ('2004-06-05 22:51:19.04','18:50:20'); INSERT INTO t1 VALUES ('2004-10-16 21:00:00.00','18:49:54'); INSERT INTO t1 VALUES ('2004-11-02 21:00:00.00','18:50:51'); INSERT INTO t1 VALUES ('2005-02-23 00:35:02.05','18:50:07'); INSERT INTO t1 VALUES ('2005-08-15 16:33:48.01','18:50:43'); INSERT INTO t1 VALUES ('2006-03-14 21:15:50.03','18:50:33'); INSERT INTO t1 VALUES ('2006-04-24 18:46:21.06','18:50:01'); INSERT INTO t1 VALUES ('2006-05-14 01:54:29.01','18:50:40'); INSERT INTO t1 VALUES ('2006-08-23 22:33:51.02','18:50:06'); INSERT INTO t1 VALUES ('2006-11-15 02:06:29.02','18:49:59'); INSERT INTO t1 VALUES ('2006-11-28 11:32:09.03','18:50:15'); INSERT INTO t1 VALUES ('2007-01-19 18:45:01.00','18:50:25'); INSERT INTO t1 VALUES ('2007-01-23 18:04:25.01','18:50:27'); INSERT INTO t1 VALUES ('2007-06-20 18:42:45.01','18:50:48'); INSERT INTO t1 VALUES ('2007-08-27 21:00:00.00','18:50:22'); INSERT INTO t1 VALUES ('2007-10-11 09:54:15.02','18:50:45'); INSERT INTO t1 VALUES ('2008-01-24 18:55:00.04','18:50:10'); INSERT INTO t1 VALUES ('2008-03-03 16:06:21.03','18:50:16'); INSERT INTO t1 VALUES ('2008-03-23 21:00:00.00','18:50:26'); INSERT INTO t1 VALUES ('2008-05-28 10:12:34.06','18:49:57'); INSERT INTO t1 VALUES ('2009-06-09 21:31:23.04','18:50:21'); INSERT INTO t1 VALUES ('2009-06-14 09:15:36.06','18:50:09'); INSERT INTO t1 VALUES ('2009-06-30 23:31:57.01','18:49:55'); INSERT INTO t1 VALUES ('2009-12-25 17:54:17.00','18:50:13'); INSERT INTO t1 VALUES ('2005-12-15 18:49:06.05','00:00:00'); SELECT col_timestamp_2_not_null_key FROM t1 WHERE CONVERT_TZ(GREATEST('2005-11-05 18:16:50.055749', STR_TO_DATE(CURRENT_TIME, '%Y')), '+00:00', CONCAT('+', CONCAT_WS(':', 7, 5))); col_timestamp_2_not_null_key Warnings: Warning 1292 Truncated incorrect date value: '17:28:30' Warning 1292 Truncated incorrect date value: '17:28:30' Warning 1292 Truncated incorrect date value: '17:28:30' DROP TABLE t1; SET timestamp=DEFAULT; # # Bug#13365131 - VALGRIND: CONDITIONAL JUMP OR MOVE DEPENDS ON UNINITIALISED IN MY_TIME_COMPARE # CREATE TABLE t1 ( col_time_not_null_key time not null, col_timestamp_6_not_null_key timestamp(6) not null NULL DEFAULT 0, col_datetime_6_not_null_key datetime(6) not null, col_datetime_6_key datetime(6), col_time_3_not_null_key time(3) not null, col_datetime_3_key datetime(3), key (col_datetime_6_not_null_key), key (col_datetime_3_key)) ENGINE=innodb; CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1; SELECT col_datetime_3_key AS c1 FROM v1 WHERE SYSDATE() IS NULL OR col_datetime_6_not_null_key < TIMEDIFF('0000-00-00','2002-11-24' ) AND col_timestamp_6_not_null_key IS NULL; c1 Warnings: Warning 1292 Truncated incorrect time value: '0000-00-00' Warning 1292 Truncated incorrect time value: '2002-11-24' Warning 1292 Truncated incorrect time value: '0000-00-00' Warning 1292 Truncated incorrect time value: '2002-11-24' Warning 1292 Truncated incorrect time value: '0000-00-00' Warning 1292 Truncated incorrect time value: '2002-11-24' DROP VIEW v1; DROP TABLE t1; # # Bug#13401354 ITEM->FIELD_TYPE() == MYSQL_TYPE_TIME || ITEM->FIELD_TYPE() == MYSQL_TYPE_NULL # CREATE TABLE t1 (col_time_not_null TIME NOT NULL); SELECT * FROM t1 WHERE col_time_not_null = DATE(NULL) AND col_time_not_null = TIME(NULL); col_time_not_null DROP TABLE t1; CREATE TABLE t1 ( col_date DATE, col_time_not_null TIME not null, pk TIMESTAMP(6), col_timestamp_3_not_null_key TIMESTAMP(3) NOT NULL, col_date_not_null DATE NOT NULL, col_time_3_key TIME(3), col_timestamp_6_key TIMESTAMP(6) NOT NULL, col_datetime DATETIME, col_datetime_6 DATETIME(6), col_timestamp_3_key TIMESTAMP(3) NOT NULL, col_time_6_not_null TIME(6) NOT NULL, col_time_6 TIME(6), col_time_6_not_null_key TIME(6) NOT NULL, col_datetime_not_null DATETIME NOT NULL, col_datetime_3_not_null_key DATETIME(3) NOT NULL, KEY (col_datetime_3_not_null_key)); SELECT col_time_6 AS c1, NOW() AS c2 FROM t1 WHERE col_datetime_not_null BETWEEN SUBTIME('0000-00-00','00:00:00') AND col_date_not_null AND col_time_not_null=STR_TO_DATE(DATE_FORMAT(TIME('00:00:00.000000'),CONCAT_WS('-','%s','%k' )),CONCAT_WS(':','%i','%M')) AND col_date BETWEEN UNIX_TIMESTAMP('0000-00-00 00:00:00') AND col_timestamp_3_key AND col_datetime_6 NOT IN (col_time_6_not_null,'0000-00-00') AND col_time_not_null = TIMEDIFF(CURDATE(),'00:00:00.000000') AND col_time_3_key NOT IN (col_timestamp_6_key,pk) AND col_timestamp_3_not_null_key < col_datetime; c1 c2 Warnings: Warning 1411 Incorrect datetime value: '00-0' for function str_to_date DROP TABLE t1; # # Bug#13399082 - ASSERTION `MON > 0 && MON < 13' FAILED IN TZTIME.CC | SEC_SINCE_EPOCH # SET TIME_ZONE='+02:00'; SELECT UNIX_TIMESTAMP(STR_TO_DATE('2020','%Y')); UNIX_TIMESTAMP(STR_TO_DATE('2020','%Y')) 0 SET TIME_ZONE=DEFAULT; # This should return NULL CREATE TABLE t1 (a INT); INSERT INTO t1 VALUES(NULL); SELECT UNIX_TIMESTAMP(a) FROM t1; UNIX_TIMESTAMP(a) NULL DROP TABLE t1; SELECT UNIX_TIMESTAMP(NULL); UNIX_TIMESTAMP(NULL) NULL SELECT UNIX_TIMESTAMP(DATE(NULL)); UNIX_TIMESTAMP(DATE(NULL)) NULL SELECT UNIX_TIMESTAMP(TIME(NULL)); UNIX_TIMESTAMP(TIME(NULL)) NULL SELECT UNIX_TIMESTAMP(TIMESTAMP(NULL)); UNIX_TIMESTAMP(TIMESTAMP(NULL)) NULL SELECT CONCAT(UNIX_TIMESTAMP(NULL)); CONCAT(UNIX_TIMESTAMP(NULL)) NULL SELECT CAST(UNIX_TIMESTAMP(NULL) AS SIGNED); CAST(UNIX_TIMESTAMP(NULL) AS SIGNED) NULL SELECT CAST(UNIX_TIMESTAMP(NULL) AS DECIMAL(23,6)); CAST(UNIX_TIMESTAMP(NULL) AS DECIMAL(23,6)) NULL # This should return 0 CREATE TABLE t1 (a VARCHAR(30)); INSERT INTO t1 VALUES ('0000-01-01 00:00:00'),('2001-00-01 00:00:01'),('2001-01-00 00:00:00'), ('0000-00-00 00:00:01'),('0000-00-00 00:00:00.1'); SELECT UNIX_TIMESTAMP(a) FROM t1; UNIX_TIMESTAMP(a) 0.000000 0.000000 0.000000 0.000000 0.000000 DROP TABLE t1; SELECT UNIX_TIMESTAMP('0000-01-01 00:00:00'); UNIX_TIMESTAMP('0000-01-01 00:00:00') 0 SELECT UNIX_TIMESTAMP('2001-00-01 00:00:00'); UNIX_TIMESTAMP('2001-00-01 00:00:00') 0 SELECT UNIX_TIMESTAMP('2001-01-00 00:00:00'); UNIX_TIMESTAMP('2001-01-00 00:00:00') 0 SELECT UNIX_TIMESTAMP('0000-00-00 10:10:20'); UNIX_TIMESTAMP('0000-00-00 10:10:20') 0 SELECT UNIX_TIMESTAMP('0000-00-00 00:00:00.1'); UNIX_TIMESTAMP('0000-00-00 00:00:00.1') 0.0 SELECT UNIX_TIMESTAMP(TIMESTAMP'0000-00-00 10:10:20'); UNIX_TIMESTAMP(TIMESTAMP'0000-00-00 10:10:20') 0 SELECT UNIX_TIMESTAMP(TIMESTAMP'0000-00-00 00:00:00.1'); UNIX_TIMESTAMP(TIMESTAMP'0000-00-00 00:00:00.1') 0.0 SELECT UNIX_TIMESTAMP(TIMESTAMP('0000-00-00 10:10:20')); UNIX_TIMESTAMP(TIMESTAMP('0000-00-00 10:10:20')) 0 SELECT UNIX_TIMESTAMP(TIMESTAMP('0000-00-00 00:00:00.1')); UNIX_TIMESTAMP(TIMESTAMP('0000-00-00 00:00:00.1')) 0.0 # # Bug#13354387 - CRASH IN IN MY_DECIMAL::OPERATOR FOR VIEW AND FUNCTION UNIX_TIMESTAMP # SET timestamp=UNIX_TIMESTAMP('2011-11-18 14:36:00'); CREATE TABLE t1 ( pk time(2) NOT NULL DEFAULT '00:00:00.00', col_timestamp_3_not_null timestamp(3) NULL DEFAULT '0000-00-00 00:00:00.000', col_datetime_1_key datetime(1) DEFAULT NULL, col_datetime_6_not_null_key datetime(6) NOT NULL, col_datetime_2_not_null datetime(2) NOT NULL, PRIMARY KEY (pk), KEY col_datetime_1_key (col_datetime_1_key), KEY col_datetime_6_not_null_key (col_datetime_6_not_null_key)) ENGINE=MyISAM DEFAULT CHARSET=latin1; INSERT INTO t1 VALUES ('19:14:35.36','0000-00-00 00:00:00.000','0000-00-00 00:00:00.0','2000-08-28 07:34:20.051690','2009-09-20 07:32:39.06'); INSERT INTO t1 VALUES ('19:14:37.36','2005-07-04 08:03:50.051','0000-00-00 00:00:00.0','0000-00-00 00:00:00.000000','0000-00-00 00:00:00.00'); INSERT INTO t1 VALUES ('19:14:39.36','0000-00-00 00:00:00.000',NULL,'2005-10-11 07:24:45.059064','2009-11-19 00:00:00.00'); INSERT INTO t1 VALUES ('19:14:41.36','2005-11-22 21:00:00.000',NULL,'0000-00-00 00:00:00.000000','0000-00-00 00:00:00.00'); INSERT INTO t1 VALUES ('19:14:43.36','2009-11-06 21:00:00.000','2007-07-03 11:13:08.0','2002-09-02 00:17:37.037583','2003-09-25 09:29:41.00'); INSERT INTO t1 VALUES ('19:14:36.36','2009-08-15 05:43:18.029','2009-01-18 00:00:00.0','0000-00-00 00:00:00.000000','2007-07-20 08:31:37.02'); INSERT INTO t1 VALUES ('19:14:38.36','0000-00-00 00:00:00.000','0000-00-00 00:00:00.0','0000-00-00 00:00:00.000000','2004-08-16 05:11:47.04'); INSERT INTO t1 VALUES ('19:14:40.36','2000-04-16 21:00:00.000',NULL,'2004-04-27 00:00:00.000000','2009-06-03 00:18:49.04'); INSERT INTO t1 VALUES ('19:14:42.36','2009-01-18 20:46:41.035','2003-03-23 11:37:04.0','0000-00-00 00:00:00.000000','2009-12-26 00:00:00.00'); INSERT INTO t1 VALUES ('19:14:44.36','0000-00-00 00:00:00.000','0000-00-00 00:00:00.0','2005-09-14 15:13:53.062460','0000-00-00 00:00:00.00'); CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1; SELECT UNIX_TIMESTAMP(col_datetime_2_not_null) AS c1 FROM v1 WHERE col_datetime_6_not_null_key > col_datetime_1_key AND col_timestamp_3_not_null IS NOT NULL ORDER BY 1; c1 0.00 1253421159.06 DROP VIEW v1; DROP TABLE t1; SET timestamp=DEFAULT; # # Bug#13394031 VALGRIND: CONDITIONAL JUMP/MOVE DEPENDS ON UNINITIALISED IN FIELD::IS_REAL_NULL # CREATE TABLE t1 ( pk time, c_timestamp timestamp NULL DEFAULT 0, c_time time, primary key (pk), key (c_timestamp) ) ENGINE=INNODB; INSERT INTO t1 VALUES (SEC_TO_TIME(2),'20000627024305.040518','00:00:00.000000'), (SEC_TO_TIME(4),'0000-00-00','20010412233415.034269'), (SEC_TO_TIME(46),'20030628121312.000376','20020323065409.039577'), (SEC_TO_TIME(48),'20071219173306.048009',NULL), (SEC_TO_TIME(50),'0000-00-00',NULL); Warnings: Note 1265 Data truncated for column 'c_time' at row 2 Note 1265 Data truncated for column 'c_time' at row 3 SELECT c_time FROM t1; c_time 00:00:00 23:34:15 06:54:09 NULL NULL SELECT c_time AS c1 FROM t1 WHERE c_timestamp NOT IN (NULL, '0000-00-00 00:00:00'); c1 DROP TABLE t1; # # Various tests for better gcov coverage # # # Comparing DATETIME value to TIME(NULL) # SELECT TIMESTAMP'2001-01-01 00:00:00' = TIME(NULL); TIMESTAMP'2001-01-01 00:00:00' = TIME(NULL) NULL # # BUG#13450867 - CRASH ON UPDATE A TIME COLUMN # CREATE TABLE t1 (a TIME(6), b TIME(6), c TIME(6), d TIME(6)); INSERT INTO t1 VALUES ('-838:59:59.999999', '-838:59:59.000001', '838:59:59.999999', '838:59:59.000001'); Warnings: Warning 1264 Out of range value for column 'a' at row 1 Warning 1264 Out of range value for column 'b' at row 1 Warning 1264 Out of range value for column 'c' at row 1 Warning 1264 Out of range value for column 'd' at row 1 SELECT * FROM t1; a b c d -838:59:59.000000 -838:59:59.000000 838:59:59.000000 838:59:59.000000 UPDATE t1 SET a= a - INTERVAL 999999 MICROSECOND, b= b - INTERVAL 1 MICROSECOND, c= c + INTERVAL 999999 MICROSECOND, d= d + INTERVAL 1 MICROSECOND; Warnings: Warning 1441 Datetime function: time field overflow Warning 1441 Datetime function: time field overflow Warning 1441 Datetime function: time field overflow Warning 1441 Datetime function: time field overflow SELECT * FROM t1; a b c d NULL NULL NULL NULL DROP TABLE t1; SELECT SEC_TO_TIME(3200399.999999); SEC_TO_TIME(3200399.999999) 838:59:59.000000 Warnings: Warning 1292 Truncated incorrect time value: '3200399.999999' SELECT SEC_TO_TIME(3200399.000001); SEC_TO_TIME(3200399.000001) 838:59:59.000000 Warnings: Warning 1292 Truncated incorrect time value: '3200399.000001' SELECT SEC_TO_TIME(-3200399.999999); SEC_TO_TIME(-3200399.999999) -838:59:59.000000 Warnings: Warning 1292 Truncated incorrect time value: '-3200399.999999' SELECT SEC_TO_TIME(-3200399.000001); SEC_TO_TIME(-3200399.000001) -838:59:59.000000 Warnings: Warning 1292 Truncated incorrect time value: '-3200399.000001' # # BUG#13451866 - DIFFERENCE IN RESULTS WHEN USING # EXTRACT( MINUTE_MICROSECOND ) # CREATE TABLE t1 (a DATETIME(6) DEFAULT NULL); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000000'); SELECT * FROM t1; a 0000-00-00 00:00:00.000000 SELECT EXTRACT(MINUTE_MICROSECOND FROM a) FROM t1; EXTRACT(MINUTE_MICROSECOND FROM a) 0 SELECT EXTRACT(MINUTE_MICROSECOND FROM '0000-00-00 00:00:00.000000'); EXTRACT(MINUTE_MICROSECOND FROM '0000-00-00 00:00:00.000000') 0 DROP TABLE t1; # # BUG#13436875 - ASSERTION '!ARGS[0]->IS_TEMPORAL() || # !ARGS[1]->IS_TEMPORAL()' # CREATE TABLE t1 (a DATETIME NOT NULL); SELECT 1 FROM t1 WHERE GREATEST(a, a) / a; 1 SELECT 1 FROM t1 WHERE LEAST(a, a) / a; 1 SELECT 1 FROM t1 WHERE COALESCE(a, a) / a; 1 SELECT 1 FROM t1 WHERE IF(0, a, a) / a; 1 SELECT 1 FROM t1 WHERE IFNULL(a, a) / a; 1 SELECT 1 FROM t1 WHERE CASE WHEN 0 then a ELSE a END / a; 1 SELECT 1 FROM t1 WHERE (SELECT a FROM t1) / a; 1 DROP TABLE t1; # # BUG#13616434 ASSERTION FAILED: NANOSECONDS < 1000000000 # SELECT EXTRACT(DAY FROM (-0.1111111111)), EXTRACT(YEAR FROM (-0.1111111)), EXTRACT(YEAR_MONTH FROM (-0.1111111111)), EXTRACT(DAY FROM (-0.1111111)), EXTRACT(QUARTER FROM (-0.1111111111)), EXTRACT(MONTH FROM (-0.1111111)), EXTRACT(WEEK FROM (-0.1111111)), DATE(-0.1111111), QUARTER(-0.1111111111), TIMESTAMP(-0.1111111111), LAST_DAY(-0.1111111111), DAY(-0.1111111111), MONTH(-0.1111111111), YEAR(-0.1111111), DAYOFMONTH(-0.1111111111), TIMESTAMP((-0.1111111111),'{$x'), DATE_FORMAT(-0.1111111111,'+'), CONVERT(-0.1111111,DATE), CAST(-0.1111111111 AS DATE); EXTRACT(DAY FROM (-0.1111111111)) EXTRACT(YEAR FROM (-0.1111111)) EXTRACT(YEAR_MONTH FROM (-0.1111111111)) EXTRACT(DAY FROM (-0.1111111)) EXTRACT(QUARTER FROM (-0.1111111111)) EXTRACT(MONTH FROM (-0.1111111)) EXTRACT(WEEK FROM (-0.1111111)) DATE(-0.1111111) QUARTER(-0.1111111111) TIMESTAMP(-0.1111111111) LAST_DAY(-0.1111111111) DAY(-0.1111111111) MONTH(-0.1111111111) YEAR(-0.1111111) DAYOFMONTH(-0.1111111111) TIMESTAMP((-0.1111111111),'{$x') DATE_FORMAT(-0.1111111111,'+') CONVERT(-0.1111111,DATE) CAST(-0.1111111111 AS DATE) NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL Warnings: Warning 1292 Incorrect datetime value: '-0.1111111111' Warning 1292 Incorrect datetime value: '-0.1111111' Warning 1292 Incorrect datetime value: '-0.1111111111' Warning 1292 Incorrect datetime value: '-0.1111111' Warning 1292 Incorrect datetime value: '-0.1111111111' Warning 1292 Incorrect datetime value: '-0.1111111' Warning 1292 Incorrect datetime value: '-0.1111111' Warning 1292 Incorrect datetime value: '-0.1111111' Warning 1292 Incorrect datetime value: '-0.1111111111' Warning 1292 Incorrect datetime value: '-0.1111111111' Warning 1292 Incorrect datetime value: '-0.1111111111' Warning 1292 Incorrect datetime value: '-0.1111111111' Warning 1292 Incorrect datetime value: '-0.1111111111' Warning 1292 Incorrect datetime value: '-0.1111111' Warning 1292 Incorrect datetime value: '-0.1111111111' Warning 1292 Incorrect datetime value: '-0.1111111111' Warning 1292 Incorrect datetime value: '-0.1111111111' Warning 1292 Incorrect datetime value: '-0.1111111' Warning 1292 Incorrect datetime value: '-0.1111111111' # # Bug#13375823 - FSP(DECIMAL) RESULT DIFFERENCE WITH QUERY USING UNION ALL # CREATE TABLE t1 (a DATETIME(3) NOT NULL); INSERT INTO t1 VALUES ('2000-07-16 05:58:04.035'); INSERT INTO t1 VALUES ('2008-08-21 00:00:00.000'); INSERT INTO t1 VALUES ('0000-00-00 00:00:00.000'); # Testing INT number SELECT GREATEST(a, 1323) FROM t1; GREATEST(a, 1323) 20000716055804.035 20080821000000.000 1323.000 (SELECT GREATEST(a, 1323) FROM t1) UNION ALL (SELECT GREATEST(a, 1323) FROM t1 LIMIT 0); GREATEST(a, 1323) 20000716055804.035 20080821000000.000 1323.000 SELECT LEAST(a, 1323) FROM t1; LEAST(a, 1323) 1323.000 1323.000 0.000 (SELECT LEAST(a, 1323) FROM t1) UNION ALL (SELECT LEAST(a, 1323) FROM t1 LIMIT 0); LEAST(a, 1323) 1323.000 1323.000 0.000 # Testing DECIMAL number SELECT GREATEST(a, 1323.123456) FROM t1; GREATEST(a, 1323.123456) 20000716055804.035000 20080821000000.000000 1323.123456 (SELECT GREATEST(a, 1323.123456) FROM t1) UNION ALL (SELECT GREATEST(a, 1323.123456) FROM t1 LIMIT 0); GREATEST(a, 1323.123456) 20000716055804.035000 20080821000000.000000 1323.123456 SELECT LEAST(a, 1323.123456) FROM t1; LEAST(a, 1323.123456) 1323.123456 1323.123456 0.000000 (SELECT LEAST(a, 1323.123456) FROM t1) UNION ALL (SELECT LEAST(a, 1323.123456) FROM t1 LIMIT 0); LEAST(a, 1323.123456) 1323.123456 1323.123456 0.000000 # Testing REAL number SELECT GREATEST(a, 1323e0) FROM t1; GREATEST(a, 1323e0) 20000716055804.035 20080821000000 1323 (SELECT GREATEST(a, 1323e0) FROM t1) UNION ALL (SELECT GREATEST(a, 1323e0) FROM t1 LIMIT 0); GREATEST(a, 1323e0) 20000716055804.035 20080821000000 1323 SELECT LEAST(a, 1323e0) FROM t1; LEAST(a, 1323e0) 1323 1323 0 (SELECT LEAST(a, 1323e0) FROM t1) UNION ALL (SELECT LEAST(a, 1323e0) FROM t1 LIMIT 0); LEAST(a, 1323e0) 1323 1323 0 DROP TABLE t1; # Make sure precision of 6 fractional digits does not get lost CREATE TABLE t1 (a DATETIME(6)); INSERT INTO t1 VALUES ('2001-01-01 01:01:01.123456'); SELECT GREATEST(a,10), LEAST(a,10) FROM t1; GREATEST(a,10) LEAST(a,10) 20010101010101.123456 10.000000 DROP TABLE t1; # # Bug#13976233 ASSERTION FAILED: !CHECK_TIME_MMSSFF_RANGE(LTIME), FILE SQL_TIME.CC, LINE 304 # SELECT SECOND(4.99999999991e0); SECOND(4.99999999991e0) 5 SELECT SECOND(-4.99999999991e0); SECOND(-4.99999999991e0) 5 SELECT SECOND(TRUNCATE('5',180)); SECOND(TRUNCATE('5',180)) 5 # # Bug#17080703 INCONSISTENT DATETIME CONVERSIONS WITH FRACTIONAL SECONDS # # Test for TIMESTAMP datatype. SELECT TIMESTAMP '20130710010203'; TIMESTAMP '20130710010203' 2013-07-10 01:02:03 SELECT TIMESTAMP '201307100102031'; ERROR HY000: Incorrect DATETIME value: '201307100102031' SELECT TIMESTAMP '2013071001020312'; ERROR HY000: Incorrect DATETIME value: '2013071001020312' SELECT TIMESTAMP '20130710010203123'; ERROR HY000: Incorrect DATETIME value: '20130710010203123' SELECT TIMESTAMP '201307100102031234'; ERROR HY000: Incorrect DATETIME value: '201307100102031234' SELECT TIMESTAMP '2013071001020312345'; ERROR HY000: Incorrect DATETIME value: '2013071001020312345' SELECT TIMESTAMP '20130710010203123456'; ERROR HY000: Incorrect DATETIME value: '20130710010203123456' # Test non decimal point as delimiter for fractional seconds. SELECT TIMESTAMP '2013:07:10 01:02:03:04'; ERROR HY000: Incorrect DATETIME value: '2013:07:10 01:02:03:04' # Test for invalid seconds >= 60 properly separated by decimal point with fractions. SELECT TIMESTAMP '2013:07:10 01.02.131'; ERROR HY000: Incorrect DATETIME value: '2013:07:10 01.02.131' SELECT TIMESTAMP '2013:07:10 01.02.131.2'; ERROR HY000: Incorrect DATETIME value: '2013:07:10 01.02.131.2' SELECT TIMESTAMP '2013:07:10 01.02.0312.3'; ERROR HY000: Incorrect DATETIME value: '2013:07:10 01.02.0312.3' SELECT TIMESTAMP '2013.07.10 01.02.131.23456'; ERROR HY000: Incorrect DATETIME value: '2013.07.10 01.02.131.23456' SELECT TIMESTAMP '201307100102031.'; ERROR HY000: Incorrect DATETIME value: '201307100102031.' SELECT TIMESTAMP '2012071001021.1'; ERROR HY000: Incorrect DATETIME value: '2012071001021.1' # Test for valid seconds properly separated by decimal point with fractions. SELECT TIMESTAMP '2013:07:10 01.02.0.31'; TIMESTAMP '2013:07:10 01.02.0.31' 2013-07-10 01:02:00.31 SELECT TIMESTAMP '20130710010203.'; TIMESTAMP '20130710010203.' 2013-07-10 01:02:03 # Test for valid seconds properly separated by decimal point with fractions. SELECT TIMESTAMP '20130710010203.1'; TIMESTAMP '20130710010203.1' 2013-07-10 01:02:03.1 SELECT TIMESTAMP '20130710010203.12'; TIMESTAMP '20130710010203.12' 2013-07-10 01:02:03.12 SELECT TIMESTAMP '20130710010203.123'; TIMESTAMP '20130710010203.123' 2013-07-10 01:02:03.123 SELECT TIMESTAMP '20130710010203.1234'; TIMESTAMP '20130710010203.1234' 2013-07-10 01:02:03.1234 SELECT TIMESTAMP '20130710010203.12345'; TIMESTAMP '20130710010203.12345' 2013-07-10 01:02:03.12345 SELECT TIMESTAMP '20130710010203.123456'; TIMESTAMP '20130710010203.123456' 2013-07-10 01:02:03.123456 SELECT TIMESTAMP '20130710010203.1234567'; TIMESTAMP '20130710010203.1234567' 2013-07-10 01:02:03.123457 # Test for valid time literals in insert operation. CREATE TABLE t(key1 INT UNIQUE, col TIMESTAMP(6)); INSERT INTO t VALUES (1, '20130710010203.1'), (2, '20130710010203.12'), (3, '20130710010203.123'), (4, '20130710010203.1234'), (5,'20130710010203.12345'), (6, '20130710010203.123456'), (7, '201207100102'); SELECT * FROM t ORDER BY key1; key1 col 1 2013-07-10 01:02:03.100000 2 2013-07-10 01:02:03.120000 3 2013-07-10 01:02:03.123000 4 2013-07-10 01:02:03.123400 5 2013-07-10 01:02:03.123450 6 2013-07-10 01:02:03.123456 7 2020-12-07 10:01:02.000000 DELETE FROM t; # Test for invalid time literals in insert operation. INSERT INTO t VALUES (1, '201307100102031'), (2, '2013071001020312'), (3, '20130710010203123'), (4, '201307100102031234'), (5, '2013071001020312345'), (6, '20130710010203123456'), (7, '2013:07:10 01.02.031'), (8, '2013:07:10 01.02.031.2'), (9, '2013:07:10 01.02.0312.3'), (10, '2012071001021.1'), (11, '2012071001021'); Warnings: Warning 1265 Data truncated for column 'col' at row 1 Warning 1265 Data truncated for column 'col' at row 2 Warning 1265 Data truncated for column 'col' at row 3 Warning 1265 Data truncated for column 'col' at row 4 Warning 1265 Data truncated for column 'col' at row 5 Warning 1265 Data truncated for column 'col' at row 6 Warning 1265 Data truncated for column 'col' at row 9 Warning 1265 Data truncated for column 'col' at row 10 Warning 1265 Data truncated for column 'col' at row 11 SELECT * FROM t ORDER BY key1; key1 col 1 2013-07-10 01:02:03.000000 2 2013-07-10 01:02:03.000000 3 2013-07-10 01:02:03.000000 4 2013-07-10 01:02:03.000000 5 2013-07-10 01:02:03.000000 6 2013-07-10 01:02:03.000000 7 2013-07-10 01:02:31.000000 8 2013-07-10 01:02:31.200000 9 0000-00-00 00:00:00.000000 10 2020-12-07 10:01:02.000000 11 2020-12-07 10:01:02.000000 DROP TABLE t; # Test for DATETIME datatype. # Test for valid time literals in insert operation. CREATE TABLE t(key1 INT UNIQUE, col DATETIME(6)); INSERT INTO t VALUES (1, '20130710010203.1'), (2, '20130710010203.12'), (3, '20130710010203.123'), (4, '20130710010203.1234'), (5, '20130710010203.12345'), (6, '20130710010203.123456'), (7, '201207100102'); SELECT * FROM t ORDER BY key1; key1 col 1 2013-07-10 01:02:03.100000 2 2013-07-10 01:02:03.120000 3 2013-07-10 01:02:03.123000 4 2013-07-10 01:02:03.123400 5 2013-07-10 01:02:03.123450 6 2013-07-10 01:02:03.123456 7 2020-12-07 10:01:02.000000 DELETE FROM t; # Test for invalid time literals in insert operation. INSERT INTO t VALUES (1, '201307100102031'), (2, '2013071001020312'), (3, '20130710010203123'), (4, '201307100102031234'), (5, '2013071001020312345'), (6, '20130710010203123456'), (7, '2013:07:10 01.02.031'), (8, '2013:07:10 01.02.031.2'), (9, '2013:07:10 01.02.0312.3'), (10, '2012071001021.1'), (11, '2012071001021'); Warnings: Warning 1265 Data truncated for column 'col' at row 1 Warning 1265 Data truncated for column 'col' at row 2 Warning 1265 Data truncated for column 'col' at row 3 Warning 1265 Data truncated for column 'col' at row 4 Warning 1265 Data truncated for column 'col' at row 5 Warning 1265 Data truncated for column 'col' at row 6 Warning 1265 Data truncated for column 'col' at row 9 Warning 1265 Data truncated for column 'col' at row 10 Warning 1265 Data truncated for column 'col' at row 11 SELECT * FROM t ORDER BY key1; key1 col 1 2013-07-10 01:02:03.000000 2 2013-07-10 01:02:03.000000 3 2013-07-10 01:02:03.000000 4 2013-07-10 01:02:03.000000 5 2013-07-10 01:02:03.000000 6 2013-07-10 01:02:03.000000 7 2013-07-10 01:02:31.000000 8 2013-07-10 01:02:31.200000 9 0000-00-00 00:00:00.000000 10 2020-12-07 10:01:02.000000 11 2020-12-07 10:01:02.000000 DROP TABLE t; # Test for TIME datatype. SELECT TIME '010203'; TIME '010203' 01:02:03 SELECT TIME '1010203'; TIME '1010203' 101:02:03 SELECT TIME '01010203'; TIME '01010203' 101:02:03 SELECT TIME '10102031'; ERROR HY000: Incorrect TIME value: '10102031' SELECT TIME '101020312'; ERROR HY000: Incorrect TIME value: '101020312' SELECT TIME '1010203123'; ERROR HY000: Incorrect TIME value: '1010203123' SELECT TIME '10102031234'; ERROR HY000: Incorrect TIME value: '10102031234' SELECT TIME '101020312345'; ERROR HY000: Incorrect TIME value: '101020312345' SELECT TIME '1010203123456'; ERROR HY000: Incorrect TIME value: '1010203123456' # Test non decimal point as delimiter for fractional seconds. SELECT TIME '01:02:03:04'; ERROR HY000: Incorrect TIME value: '01:02:03:04' # Test for invalid seconds >= 60 properly separated by decimal point with fractions. SELECT TIME '01:02:131'; ERROR HY000: Incorrect TIME value: '01:02:131' SELECT TIME '01:02:131.2'; ERROR HY000: Incorrect TIME value: '01:02:131.2' SELECT TIME '01:02:0312.3'; ERROR HY000: Incorrect TIME value: '01:02:0312.3' SELECT TIME '01:02:131.23456'; ERROR HY000: Incorrect TIME value: '01:02:131.23456' SELECT TIME '11102031.'; ERROR HY000: Incorrect TIME value: '11102031.' # Test for valid seconds properly separated by decimal point with fractions. SELECT TIME '01:02:0.31'; TIME '01:02:0.31' 01:02:00.31 SELECT TIME '010203.'; TIME '010203.' 01:02:03 # Test for valid seconds properly separated by decimal point with fractions. SELECT TIME '110203.1'; TIME '110203.1' 11:02:03.1 SELECT TIME '010203.12'; TIME '010203.12' 01:02:03.12 SELECT TIME '010203.123'; TIME '010203.123' 01:02:03.123 SELECT TIME '010203.1234'; TIME '010203.1234' 01:02:03.1234 SELECT TIME '010203.12345'; TIME '010203.12345' 01:02:03.12345 SELECT TIME '010203.123456'; TIME '010203.123456' 01:02:03.123456 SELECT TIME '010203.1234567'; TIME '010203.1234567' 01:02:03.123457 SELECT TIME '01021.1'; TIME '01021.1' 00:10:21.1 # Test for valid time literals in insert operation. CREATE TABLE t(key1 INT UNIQUE, col TIME(6)); INSERT INTO t VALUES (1, '010203.1'), (2, '010203.12'), (3, '010203.123'), (4, '010203.1234'), (5, '010203.12345'), (6, '010203.123456'), (7, '0203.123456'), (8, '03.123456'), (9, '0.123456'); SELECT * FROM t ORDER BY key1; key1 col 1 01:02:03.100000 2 01:02:03.120000 3 01:02:03.123000 4 01:02:03.123400 5 01:02:03.123450 6 01:02:03.123456 7 00:02:03.123456 8 00:00:03.123456 9 00:00:00.123456 DELETE FROM t; # Test for invalid time literals in insert operation. INSERT INTO t VALUES (1, '0102031'), (2, '01020312'), (3, '010203123'), (4, '0102031234'), (5, '01020312345'), (6, '010203123456'), (7, '01:02:031'), (8, '01:02:031.2'), (9, '01:02:0312.3'); Warnings: Warning 1264 Out of range value for column 'col' at row 3 Warning 1264 Out of range value for column 'col' at row 4 Warning 1264 Out of range value for column 'col' at row 5 Note 1265 Data truncated for column 'col' at row 6 Warning 1264 Out of range value for column 'col' at row 9 SELECT * FROM t ORDER BY key1; key1 col 1 10:20:31.000000 2 102:03:12.000000 3 838:59:59.000000 4 838:59:59.000000 5 838:59:59.000000 6 12:34:56.000000 7 01:02:31.000000 8 01:02:31.200000 9 00:00:00.000000 DROP TABLE t; SET sql_mode = default; # End of 5.6 tests # # Bug#19900900 ASSERTION `!CHECK_DATETIME_RANGE(LTIME)' FAILED # TIME_TO_LONGLONG_DATETIME_PACKED # SET @@session.sql_buffer_result=TRUE; CREATE TABLE t1(a DATETIME) engine=innodb; INSERT INTO t1 VALUES('9999-12-31 23:59:58.000015'); SELECT ADDTIME(a, 100000) FROM t1; ADDTIME(a, 100000) NULL Warnings: Warning 1441 Datetime function: add_time field overflow SET @@session.sql_buffer_result=default; DROP TABLE t1;
Close