Loading mysql-test/r/date_formats.result +36 −0 Original line number Diff line number Diff line Loading @@ -473,3 +473,39 @@ NULL select str_to_date( 1, IF(1=1,NULL,NULL) ); str_to_date( 1, IF(1=1,NULL,NULL) ) NULL 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 mysql-test/t/date_formats.test +22 −0 Original line number Diff line number Diff line Loading @@ -276,3 +276,25 @@ select str_to_date( 1, NULL ); select str_to_date( NULL, 1 ); select str_to_date( 1, IF(1=1,NULL,NULL) ); # End of 4.1 tests # # Bug#11326 # SELECT TIME_FORMAT("24:00:00", '%r'); SELECT TIME_FORMAT("00:00:00", '%r'); SELECT TIME_FORMAT("12:00:00", '%r'); SELECT TIME_FORMAT("15:00:00", '%r'); SELECT TIME_FORMAT("01:00:00", '%r'); SELECT TIME_FORMAT("25:00:00", '%r'); # # Bug#11324 # SELECT TIME_FORMAT("00:00:00", '%l %p'); SELECT TIME_FORMAT("01:00:00", '%l %p'); SELECT TIME_FORMAT("12:00:00", '%l %p'); SELECT TIME_FORMAT("23:00:00", '%l %p'); SELECT TIME_FORMAT("24:00:00", '%l %p'); SELECT TIME_FORMAT("25:00:00", '%l %p'); sql/item_timefunc.cc +3 −2 Original line number Diff line number Diff line Loading @@ -609,7 +609,7 @@ bool make_date_time(DATE_TIME_FORMAT *format, TIME *l_time, break; case 'l': days_i= l_time->hour/24; hours_i= (l_time->hour%24 + 11)%12+1 + 24*days_i; hours_i= (l_time->hour%24 + 11)%12+1; length= int10_to_str(hours_i, intbuff, 10) - intbuff; str->append_with_prefill(intbuff, length, 1, '0'); break; Loading @@ -620,7 +620,8 @@ bool make_date_time(DATE_TIME_FORMAT *format, TIME *l_time, case 'r': length= my_sprintf(intbuff, (intbuff, (l_time->hour < 12) ? "%02d:%02d:%02d AM" : "%02d:%02d:%02d PM", ((l_time->hour % 24) < 12) ? "%02d:%02d:%02d AM" : "%02d:%02d:%02d PM", (l_time->hour+11)%12+1, l_time->minute, l_time->second)); Loading Loading
mysql-test/r/date_formats.result +36 −0 Original line number Diff line number Diff line Loading @@ -473,3 +473,39 @@ NULL select str_to_date( 1, IF(1=1,NULL,NULL) ); str_to_date( 1, IF(1=1,NULL,NULL) ) NULL 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
mysql-test/t/date_formats.test +22 −0 Original line number Diff line number Diff line Loading @@ -276,3 +276,25 @@ select str_to_date( 1, NULL ); select str_to_date( NULL, 1 ); select str_to_date( 1, IF(1=1,NULL,NULL) ); # End of 4.1 tests # # Bug#11326 # SELECT TIME_FORMAT("24:00:00", '%r'); SELECT TIME_FORMAT("00:00:00", '%r'); SELECT TIME_FORMAT("12:00:00", '%r'); SELECT TIME_FORMAT("15:00:00", '%r'); SELECT TIME_FORMAT("01:00:00", '%r'); SELECT TIME_FORMAT("25:00:00", '%r'); # # Bug#11324 # SELECT TIME_FORMAT("00:00:00", '%l %p'); SELECT TIME_FORMAT("01:00:00", '%l %p'); SELECT TIME_FORMAT("12:00:00", '%l %p'); SELECT TIME_FORMAT("23:00:00", '%l %p'); SELECT TIME_FORMAT("24:00:00", '%l %p'); SELECT TIME_FORMAT("25:00:00", '%l %p');
sql/item_timefunc.cc +3 −2 Original line number Diff line number Diff line Loading @@ -609,7 +609,7 @@ bool make_date_time(DATE_TIME_FORMAT *format, TIME *l_time, break; case 'l': days_i= l_time->hour/24; hours_i= (l_time->hour%24 + 11)%12+1 + 24*days_i; hours_i= (l_time->hour%24 + 11)%12+1; length= int10_to_str(hours_i, intbuff, 10) - intbuff; str->append_with_prefill(intbuff, length, 1, '0'); break; Loading @@ -620,7 +620,8 @@ bool make_date_time(DATE_TIME_FORMAT *format, TIME *l_time, case 'r': length= my_sprintf(intbuff, (intbuff, (l_time->hour < 12) ? "%02d:%02d:%02d AM" : "%02d:%02d:%02d PM", ((l_time->hour % 24) < 12) ? "%02d:%02d:%02d AM" : "%02d:%02d:%02d PM", (l_time->hour+11)%12+1, l_time->minute, l_time->second)); Loading