有人可以解释 difference between the %h
and %I
吗?两者都被描述为“Hour (01..12)”,秒 %s
和 %S
相同?这背后有什么“奇怪”的功能吗?重复的原因是什么?
最佳答案
%h 和 %I,以及 %s 和 %S 是相同的。
在代码中它看起来像这样:
case 'h':
case 'I':
hours_i= (l_time->hour%24 + 11)%12+1;
length= (uint) (int10_to_str(hours_i, intbuff, 10) - intbuff);
str->append_with_prefill(intbuff, length, 2, '0');
break;
case 'S':
case 's':
sprintf(intbuff,"%02d",l_time.second);
str->append(intbuff);
break;
即使早在 2003 年 6 月 20 日发布的版本 3.23.57(我能找到的最旧的源文件)中,它们也是相同的。
关于MySQL DATE_FORMAT 重复说明符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23048587/