Current Path : /home/usr.opt/mysql57/mysql-test/r/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //home/usr.opt/mysql57/mysql-test/r/date_formats.result |
drop table if exists t1; SELECT variable_name, variable_value FROM information_schema.global_variables WHERE variable_name IN ('date_format', 'datetime_format', 'time_format') ORDER BY variable_name; variable_name variable_value DATETIME_FORMAT %Y-%m-%d %H:%i:%s DATE_FORMAT %d.%m.%Y TIME_FORMAT %H.%i.%s SELECT variable_name, variable_value FROM information_schema.session_variables WHERE variable_name IN ('date_format', 'datetime_format', 'time_format') ORDER BY variable_name; variable_name variable_value DATETIME_FORMAT %Y-%m-%d %H:%i:%s DATE_FORMAT %d.%m.%Y TIME_FORMAT %H.%i.%s select str_to_date(concat('15-01-2001',' 2:59:58.999'), concat('%d-%m-%Y',' ','%H:%i:%s.%f')); str_to_date(concat('15-01-2001',' 2:59:58.999'), concat('%d-%m-%Y',' ','%H:%i:%s.%f')) 2001-01-15 02:59:58.999000 select STR_TO_DATE('2004.12.12 22.30.61','%Y.%m.%d %T'); STR_TO_DATE('2004.12.12 22.30.61','%Y.%m.%d %T') NULL Warnings: Warning 1411 Incorrect time value: '22.30.61' for function str_to_date Warning 1411 Incorrect datetime value: '2004.12.12 22.30.61' for function str_to_date 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 (date char(30), format char(30) not null); insert into t1 values ('2003-01-02 10:11:12', '%Y-%m-%d %H:%i:%S'), ('03-01-02 8:11:2.123456', '%y-%m-%d %H:%i:%S.%#'), ('0003-01-02 8:11:2.123456', '%Y-%m-%d %H:%i:%S.%#'), ('03-01-02 8:11:2.123456', '%Y-%m-%d %H:%i:%S.%#'), ('2003-01-02 10:11:12 PM', '%Y-%m-%d %h:%i:%S %p'), ('2003-01-02 01:11:12.12345AM', '%Y-%m-%d %h:%i:%S.%f%p'), ('2003-01-02 02:11:12.12345AM', '%Y-%m-%d %h:%i:%S.%f %p'), ('2003-01-02 12:11:12.12345 am', '%Y-%m-%d %h:%i:%S.%f%p'), ('2003-01-02 11:11:12Pm', '%Y-%m-%d %h:%i:%S%p'), ('10:20:10', '%H:%i:%s'), ('10:20:10', '%h:%i:%s.%f'), ('10:20:10', '%T'), ('10:20:10AM', '%h:%i:%s%p'), ('10:20:10AM', '%r'), ('10:20:10.44AM', '%h:%i:%s.%f%p'), ('15-01-2001 12:59:58', '%d-%m-%Y %H:%i:%S'), ('15 September 2001', '%d %M %Y'), ('15 SEPTEMB 2001', '%d %M %Y'), ('15 MAY 2001', '%d %b %Y'), ('15th May 2001', '%D %b %Y'), ('Sunday 15 MAY 2001', '%W %d %b %Y'), ('Sund 15 MAY 2001', '%W %d %b %Y'), ('Tuesday 00 2002', '%W %U %Y'), ('Thursday 53 1998', '%W %u %Y'), ('Sunday 01 2001', '%W %v %x'), ('Tuesday 52 2001', '%W %V %X'), ('060 2004', '%j %Y'), ('4 53 1998', '%w %u %Y'), ('15-01-2001', '%d-%m-%Y %H:%i:%S'), ('15-01-20', '%d-%m-%y'), ('15-2001-1', '%d-%Y-%c'); select date,format,str_to_date(date, format) as str_to_date from t1; date format str_to_date 2003-01-02 10:11:12 %Y-%m-%d %H:%i:%S 2003-01-02 10:11:12.000000 03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S.%# 2003-01-02 08:11:02.000000 0003-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 0003-01-02 08:11:02.000000 03-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 2003-01-02 08:11:02.000000 2003-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 2003-01-02 22:11:12.000000 2003-01-02 01:11:12.12345AM %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 01:11:12.123450 2003-01-02 02:11:12.12345AM %Y-%m-%d %h:%i:%S.%f %p 2003-01-02 02:11:12.123450 2003-01-02 12:11:12.12345 am %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 00:11:12.123450 2003-01-02 11:11:12Pm %Y-%m-%d %h:%i:%S%p 2003-01-02 23:11:12.000000 10:20:10 %H:%i:%s 0000-00-00 10:20:10.000000 10:20:10 %h:%i:%s.%f 0000-00-00 10:20:10.000000 10:20:10 %T 0000-00-00 10:20:10.000000 10:20:10AM %h:%i:%s%p 0000-00-00 10:20:10.000000 10:20:10AM %r 0000-00-00 10:20:10.000000 10:20:10.44AM %h:%i:%s.%f%p 0000-00-00 10:20:10.440000 15-01-2001 12:59:58 %d-%m-%Y %H:%i:%S 2001-01-15 12:59:58.000000 15 September 2001 %d %M %Y 2001-09-15 00:00:00.000000 15 SEPTEMB 2001 %d %M %Y 2001-09-15 00:00:00.000000 15 MAY 2001 %d %b %Y 2001-05-15 00:00:00.000000 15th May 2001 %D %b %Y 2001-05-15 00:00:00.000000 Sunday 15 MAY 2001 %W %d %b %Y 2001-05-15 00:00:00.000000 Sund 15 MAY 2001 %W %d %b %Y 2001-05-15 00:00:00.000000 Tuesday 00 2002 %W %U %Y 2002-01-01 00:00:00.000000 Thursday 53 1998 %W %u %Y 1998-12-31 00:00:00.000000 Sunday 01 2001 %W %v %x 2001-01-07 00:00:00.000000 Tuesday 52 2001 %W %V %X 2002-01-01 00:00:00.000000 060 2004 %j %Y 2004-02-29 00:00:00.000000 4 53 1998 %w %u %Y 1998-12-31 00:00:00.000000 15-01-2001 %d-%m-%Y %H:%i:%S 2001-01-15 00:00:00.000000 15-01-20 %d-%m-%y 2020-01-15 00:00:00.000000 15-2001-1 %d-%Y-%c 2001-01-15 00:00:00.000000 select date,format,concat('',str_to_date(date, format)) as con from t1; date format con 2003-01-02 10:11:12 %Y-%m-%d %H:%i:%S 2003-01-02 10:11:12.000000 03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S.%# 2003-01-02 08:11:02.000000 0003-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 0003-01-02 08:11:02.000000 03-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 2003-01-02 08:11:02.000000 2003-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 2003-01-02 22:11:12.000000 2003-01-02 01:11:12.12345AM %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 01:11:12.123450 2003-01-02 02:11:12.12345AM %Y-%m-%d %h:%i:%S.%f %p 2003-01-02 02:11:12.123450 2003-01-02 12:11:12.12345 am %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 00:11:12.123450 2003-01-02 11:11:12Pm %Y-%m-%d %h:%i:%S%p 2003-01-02 23:11:12.000000 10:20:10 %H:%i:%s 0000-00-00 10:20:10.000000 10:20:10 %h:%i:%s.%f 0000-00-00 10:20:10.000000 10:20:10 %T 0000-00-00 10:20:10.000000 10:20:10AM %h:%i:%s%p 0000-00-00 10:20:10.000000 10:20:10AM %r 0000-00-00 10:20:10.000000 10:20:10.44AM %h:%i:%s.%f%p 0000-00-00 10:20:10.440000 15-01-2001 12:59:58 %d-%m-%Y %H:%i:%S 2001-01-15 12:59:58.000000 15 September 2001 %d %M %Y 2001-09-15 00:00:00.000000 15 SEPTEMB 2001 %d %M %Y 2001-09-15 00:00:00.000000 15 MAY 2001 %d %b %Y 2001-05-15 00:00:00.000000 15th May 2001 %D %b %Y 2001-05-15 00:00:00.000000 Sunday 15 MAY 2001 %W %d %b %Y 2001-05-15 00:00:00.000000 Sund 15 MAY 2001 %W %d %b %Y 2001-05-15 00:00:00.000000 Tuesday 00 2002 %W %U %Y 2002-01-01 00:00:00.000000 Thursday 53 1998 %W %u %Y 1998-12-31 00:00:00.000000 Sunday 01 2001 %W %v %x 2001-01-07 00:00:00.000000 Tuesday 52 2001 %W %V %X 2002-01-01 00:00:00.000000 060 2004 %j %Y 2004-02-29 00:00:00.000000 4 53 1998 %w %u %Y 1998-12-31 00:00:00.000000 15-01-2001 %d-%m-%Y %H:%i:%S 2001-01-15 00:00:00.000000 15-01-20 %d-%m-%y 2020-01-15 00:00:00.000000 15-2001-1 %d-%Y-%c 2001-01-15 00:00:00.000000 select date,format,cast(str_to_date(date, format) as datetime) as datetime from t1; date format datetime 2003-01-02 10:11:12 %Y-%m-%d %H:%i:%S 2003-01-02 10:11:12 03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S.%# 2003-01-02 08:11:02 0003-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 0003-01-02 08:11:02 03-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 2003-01-02 08:11:02 2003-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 2003-01-02 22:11:12 2003-01-02 01:11:12.12345AM %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 01:11:12 2003-01-02 02:11:12.12345AM %Y-%m-%d %h:%i:%S.%f %p 2003-01-02 02:11:12 2003-01-02 12:11:12.12345 am %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 00:11:12 2003-01-02 11:11:12Pm %Y-%m-%d %h:%i:%S%p 2003-01-02 23:11:12 10:20:10 %H:%i:%s 0000-00-00 10:20:10 10:20:10 %h:%i:%s.%f 0000-00-00 10:20:10 10:20:10 %T 0000-00-00 10:20:10 10:20:10AM %h:%i:%s%p 0000-00-00 10:20:10 10:20:10AM %r 0000-00-00 10:20:10 10:20:10.44AM %h:%i:%s.%f%p 0000-00-00 10:20:10 15-01-2001 12:59:58 %d-%m-%Y %H:%i:%S 2001-01-15 12:59:58 15 September 2001 %d %M %Y 2001-09-15 00:00:00 15 SEPTEMB 2001 %d %M %Y 2001-09-15 00:00:00 15 MAY 2001 %d %b %Y 2001-05-15 00:00:00 15th May 2001 %D %b %Y 2001-05-15 00:00:00 Sunday 15 MAY 2001 %W %d %b %Y 2001-05-15 00:00:00 Sund 15 MAY 2001 %W %d %b %Y 2001-05-15 00:00:00 Tuesday 00 2002 %W %U %Y 2002-01-01 00:00:00 Thursday 53 1998 %W %u %Y 1998-12-31 00:00:00 Sunday 01 2001 %W %v %x 2001-01-07 00:00:00 Tuesday 52 2001 %W %V %X 2002-01-01 00:00:00 060 2004 %j %Y 2004-02-29 00:00:00 4 53 1998 %w %u %Y 1998-12-31 00:00:00 15-01-2001 %d-%m-%Y %H:%i:%S 2001-01-15 00:00:00 15-01-20 %d-%m-%y 2020-01-15 00:00:00 15-2001-1 %d-%Y-%c 2001-01-15 00:00:00 select date,format,DATE(str_to_date(date, format)) as date2 from t1; date format date2 2003-01-02 10:11:12 %Y-%m-%d %H:%i:%S 2003-01-02 03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S.%# 2003-01-02 0003-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 0003-01-02 03-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 2003-01-02 2003-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 2003-01-02 2003-01-02 01:11:12.12345AM %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 2003-01-02 02:11:12.12345AM %Y-%m-%d %h:%i:%S.%f %p 2003-01-02 2003-01-02 12:11:12.12345 am %Y-%m-%d %h:%i:%S.%f%p 2003-01-02 2003-01-02 11:11:12Pm %Y-%m-%d %h:%i:%S%p 2003-01-02 10:20:10 %H:%i:%s 0000-00-00 10:20:10 %h:%i:%s.%f 0000-00-00 10:20:10 %T 0000-00-00 10:20:10AM %h:%i:%s%p 0000-00-00 10:20:10AM %r 0000-00-00 10:20:10.44AM %h:%i:%s.%f%p 0000-00-00 15-01-2001 12:59:58 %d-%m-%Y %H:%i:%S 2001-01-15 15 September 2001 %d %M %Y 2001-09-15 15 SEPTEMB 2001 %d %M %Y 2001-09-15 15 MAY 2001 %d %b %Y 2001-05-15 15th May 2001 %D %b %Y 2001-05-15 Sunday 15 MAY 2001 %W %d %b %Y 2001-05-15 Sund 15 MAY 2001 %W %d %b %Y 2001-05-15 Tuesday 00 2002 %W %U %Y 2002-01-01 Thursday 53 1998 %W %u %Y 1998-12-31 Sunday 01 2001 %W %v %x 2001-01-07 Tuesday 52 2001 %W %V %X 2002-01-01 060 2004 %j %Y 2004-02-29 4 53 1998 %w %u %Y 1998-12-31 15-01-2001 %d-%m-%Y %H:%i:%S 2001-01-15 15-01-20 %d-%m-%y 2020-01-15 15-2001-1 %d-%Y-%c 2001-01-15 select date,format,TIME(str_to_date(date, format)) as time from t1; date format time 2003-01-02 10:11:12 %Y-%m-%d %H:%i:%S 10:11:12.000000 03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S.%# 08:11:02.000000 0003-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 08:11:02.000000 03-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 08:11:02.000000 2003-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 22:11:12.000000 2003-01-02 01:11:12.12345AM %Y-%m-%d %h:%i:%S.%f%p 01:11:12.123450 2003-01-02 02:11:12.12345AM %Y-%m-%d %h:%i:%S.%f %p 02:11:12.123450 2003-01-02 12:11:12.12345 am %Y-%m-%d %h:%i:%S.%f%p 00:11:12.123450 2003-01-02 11:11:12Pm %Y-%m-%d %h:%i:%S%p 23:11:12.000000 10:20:10 %H:%i:%s 10:20:10.000000 10:20:10 %h:%i:%s.%f 10:20:10.000000 10:20:10 %T 10:20:10.000000 10:20:10AM %h:%i:%s%p 10:20:10.000000 10:20:10AM %r 10:20:10.000000 10:20:10.44AM %h:%i:%s.%f%p 10:20:10.440000 15-01-2001 12:59:58 %d-%m-%Y %H:%i:%S 12:59:58.000000 15 September 2001 %d %M %Y 00:00:00.000000 15 SEPTEMB 2001 %d %M %Y 00:00:00.000000 15 MAY 2001 %d %b %Y 00:00:00.000000 15th May 2001 %D %b %Y 00:00:00.000000 Sunday 15 MAY 2001 %W %d %b %Y 00:00:00.000000 Sund 15 MAY 2001 %W %d %b %Y 00:00:00.000000 Tuesday 00 2002 %W %U %Y 00:00:00.000000 Thursday 53 1998 %W %u %Y 00:00:00.000000 Sunday 01 2001 %W %v %x 00:00:00.000000 Tuesday 52 2001 %W %V %X 00:00:00.000000 060 2004 %j %Y 00:00:00.000000 4 53 1998 %w %u %Y 00:00:00.000000 15-01-2001 %d-%m-%Y %H:%i:%S 00:00:00.000000 15-01-20 %d-%m-%y 00:00:00.000000 15-2001-1 %d-%Y-%c 00:00:00.000000 select date,format,concat(TIME(str_to_date(date, format))) as time2 from t1; date format time2 2003-01-02 10:11:12 %Y-%m-%d %H:%i:%S 10:11:12.000000 03-01-02 8:11:2.123456 %y-%m-%d %H:%i:%S.%# 08:11:02.000000 0003-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 08:11:02.000000 03-01-02 8:11:2.123456 %Y-%m-%d %H:%i:%S.%# 08:11:02.000000 2003-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 22:11:12.000000 2003-01-02 01:11:12.12345AM %Y-%m-%d %h:%i:%S.%f%p 01:11:12.123450 2003-01-02 02:11:12.12345AM %Y-%m-%d %h:%i:%S.%f %p 02:11:12.123450 2003-01-02 12:11:12.12345 am %Y-%m-%d %h:%i:%S.%f%p 00:11:12.123450 2003-01-02 11:11:12Pm %Y-%m-%d %h:%i:%S%p 23:11:12.000000 10:20:10 %H:%i:%s 10:20:10.000000 10:20:10 %h:%i:%s.%f 10:20:10.000000 10:20:10 %T 10:20:10.000000 10:20:10AM %h:%i:%s%p 10:20:10.000000 10:20:10AM %r 10:20:10.000000 10:20:10.44AM %h:%i:%s.%f%p 10:20:10.440000 15-01-2001 12:59:58 %d-%m-%Y %H:%i:%S 12:59:58.000000 15 September 2001 %d %M %Y 00:00:00.000000 15 SEPTEMB 2001 %d %M %Y 00:00:00.000000 15 MAY 2001 %d %b %Y 00:00:00.000000 15th May 2001 %D %b %Y 00:00:00.000000 Sunday 15 MAY 2001 %W %d %b %Y 00:00:00.000000 Sund 15 MAY 2001 %W %d %b %Y 00:00:00.000000 Tuesday 00 2002 %W %U %Y 00:00:00.000000 Thursday 53 1998 %W %u %Y 00:00:00.000000 Sunday 01 2001 %W %v %x 00:00:00.000000 Tuesday 52 2001 %W %V %X 00:00:00.000000 060 2004 %j %Y 00:00:00.000000 4 53 1998 %w %u %Y 00:00:00.000000 15-01-2001 %d-%m-%Y %H:%i:%S 00:00:00.000000 15-01-20 %d-%m-%y 00:00:00.000000 15-2001-1 %d-%Y-%c 00:00:00.000000 select concat('',str_to_date('8:11:2.123456 03-01-02','%H:%i:%S.%f %y-%m-%d')); concat('',str_to_date('8:11:2.123456 03-01-02','%H:%i:%S.%f %y-%m-%d')) 2003-01-02 08:11:02.123456 truncate table t1; insert into t1 values ('2003-01-02 10:11:12 PM', '%Y-%m-%d %H:%i:%S %p'), ('2003-01-02 10:11:12.123456', '%Y-%m-%d %h:%i:%S %p'), ('2003-01-02 10:11:12AM', '%Y-%m-%d %h:%i:%S.%f %p'), ('2003-01-02 10:11:12AN', '%Y-%m-%d %h:%i:%S%p'), ('2003-01-02 10:11:12 PM', '%y-%m-%d %H:%i:%S %p'), ('10:20:10AM', '%H:%i:%s%p'), ('15 Septembei 2001', '%d %M %Y'), ('15 Ju 2001', '%d %M %Y'), ('Sund 15 MA', '%W %d %b %Y'), ('Thursdai 12 1998', '%W %u %Y'), ('Sunday 01 2001', '%W %v %X'), ('Tuesday 52 2001', '%W %V %x'), ('Tuesday 52 2001', '%W %V %Y'), ('Tuesday 52 2001', '%W %u %x'), ('7 53 1998', '%w %u %Y'), (NULL, get_format(DATE,'USA')); select date,format,str_to_date(date, format) as str_to_date from t1; date format str_to_date 2003-01-02 10:11:12 PM %Y-%m-%d %H:%i:%S %p NULL 2003-01-02 10:11:12.123456 %Y-%m-%d %h:%i:%S %p NULL 2003-01-02 10:11:12AM %Y-%m-%d %h:%i:%S.%f %p NULL 2003-01-02 10:11:12AN %Y-%m-%d %h:%i:%S%p NULL 2003-01-02 10:11:12 PM %y-%m-%d %H:%i:%S %p NULL 10:20:10AM %H:%i:%s%p NULL 15 Septembei 2001 %d %M %Y NULL 15 Ju 2001 %d %M %Y NULL Sund 15 MA %W %d %b %Y NULL Thursdai 12 1998 %W %u %Y NULL Sunday 01 2001 %W %v %X NULL Tuesday 52 2001 %W %V %x NULL Tuesday 52 2001 %W %V %Y NULL Tuesday 52 2001 %W %u %x NULL 7 53 1998 %w %u %Y NULL NULL %m.%d.%Y NULL Warnings: Warning 1411 Incorrect datetime value: '2003-01-02 10:11:12 PM' for function str_to_date Warning 1411 Incorrect datetime value: '2003-01-02 10:11:12.123456' for function str_to_date Warning 1411 Incorrect datetime value: '2003-01-02 10:11:12AM' for function str_to_date Warning 1411 Incorrect datetime value: '2003-01-02 10:11:12AN' for function str_to_date Warning 1411 Incorrect datetime value: '2003-01-02 10:11:12 PM' for function str_to_date Warning 1411 Incorrect datetime value: '10:20:10AM' for function str_to_date Warning 1411 Incorrect datetime value: '15 Septembei 2001' for function str_to_date Warning 1411 Incorrect datetime value: '15 Ju 2001' for function str_to_date Warning 1411 Incorrect datetime value: 'Sund 15 MA' for function str_to_date Warning 1411 Incorrect datetime value: 'Thursdai 12 1998' for function str_to_date Warning 1411 Incorrect datetime value: 'Sunday 01 2001' for function str_to_date Warning 1411 Incorrect datetime value: 'Tuesday 52 2001' for function str_to_date Warning 1411 Incorrect datetime value: 'Tuesday 52 2001' for function str_to_date Warning 1411 Incorrect datetime value: 'Tuesday 52 2001' for function str_to_date Warning 1411 Incorrect datetime value: '7 53 1998' for function str_to_date select date,format,concat(str_to_date(date, format),'') as con from t1; date format con 2003-01-02 10:11:12 PM %Y-%m-%d %H:%i:%S %p NULL 2003-01-02 10:11:12.123456 %Y-%m-%d %h:%i:%S %p NULL 2003-01-02 10:11:12AM %Y-%m-%d %h:%i:%S.%f %p NULL 2003-01-02 10:11:12AN %Y-%m-%d %h:%i:%S%p NULL 2003-01-02 10:11:12 PM %y-%m-%d %H:%i:%S %p NULL 10:20:10AM %H:%i:%s%p NULL 15 Septembei 2001 %d %M %Y NULL 15 Ju 2001 %d %M %Y NULL Sund 15 MA %W %d %b %Y NULL Thursdai 12 1998 %W %u %Y NULL Sunday 01 2001 %W %v %X NULL Tuesday 52 2001 %W %V %x NULL Tuesday 52 2001 %W %V %Y NULL Tuesday 52 2001 %W %u %x NULL 7 53 1998 %w %u %Y NULL NULL %m.%d.%Y NULL Warnings: Warning 1411 Incorrect datetime value: '2003-01-02 10:11:12 PM' for function str_to_date Warning 1411 Incorrect datetime value: '2003-01-02 10:11:12.123456' for function str_to_date Warning 1411 Incorrect datetime value: '2003-01-02 10:11:12AM' for function str_to_date Warning 1411 Incorrect datetime value: '2003-01-02 10:11:12AN' for function str_to_date Warning 1411 Incorrect datetime value: '2003-01-02 10:11:12 PM' for function str_to_date Warning 1411 Incorrect datetime value: '10:20:10AM' for function str_to_date Warning 1411 Incorrect datetime value: '15 Septembei 2001' for function str_to_date Warning 1411 Incorrect datetime value: '15 Ju 2001' for function str_to_date Warning 1411 Incorrect datetime value: 'Sund 15 MA' for function str_to_date Warning 1411 Incorrect datetime value: 'Thursdai 12 1998' for function str_to_date Warning 1411 Incorrect datetime value: 'Sunday 01 2001' for function str_to_date Warning 1411 Incorrect datetime value: 'Tuesday 52 2001' for function str_to_date Warning 1411 Incorrect datetime value: 'Tuesday 52 2001' for function str_to_date Warning 1411 Incorrect datetime value: 'Tuesday 52 2001' for function str_to_date Warning 1411 Incorrect datetime value: '7 53 1998' for function str_to_date truncate table t1; insert into t1 values ('10:20:10AM', '%h:%i:%s'), ('2003-01-02 10:11:12', '%Y-%m-%d %h:%i:%S'), ('03-01-02 10:11:12 PM', '%Y-%m-%d %h:%i:%S %p'); select date,format,str_to_date(date, format) as str_to_date from t1; date format str_to_date 10:20:10AM %h:%i:%s 0000-00-00 10:20:10.000000 2003-01-02 10:11:12 %Y-%m-%d %h:%i:%S 2003-01-02 10:11:12.000000 03-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 2003-01-02 22:11:12.000000 Warnings: Warning 1292 Truncated incorrect datetime value: '10:20:10AM' select date,format,concat(str_to_date(date, format),'') as con from t1; date format con 10:20:10AM %h:%i:%s 0000-00-00 10:20:10.000000 2003-01-02 10:11:12 %Y-%m-%d %h:%i:%S 2003-01-02 10:11:12.000000 03-01-02 10:11:12 PM %Y-%m-%d %h:%i:%S %p 2003-01-02 22:11:12.000000 Warnings: Warning 1292 Truncated incorrect datetime value: '10:20:10AM' drop table t1; SET sql_mode = default; select get_format(DATE, 'USA') as a; a %m.%d.%Y select get_format(TIME, 'internal') as a; a %H%i%s select get_format(DATETIME, 'eur') as a; a %Y-%m-%d %H.%i.%s select get_format(TIMESTAMP, 'eur') as a; a %Y-%m-%d %H.%i.%s select get_format(DATE, 'TEST') as a; a NULL select str_to_date('15-01-2001 12:59:59', GET_FORMAT(DATE,'USA')); str_to_date('15-01-2001 12:59:59', GET_FORMAT(DATE,'USA')) NULL Warnings: Warning 1411 Incorrect datetime value: '15-01-2001 12:59:59' for function str_to_date Warning 1411 Incorrect datetime value: '15-01-2001 12:59:59' for function str_to_date explain extended select makedate(1997,1), addtime("31.12.97 11.59.59.999999 PM", "1 1.1.1.000002"),subtime("31.12.97 11.59.59.999999 PM", "1 1.1.1.000002"),timediff("01.01.97 11:59:59.000001 PM","31.12.95 11:59:59.000002 PM"),cast(str_to_date("15-01-2001 12:59:59", "%d-%m-%Y %H:%i:%S") as TIME), maketime(23,11,12),microsecond("1997-12-31 23:59:59.000001"); 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 makedate(1997,1) AS `makedate(1997,1)`,addtime('31.12.97 11.59.59.999999 PM','1 1.1.1.000002') AS `addtime("31.12.97 11.59.59.999999 PM", "1 1.1.1.000002")`,subtime('31.12.97 11.59.59.999999 PM','1 1.1.1.000002') AS `subtime("31.12.97 11.59.59.999999 PM", "1 1.1.1.000002")`,timediff('01.01.97 11:59:59.000001 PM','31.12.95 11:59:59.000002 PM') AS `timediff("01.01.97 11:59:59.000001 PM","31.12.95 11:59:59.000002 PM")`,cast(str_to_date('15-01-2001 12:59:59','%d-%m-%Y %H:%i:%S') as time) AS `cast(str_to_date("15-01-2001 12:59:59", "%d-%m-%Y %H:%i:%S") as TIME)`,maketime(23,11,12) AS `maketime(23,11,12)`,microsecond('1997-12-31 23:59:59.000001') AS `microsecond("1997-12-31 23:59:59.000001")` create table t1 (d date); insert into t1 values ('2004-07-14'),('2005-07-14'); select date_format(d,"%d") from t1 order by 1; date_format(d,"%d") 14 14 drop table t1; select str_to_date("2003-....01ABCD-02 10:11:12.0012", "%Y-%.%m%@-%d %H:%i:%S.%f") as a; a 2003-01-02 10:11:12.001200 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 select str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S.%f") as f1, str_to_date("10:11:12.0012", "%H:%i:%S.%f") as f2, str_to_date("2003-01-02", "%Y-%m-%d") as f3, str_to_date("02", "%d") as f4, str_to_date("02 10", "%d %H") as f5; describe t1; Field Type Null Key Default Extra f1 datetime(6) YES NULL f2 time(6) YES NULL f3 date YES NULL f4 date YES NULL f5 time YES NULL select * from t1; f1 f2 f3 f4 f5 2003-01-02 10:11:12.001200 10:11:12.001200 2003-01-02 0000-00-02 58:00:00 drop table t1; create table t1 select "02 10" as a, "%d %H" as b; select str_to_date(a,b) from t1; str_to_date(a,b) 0000-00-02 10:00:00.000000 create table t2 select str_to_date(a,b) from t1; describe t2; Field Type Null Key Default Extra str_to_date(a,b) datetime(6) YES NULL select str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S.%f") as f1, str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S") as f2, str_to_date("2003-01-02", "%Y-%m-%d") as f3, str_to_date("02 10:11:12", "%d %H:%i:%S.%f") as f4, str_to_date("02 10:11:12", "%d %H:%i:%S") as f5, str_to_date("02 10", "%d %f") as f6; f1 f2 f3 f4 f5 f6 2003-01-02 10:11:12.001200 2003-01-02 10:11:12 2003-01-02 58:11:12.000000 58:11:12 48:00:00.100000 Warnings: Warning 1292 Truncated incorrect datetime value: '2003-01-02 10:11:12.0012' drop table t1, t2; select str_to_date("2003-01-02 10:11:12.0012ABCD", "%Y-%m-%d %H:%i:%S.%f") as f1, addtime("-01:01:01.01 GGG", "-23:59:59.1") as f2, microsecond("1997-12-31 23:59:59.01XXXX") as f3; f1 f2 f3 2003-01-02 10:11:12.001200 -25:01:00.110000 10000 Warnings: Warning 1292 Truncated incorrect datetime value: '2003-01-02 10:11:12.0012ABCD' Warning 1292 Truncated incorrect time value: '-01:01:01.01 GGG' Warning 1292 Truncated incorrect time value: '1997-12-31 23:59:59.01XXXX' select str_to_date("2003-04-05 g", "%Y-%m-%d") as f1, str_to_date("2003-04-05 10:11:12.101010234567", "%Y-%m-%d %H:%i:%S.%f") as f2; f1 f2 2003-04-05 2003-04-05 10:11:12.101010 Warnings: Warning 1292 Truncated incorrect date value: '2003-04-05 g' Warning 1292 Truncated incorrect datetime value: '2003-04-05 10:11:12.101010234567' SET sql_mode = default; set names latin1; select date_format('2004-01-01','%W (%a), %e %M (%b) %Y'); date_format('2004-01-01','%W (%a), %e %M (%b) %Y') Thursday (Thu), 1 January (Jan) 2004 set lc_time_names=ru_RU; set names koi8r; select date_format('2004-01-01','%W (%a), %e %M (%b) %Y'); date_format('2004-01-01','%W (%a), %e %M (%b) %Y') þÅÔ×ÅÒÇ (þÔ×), 1 ñÎ×ÁÒÑ (ñÎ×) 2004 set lc_time_names=de_DE; set names latin1; select date_format('2004-01-01','%W (%a), %e %M (%b) %Y'); date_format('2004-01-01','%W (%a), %e %M (%b) %Y') Donnerstag (Do), 1 Januar (Jan) 2004 set names latin1; set lc_time_names=en_US; create table t1 (f1 datetime); insert into t1 (f1) values ("2005-01-01"); insert into t1 (f1) values ("2005-02-01"); select date_format(f1, "%m") as d1, date_format(f1, "%M") as d2 from t1 order by date_format(f1, "%M"); d1 d2 02 February 01 January drop table t1; select str_to_date( 1, NULL ); str_to_date( 1, NULL ) NULL Warnings: Warning 1411 Incorrect datetime value: '1' for function str_to_date select str_to_date( NULL, 1 ); str_to_date( NULL, 1 ) NULL select str_to_date( 1, IF(1=1,NULL,NULL) ); str_to_date( 1, IF(1=1,NULL,NULL) ) NULL Warnings: Warning 1411 Incorrect datetime value: '1' for function str_to_date SELECT TIME_FORMAT("24:00:00", '%r'); TIME_FORMAT("24:00:00", '%r') 12:00:00 AM SELECT TIME_FORMAT("00:00:00", '%r'); TIME_FORMAT("00:00:00", '%r') 12:00:00 AM SELECT TIME_FORMAT("12:00:00", '%r'); TIME_FORMAT("12:00:00", '%r') 12:00:00 PM SELECT TIME_FORMAT("15:00:00", '%r'); TIME_FORMAT("15:00:00", '%r') 03:00:00 PM SELECT TIME_FORMAT("01:00:00", '%r'); TIME_FORMAT("01:00:00", '%r') 01:00:00 AM SELECT TIME_FORMAT("25:00:00", '%r'); TIME_FORMAT("25:00:00", '%r') 01:00:00 AM SELECT TIME_FORMAT("00:00:00", '%l %p'); TIME_FORMAT("00:00:00", '%l %p') 12 AM SELECT TIME_FORMAT("01:00:00", '%l %p'); TIME_FORMAT("01:00:00", '%l %p') 1 AM SELECT TIME_FORMAT("12:00:00", '%l %p'); TIME_FORMAT("12:00:00", '%l %p') 12 PM SELECT TIME_FORMAT("23:00:00", '%l %p'); TIME_FORMAT("23:00:00", '%l %p') 11 PM SELECT TIME_FORMAT("24:00:00", '%l %p'); TIME_FORMAT("24:00:00", '%l %p') 12 AM SELECT TIME_FORMAT("25:00:00", '%l %p'); TIME_FORMAT("25:00:00", '%l %p') 1 AM SELECT DATE_FORMAT('%Y-%m-%d %H:%i:%s', 1151414896); DATE_FORMAT('%Y-%m-%d %H:%i:%s', 1151414896) NULL Warnings: Warning 1292 Incorrect datetime value: '%Y-%m-%d %H:%i:%s' select str_to_date('04 /30/2004', '%m /%d/%Y'); str_to_date('04 /30/2004', '%m /%d/%Y') 2004-04-30 select str_to_date('04/30 /2004', '%m /%d /%Y'); str_to_date('04/30 /2004', '%m /%d /%Y') 2004-04-30 select str_to_date('04/30/2004 ', '%m/%d/%Y '); str_to_date('04/30/2004 ', '%m/%d/%Y ') 2004-04-30 "End of 4.1 tests" SELECT DATE_FORMAT("0000-01-01",'%W %d %M %Y') as valid_date; valid_date Sunday 01 January 0000 SELECT DATE_FORMAT("0000-02-28",'%W %d %M %Y') as valid_date; valid_date Tuesday 28 February 0000 SELECT DATE_FORMAT("2009-01-01",'%W %d %M %Y') as valid_date; valid_date Thursday 01 January 2009 "End of 5.0 tests" # # Start of 5.1 tests # # # Bug#58005 utf8 + get_format causes failed assertion: !str || str != Ptr' # SET NAMES utf8; SELECT LEAST('%', GET_FORMAT(datetime, 'eur'), CAST(GET_FORMAT(datetime, 'eur') AS CHAR(65535))); LEAST('%', GET_FORMAT(datetime, 'eur'), CAST(GET_FORMAT(datetime, 'eur') AS CHAR(65535))) % SET NAMES latin1; # # End of 5.1 tests # # # Start of 5.6 tests # # # WL#946 Fractional seconds precision # Testing Item_func_date_format with NULL argument. # SELECT CAST(TIME_FORMAT(NULL, '%s') AS CHAR); CAST(TIME_FORMAT(NULL, '%s') AS CHAR) NULL SELECT CAST(TIME_FORMAT(NULL, '%s') AS SIGNED); CAST(TIME_FORMAT(NULL, '%s') AS SIGNED) NULL SELECT CAST(TIME_FORMAT(NULL, '%s') AS DECIMAL(23,6)); CAST(TIME_FORMAT(NULL, '%s') AS DECIMAL(23,6)) NULL SELECT CAST(TIME_FORMAT(NULL, '%s') AS TIME); CAST(TIME_FORMAT(NULL, '%s') AS TIME) NULL SELECT CAST(TIME_FORMAT(NULL, '%s') AS DATE); CAST(TIME_FORMAT(NULL, '%s') AS DATE) NULL SELECT CAST(TIME_FORMAT(NULL, '%s') AS DATETIME); CAST(TIME_FORMAT(NULL, '%s') AS DATETIME) NULL SELECT TIME_FORMAT(NULL, '%s')+0e0; TIME_FORMAT(NULL, '%s')+0e0 NULL # # End of 5.6 tests # # # Bug#19047644 EXTRACT_DATE_TIME MISBEHAVES WITH # UNINITIALISED VALUE ON GARBAGE INPUTS # do str_to_date(1, "%#"); Warnings: Warning 1411 Incorrect datetime value: '1' for function str_to_date # # Bug#19047488 MAKE_DATE_TIME WITH TOO BIG STRING ARGUMENT, # INVALID MEMORY READS # do timestamp(date_format('2011-11-11', right("12345" + 1, 3))); Warnings: Warning 1292 Incorrect datetime value: '346' # # Bug #25949639: DATE FORMAT 'YYYYMMDD' ISN'T RECOGNIZED IN LEFT JOIN # CREATE TABLE t1 (a varchar(10), PRIMARY KEY (a)); CREATE TABLE t2 (a varchar(10), b date, PRIMARY KEY(a,b)); CREATE TABLE t3 (a varchar(10), b TIME, PRIMARY KEY(a,b)); INSERT INTO t1 VALUES ('test1'); INSERT INTO t2 VALUES ('test1','2016-12-13'),('test1','2016-12-14'),('test1','2016-12-15'); INSERT INTO t3 VALUES ('test1','11:13:14'), ('test1','12:13:14'), ('test1','10:13:14'); EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON t2.a = 'test1' AND t2.b = '20161213' WHERE t1.a = 'test1'; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL const PRIMARY PRIMARY 12 const 1 100.00 Using index 1 SIMPLE t2 NULL const PRIMARY PRIMARY 15 const,const 1 100.00 Using index Warnings: Note 1003 /* select#1 */ select 'test1' AS `a`,'test1' AS `a`,'2016-12-13' AS `b` from `test`.`t1` left join `test`.`t2` on((multiple equal('test1', 'test1') and multiple equal('20161213', '2016-12-13'))) where 1 EXPLAIN SELECT * FROM t1 LEFT JOIN t2 IGNORE INDEX(PRIMARY) ON t2.a = 'test1' AND t2.b = '20161213' WHERE t1.a = 'test1'; id select_type table partitions type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 NULL const PRIMARY PRIMARY 12 const 1 100.00 Using index 1 SIMPLE t2 NULL ALL NULL NULL NULL NULL 3 100.00 Using where Warnings: Note 1003 /* select#1 */ select 'test1' AS `a`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t1` left join `test`.`t2` IGNORE INDEX (PRIMARY) on(((`test`.`t2`.`b` = '20161213') and (`test`.`t2`.`a` = 'test1'))) where 1 SELECT * FROM t1 LEFT JOIN t2 ON t2.a = 'test1' AND t2.b = '20161213' WHERE t1.a = 'test1'; a a b test1 test1 2016-12-13 SELECT * FROM t1 LEFT JOIN t2 IGNORE INDEX(PRIMARY) ON t2.a = 'test1' AND t2.b = '20161213' WHERE t1.a = 'test1'; a a b test1 test1 2016-12-13 SELECT b, b = '20161213', CASE b WHEN '20161213' then 'found' ELSE 'not found' END FROM t2; b b = '20161213' CASE b WHEN '20161213' then 'found' ELSE 'not found' END 2016-12-13 1 found 2016-12-14 0 not found 2016-12-15 0 not found SELECT b, b IN ('20161213'), b in ('20161213', 0) FROM t2; b b IN ('20161213') b in ('20161213', 0) 2016-12-13 1 1 2016-12-14 0 0 2016-12-15 0 0 SELECT b, b = '121314', CASE b WHEN '121314' then 'found' ELSE 'not found' END FROM t3; b b = '121314' CASE b WHEN '121314' then 'found' ELSE 'not found' END 10:13:14 0 not found 11:13:14 0 not found 12:13:14 1 found SELECT b, b in ('121314'), b in ('121314', 0) FROM t3; b b in ('121314') b in ('121314', 0) 10:13:14 0 0 11:13:14 0 0 12:13:14 1 1 DROP TABLE t1, t2, t3;