JFIFC   %# , #&')*)-0-(0%()(C   (((((((((((((((((((((((((((((((((((((((((((((((((((" ,.Fh Ch@ 10D``DBB h4 @dX bD iD ІI$TBB'$"`I)Eb`(m9@0hb&!1114  b` Dh "lTH)TAiN  A" hf%n£!aY4hcC"5J2#Tզ@ #(a`QI+JHB8h@!!!hSMNhC4$11SB!`&2Dc(p*`"XE b!IJ&0C41 b `hL0JHLi1L -XX`ݚb% )*Cp& ! $40)!b䜢hC@D 6JJቨ4B!`b `0@ b`&ё^IÆ LO7dX h@)A "I`6H !L'@ DQ B!Bj4  L@ @hb&%$ D LQ~7ҜtZ&pӘ b `&)F؆` 7DBB&qI:LVF2B1 5iL4$ mj4 @ @ b`0b iS` 14V1l˦I7 @` L&ȒB[lC!FlIY +@!"!%$  HX J00CبDE18! L r2ϳ>Tس:=8Ӓb  & !`) "0$EMSIAL6D$B`&BBX&1C CT4h! @@4 0Yf |,tCE\T}nn` b$1AN&$ &IS`0118` 4  9_^8B14yꞿ3wlK 7 &@ 0@ @ `Ȓ b( +$2DR:]Z3cqcAȴNb11@#@18b`!upyt|z8lZ+]}3:zKcwA9SUU5AJ   2LUp*HR+EUEvF2qIW8)-JYDUQ  b `16!B& n$I9y~yntpX"QE,m[&C44 b ``@  BQ0&:Qud J7*"S-5(J7U@`  b1n.2/| ZrJY]3~ڕyצ1Ͳʬ3}[9NΨWVun}Tc~g6g=Mq6}GKsx b``L!nu"6ڬQ}_4 4IMtSҫ(610 b`],k4r:\_GOn骻q[,C*ͳԖzhUݐ9w L01 L& hQm(4d]nNiF wfG&ܱx*uθIbBʤSnܢaFj(@`8箄Ꝿ&IltgxgɻM%Mږ{z)]vSqUټ& b`0CT 8&`% '** -L/(4$cךRjp.h @1b!  0n7ʮB Kt}UF˞tr\7Jϖ~%Ҹ[!hUqp!&7Č1] *O4צN.Ǽt0!J%S101CC&1 Lh b bey ?fW7Ƨ,ʒ2t}֚m[PzvvF@ʀ  hb @%(#!!bBâM4BF=x Pցdd'YS̷ͬ 118h`bSv\>}Ux/ޝ7UI5h,pܞ^[U9=&v8@I!(XjaS,S3]av(KWP4j` -#ݒ7Jն&W"1t!^0 ! &X2y=yomNz.zVwfKݚж26ϗMa5L0C]q$8EQTl;yj]\U:znT62U f%uLb!  o7Q/{jyϣCJgS[oޮOO>_W6O~oC,2T`44\3zc(B A\cuݛU4컗AK2B6vǷ\n9WXQ,y:Bz` `4 @C&r_'RdxyNu <SQUM+#S⎬7v㦩K]Jy:KX5b`!!)*d 1RYn+έӚKUJX7U3˟EA}lŪe6@@  b b4x2\>|z^WvB{3^S׺Np^kέ㜅VզhW6rw{xz=)@h+ !daYZC.~mQniڲ7|0Qgj_J}l;8Po)Ά>4 @dtsNqОgͷ>ǻ \T`ыfNf7(pu9|]͙c{#(h1 @ @}6yn;*SHI*Bj"9̻&{y]4գ7>Wf~םZ0niMRsTH/NL` @ `/9ywVY-tkZJ~sGCz|z[cV-KX+csSTWu6kK2"2QiM b6y֝^]k׍ʻK=U**MVK2R.ZE9}v6{i1m]jZҌRUJ)De%dR*K~eS>-у$eͮsuκh%lGNl8#~:n5Yߎqf?L'@ @ojȲ*d.ܴn3q$ngլNKbS%{ߓ\qM(zOk=R͕zX_~=hE'J]\YA&]ƣLk4>5tdUFm8ʋ+7T+K-%3oU]kRKV=cNjkCiGY)s󝧂뫟CX=na\^ RgOA5F|-P_ew9jWM;暜Q}rUh;p_>|+ng<%̙uӧ>phss.SE67FH[W+8sc<=3Z_FJ^Mz('.Rǖ=<}<=hr7Z6v"pV-:jS٩}vf2UeYN\K JN*|y.!~O{ k#;1rt݃:>8sVL]*gs*-dY*Wdnb b&@?=1Ms*|ZW3VY.+ӋcSZg EWfgvZNDeSBWʋ$ӟLu?CԎvܚ/\hُR]zu3&UWZRvj^l[֢3u[ةZ2=Ox]wԥΛbyu͝p뚫3UsaVX;I>7~xgpa;_կM5yĔ1dD׳<K}*D&P&@18{N]n)E=Mg_811YGE) "J cMQ]e3>_Q=:f]IzTQS US-izΛ$Iv3Q]]JM$[VT *N5-eBHJO<侴euRVzseOv--m(JƬi`jKڹW+n}1Z^.sLyq9}4/sw@ZH!]M&y،l-nq沯Ets'mi9E: Q"Z 5ֽC^mkV[ʝ>]3n2,#\B `T(U6-N,gF~&[bB^w*<=UÎ+mBePW:IPڪ7䫲anm J0 Pg=iQpڎz\~-kRqXl9]O.w}Ku&kSuHS $BRee:̢r fnYmSE9Hr3PQuVE 6AM "vty|yU.Y!nm4kqB.N4UdF鶫,qLں[e ⒅kYknpwBϓU>^Ѳ+214E8,:"=YվٛG\N{UǭJ1؆( -Rd [ۏͣ1f^6%fF$sB̠YUӲs]0 &\Z\_dL)f{!f7}6_w5SYŵUUYe]=73uԌybv#3]ё+fXx?ί'jĪZ'KZCOmVg ٚ5![omjbїxue ؒuU̔g5ziW:7':]Uˎ:ur;ês솅Dq#$BGVQ}cWQd.ŋZ5yrhgg^1ʎxGo|u?=%[V63fH41ӿFBwwnlӯǵ*vp$FJdi::qӏ^|{sF5skb+b;+ɳǽy9mIAJ1ɚz9j]<+htU!lNZ`tafcʍ4⁳G/LJ|TZ5%TͲBLSd-.ط%ؓ5ˡæRdĉV bc@$::v֋oV\fwtr~.V:2.8n.YX͎hk1.Jvտ}ڸm볧-%\s^Lݾ}fƥ<;9 o-^,/B9T,ųXҬ o,4 hxiӛfR-zlFfR&oSG/G=fl"#o %$4W٫#1e;Y(62+W4:lt#:;1[G3YfzseN8dًI8Oy@ԉ``&!#8Hs3_OFRثRulvth;Ì:dl @TqVR* ˣnsuX4%y:f2h]KƣVi%:f'w?LkU?,iÑIg]B%6aUiUg&>zuƧM_5^^Z役:stNg\Y+6ٞEֹgZγV5vkD-d=y55(&: F%`Ȏ-@ 9}l|dNPGDWmp%܍=mbZFlӺ23jqъuپY|| FxiP+$'*싶M+oEșPBf x8O;)3:!319t5!K kϥ:o 鞖3;=QY٣ܘ0JCM`I5f|֭sb)[b6xe8Ne!Bq2c8&(Nv񺭁TmdB6AI"^OOA(D#4o,i󶞼 ^ϯɽEz{κչ  J2# J0lewn~̚!)N(џLbU9:x}qҲ6m~/LmҘ>F蛖޿q]V FbRF|qV]ب5ltO՜&e\u5N\&\تP ʕ^dKN}!F'3ԌIT-!Ќ\%||&zcy].:yٿ,n㨍vL1I"5I4ЇJ+y_4t[Aݦ>f:i2\2eP۱kqED1g۟NxǫOMJ4uH\EūB ]I!["IHl>GW t0peEN]2_g:nm#7S{qR7.ŲAVL,qhJ A$n,iօ7>]0g3MiKkK^#PJ8@LjVD,kU yz̪|NKυI@.v}5wy}~cLIWw!o )E(JT1RjґW{!#4}g(CD%bJ+WKO+ &3doFtr걤Zabb!ͫ7%ѯךU-Ăj*ÿУTҷ=|<=X[q6*iC"(d'"$- yyTnh-|z]fSn'dZ1Ky} />u_3\8 Nz8~GLP;iHvL@`SM"1`8x`q/mAI}E9qOןơ^r2U`JP,cBkW!$I)d+bܩir+уXJ-)~tc>&ĂVB-K_?z$. h0R)F@9"ʑe>\z\;5P:M9u9ɮsaOz{qҬsq6ȦN@gm ;\$8' #R#%M_28ІU[j,#"˟P=++| g!4n^䪶 i5P$ϮYCc`Wr^010#Њr3$H ۀ29# ?ӯ ,q=ی;G0O,, 4A@83s3o !<5-׼ 1?430D$a ;8cO4 ̲9G&o4 1ͫ?8<3w>9? 6 8E Ǡ~ߙs,< ,/1\O8<:Հn:,ӽDb.4'8+Jr<<9]+rˑ0 <8"CP/ < s c?2<O;x7}000 Á(N5M0ϯFo<Q!w0 # L4Ҏ +1`=LѨAuM 8 @h  Ϊg0[8d_o|n00 8 whhtS/-ŸsC8 0 07o8$ڍ"ʘq{ T2ѱa0sFsrљu[ ?Nz2"8fɒ{Oc1+3vzM|"D:I}KYaLω` 0 G+(+f?)ŖR+}0q@{1'7#:w4VO0 $βէFS4LBer JeN*/ =A1=$l\Ӯ@j.檄kz%eqe^PU콹4x=3` X?Rʺn.Z׍x)y"ř?21l6oW5O䐘eނ͠@{B2y^%kZ*ogxBVW`h9mh]zXX,нP,ۍ44&}=fJ4E6~JC 06}+n'Ui1᠗$ClLE՝)[T@Ub̶&R3[gXPB =J(B41|xs}Px蒲@[5"J۲syo#$;X#L z\,;tEfwҸ,=ěeӽ'O (7=u~*"x(Q$I0Nm5ͬz hEb0?%0+l2ͻXl RH#rA/TmXb̪?>޻|P:}f}Sb*QnW4{5\@9I{;MWjMxs1;1dY~>r[WRlW2 UսKzrIv6G'1gglOrm"(zLfo`Tx0fbhmNW= [c3 $'4jy32`$^vԩWW|[|{TFg4CPaڝ {X6]0[Ö4W`'LqϊJ.,3U[1[v Q!!FuZe$ eQw?ieg]TL-N @X-nqBٸGV'd H- 47O3y=Q ,swwF%"wXMhO{5! p:;K(o;1O6`.9I~hŶͱ]Yqưpmaƾk^'y; S!",`8t侑5qGZw)Ayw/<^?Oz1tӪ($S]n91#T2yJφ |R|3sJ(]U+G{a&Pd>i6ClR|2Ռ7Cgخurڛgs.3uo=p,!5bh-?KM)UzUk81ְ` ZIy6 qJN-ե5ymχ7cl,iX .CR oz⯫y/R褻kPp20%˄c`6HapC[q7C(Dz0DG ϴu{m[˯Ac" i;?vGms$יg,h?(sc}^?Z׼s8&IGhDm?Kosy[r)| Cq{د}4} /{ePE4]s։* -?ۉ붻]:+m'Wum}njj(l*J }mKVT~ 5o|YYLPK,"jC*6i<}}mg*ޏ<2cs|㐓bI/v}Hvw gM$YQm<}}}}ڡ, 5`na%mv}]}UhQۼu,0<2}5uSU[-3lMUQ }d[a-9qLԻƥŻIu<<}g}mD#͓[}3qԗq[\^|+ (ŵP }qqe5=߷ (Bt597=#a*8^ȁ 2y`Åqi}<887w]Գ=xQD\}Dr)XI 1ϻ( cK<u6YqJ|4tu<o0[$-| 4&'=M}R&ʨLs.Uij M\_҂B!wh,o3g]o4Q7u ?o.\o(iˣ&CpLTz7ʙqoyv1 ԄajAĕ]ȘYB1/&aжiv1$J]I1ڂ#y ہ+-AiVmmRYY̺}S*_އ #׭qrBv YR̿XB=kqYH8Dvq%=j1 PUjץ0,#>!Tף,8Ns|i,:$BWpہ0NNʼTrJkY?4@K_oYa @1沩(SgaA4Q6HwF!J`7pVhָe"֬jO>$,JdLTf9BV;(L\ h7 6: /[)+R1.?`2UM|r*Mѫ/-?H@l!M*"% d͖<HbģHo몯H^nTG[-9#%9I"9MԾtd%yhGN Z`˿LJܘ1 3Zޥ0ږ[z hfɎ$X览N7a./m ՖG]8_:)]`9xw(F.&n$6NJ?[^F GYdn΄΋9>z nf`~@lֽL&".qj'1q8hWݎ's@;B ;fdBy|q=S$`RD>]F ig ^%"MHt4SIK+fe Tnf/޳tdy%[1!Jdx'@^PMoxMS{TPfB|^*}'sUC-JA!AFx(i؟.C` \nx<졆|nxYPd(n`/fL#2t>#DũE^?кq OmNkoȚ6Y?7*&-BA0QRj`鋘LϡL61O{˗&T܊TΛ7 q5tfԯ09mKxt\6j0"4x/\ҙ UL}%jXƄ QYgк87d]G#aPJHrCN\xKg 3]Jy1`\` Ә![MͅX\ΖABn %̃rd@fL*tf]>]x*G~|ˀ`1|>;;_`GEqIؔ嚜 o3TrUsqǣĭ`FC1No}~`?52%f o5P  B楩I<$̙G.4v|ͬa,U+)7v1yP&_6WcBa1g$љWx5G!TxHRbL>}UȈ26KNV_OAk-eT~0 ""3›O1Pg(>L<^F,hF㘘ټËlauVGW5$Švչ6b.3N?/4Ow!~& <~0"1rvb Qf0U5Ax=Fo3S1z9f|1/&E(q3dq1&F #(Ua<DM@Af.gI똏fnD$;2?05(B A) >0Kp|~ED6EFZFv癩>Pڥ0 ӛf. Tk3mGVc0Qf;,ƥT`B"ߖ7*s iN*3("U FbqBbZ - ma_\X5 3.(drb;R`@58q@T&bfj\|{Tӹ$4AهB9itbĪہ̮D{ud\%jc5Ɍw,Le"m̠\xꙮkC ʔLD鷕x*D1(~?P& f&3Y1[c`J LzARspa\|t(TWJlKT"z 3 +ɨ80&]>Mg;0Ll&Ll61Z { MRSn(-=:fP& 8]!ryI'U,ynX\ n?sB9$̈́ u6`6/Y3Sd%1)w< 54QO8nYSMd&@k&<[DkcQ>&\ [%N:VA g08AyG淟R4qډswD:AOyDm<*\Mg3zA0c"țDɄf. ,jH#U6;U}1M 83y|kcBk889?Lچpd4L\W 2g&SLue~2-2!¦"Ӗ]:)&m;4bA?0k8d?)}AkV,&E(hڅ۸2S5Aq0F"UbYө䉗JF:6ry.6CMw> b&'5M{P|]T}8_3P,X Bc{A(7g9кӅr(55HDRiS~I:M_Ǐ  ZÕZ-k54ZV3Mg2/̹ڢiYԊD͐c]#6чu>Lv"pAFaJh]Q,MFfܢ&)>@CG(X%ߒhF(m.U?i.q.مw2c('kXIcbZkXD&#lGu g\)KlP#B`P[y}sR(UpAn%MW>fqԳM/|5FOm?ٷbx*ٚ-X9BP16ճ0ԲPP^cuyLF*e Ù­ -Ar8ybf&l$>!WQHQ.TIL ,?y"zmճ65Vq|L_"Sgϸ 72Ϸ#5Rܾb{["R>#9&e0Nf|6s5 ]?3:`"Γm@'gfLyybXq #=7VsE2%ĠG,y,n~"T~ _eXt^Q70ٝA7%ÑAf%3Vr(ij7@{_a_}od橶bdgGGɈlw˜' u.fYRh96i[9!>2p@*1&ELf`B~TM3F᱂\N`J AAH |e0sPJ|1>'L1L t nLQ cqsLUIQu4^a )u; о`vNbJP!1&Œ,.Rݳe(Gb}ޠ06mŒ`Q5ܙ#[`hP 6 cu 36`־& :3>SmxuxNMFdԐ9$G 4;++!>L(bdGRG pgʟ)3cܻ ~e3Hdiѷ)"T??ŋU"aENbw .SP@@_&l*1<8arcj/POܰ!48v ˊ|w3PrՄmCju594"~Q:LA[&-ϊc:f#YQ)="T{ajW><>D8[ǃz ExF6IOb"/"e֜965 &x&c̍h ~X9|K`01gm; 0md<Ӏ*3 >%]%Ӷ>4\AC85LY|@(vu{]:d5c::VzjzF]g.1dM3]bQn* "'6Vӯ28 e? Lu3IcaZ|T؉fm5:gyd9Rq:nǗ0:6ZvsB`G˘Lh8Oèf^Jk깠kMԸ~"nCop&. mS̹p{3b\ML;1|op܍l~_~&7<+\4g a+2 k_ߙ[ S7"ĚU@ѬGP&=7]=(!>cdːa,:~\r?i>ij28̵=<vm<)pc `1CهX õ{0t91 _`'cQf(\ehP" #YA>Q>yzS7Jy 1X Bp8s,v|G";_1+ks7#LZpڐ ?81|+fB\OB8<aMf*ȃϻo~5yֻ$ïb91LA1{xU5") E`+byg<\_lZ3aE c`;O0f,KNDd0XHN3tW3 OlHCaoUܒ&"Pه[2 FZW0'KWOt/ A δ 㹇E5L,JJ6DmZcdtRf w'1h_bc|ith\h/{XWfg`r#v=s<\ĻlkRkaٚţO:[鿿ogʡ<|h1TqNau3.,Y`c! Di3qۙaVh~ˆE<4бWf A{g2rL>8ljocMCAMO ';Q|Tv8&h5nqW IUdO\9P6y<fG&OT|8А&-22fp\tl~4zllCq] L9wB tiX\Fܠo~h?y/~AP*~ OãR(q` SfKN gfE]4hɈ6c Bkܮ3p=; DBAg0? =ˁS|Kt2ci4F3gJpee˪*~qwՐۏa4b1}S55 Cs EbE˸Q#4yCv{L^%XЈN6 ǭª&H*qsWv+gFuAƢy)MfhB2@PC '%}k"Lϑ9"z]BUΝ5@9&5';\>%H;u tۄ8V`zo3{@>'_l6dG+f:;A]BM;@D87"u@r2}t[ ¥4ll&>r!\O6&}n0!=`8'pftؾ=k1Yf(|uOrZn4(cuQɞ /L - T؊ۅ<ZEb*~&vߐ%+Fa*YSFM7/n&d5&i\>0@c"h#h n` `8 >=Ȍ(u`RǑ46`4{&R(H``7 abo"`ݻ5,('7j =5f\ '``g1|L˜"Vi[3HbT1g>`|č米?5_r~IjY 2p=kX0L4jLP-!Pr/gQm37}魻N}Ri`C4ŋ6,]R=ӷL#)(eF'%i&0L| 2UOULjliIP|b:}Bd_]vjvSCWe5$Q0>6!1A "0Q2@a#PqBR$%3?l/;?(g=T3iMm#D =>J~¿h,%_\rB>Q_qSMi3*:t(h{TR|aYR[oϧESFZ5`ܿ07a_8")&])5cbzԯF7KGz(JHP(F3X>?T6ʄJJޞJ dͰp&a)x]R~7NɘY18hHRĝL|2~#갢Sn<ً1ѓr]ٴq'>[\LoQ`צeBTf[ٌxmcgr`_ؾ!ݐ660-EQ  Ɂg@SC^&\z'Q8B= a?)?P:U?N@*>4}BrgX:;\N7jМ QK&ZNܯT6a6oa㸍練0d8E+`rVuhhhD3q=x멯oݙQfg<x?ӦÉV2?=`͟H$DXt`?TEeS'5g !{Aw~O2k'%8?6 1bmxls48>Hx55T[|G"0~{L`KPT4oU1c6|OF. >"De? FasQ^ʬrMne@3`d4tDDn8?2VC+VxHLeV748M* qU?M7& r g.Ѵ'o&\̀]` MqF*D,hA14l"\"@&T.f<r.2)&}0i#Qdƃ&nD3L@|@r"&#ɍs Eړ:cHfvd"G*fA\YB@S\X Fngt&,Yr*E!CDf mbiwd49Аc2uPr%&PCLlw\EP?1BSO(7#(☎B V0h@0SQrfn!kv?uw5LT!E "+2%}eAv`@Wc͒30+26Tc>fn<RT(9ֱO+n&W˦?UDZJAdQ`ZBAq0e*`"㈊Ld0X36fR@, #aJ?a 00GQ B% jfe WώE7iF ӏ(2}1:&e3A:%E]DPT A(DF=YTUm%d EPy<@ k mF^ft *Gs\DmšmAK列N2?gI8.0#%0 Fb. .f(FqV&P:vhtCwb-& ˇ#Lώ&#E!Rp'Og( xXX%,[V`Y LX!65mG],|Y*> i )4wdDs\f44M5Al|J8 f 3ןfyeSl"3]1X̸O+s"saWqR)yTccLCP, ;qh 4}y!IɴEv{9T2EXٚlG&@&W,j 3ǽ@j&zG&bLTno'cƘ<OLx=?(ؙȵʴRZ/R<֝Mq, nTյ$Yk] e`.u'V-w!h cOc4Y61&Rǁ1)4bG ,Cs 3'B@+1bg[Q4‰'˽&, o'"T5=`UvOj?BrC 8C XP ɤ:kȌMԻ1&ogG[@@aQp34_B QP_ hVbb C:c-h.!A ω 81J[ل'&)(ۣ,'X)\A 8D=Bo]7[{1QCP3&#Ez/gܻc~]q`QRf,eT ͤL=5#MC:.1\PT-8w Gan|c"%Y0LMٛ&L rsSd8u+W/Rè@E\\٦զ}1zQ,b~;"k6)F:YWc2TLnjb6ۓ9.><~1,NEn '74o_(*lD+u wӜٕDƼ@G3(e&lQзd@l. ȪjÓlUٔHn!:l"fL9v5hIu ǍL-o7:7EK.crmը௙ u3c]XGȘS2}#XZ?dO)f!ɐAbfG8T3OfpiNrfX)4cN2"F4!ʕL֠]ZŇLɷ%~e3܄E؈a/D>zzc=5V>L[i'b 'C>R#I( eR@9修euaFt`ŊSN]#bqk 3 j75lU*n}jOMWfUT0nf"!%zːc&gڥJ*i؜BV n|@7:0}bf\7M@9@gPМ`i 4j&p1m5?Qfk!ְcd luR>L'м̄&*}?툊怇J 0MfM) NՎs;)rlT=" (?9ɅZul@;%R&}: ^yVԛ# g-@@PRLg94^C>`&\.G7gйUL1 *: QDsAjqDl2-4u7Eox`܌c˼/*'fd*9㱆 D ;da:K2gbeh4{FҡgL |v3 }P ?tz`Ț&&o"{preLB$5fl L6وAn &3za)ϑŴ(ϩɄMQ\ޣ 3>=v~n ԐVPTWLĹnt̛3W=ØuqyYؿp}:O?g'ŷY(vf ,gQ9AL^?1!+n$֢&*`հ3$Ծ &5)\\@:&0E!iS3y7/URA<~"1e0YFNioIB;?Lpl=1V1w0`Nd`$C#O-ϙp!vkZ˹.fn|NɁOBdԽ(݇_-l3i0FԢ7+fLe9*D h;Ob`F1<"ڑح(E`Owֻc(VUlY{slc5UGESowѹ oy0Q{v剷 lsI6 FƖ8cimJIΓ 7TQsQ9F $h1"U/]Ps2+7s73YO|U|ΠS vcB=Tǘ>aۧjN3(côRƣ){Z;_@\P#؜gK=2͸1-qs:"1+*~`Ρ r"6b&mη$j 6>aTPŚ#1`R FD֔My$fI`ʻC3. >aӱ*1%g'i1lJfxjPðvېnk_%8 Q)RY4SLoɧ>lhđ&*&"ϑWj 8f_Xv3#B:;116&@caS0?`1sR37-b!q7Fa+4cE;S&Z3t;rq34)jQAJ!}c]@>`E3w]ҳ/8pÌe\I›, "1!cjTfb[if_i~ߨ4=ndY(L5cGQ ̣!5l=S2w,π-Fk6&wľ͆,UCJgP9cswbPݍ&ǰq0o*`C ȕ cF+/@B˩5fU #62‰(h۩2b`m4xm1V/lZo}VjiT/n 05w2Ʃ7b`<> 5٠%z"wv.n,LYWjfJ3wBm(w@\D|)d=Yqs?=f} s}&W4&Ĵ Cj}34s\m 0 &, &Lm3 % LTʶ.<x>FTLP"u-8 x (@QJy̨ʂT7?1}?n (6u^#>eh@Nnf*I<)aaԛ{}֊c]f{ UGT;,ͦʠyӌr1#nZE标80a+`DT\˘O(ٔa7`N[#6H#[YIU>'͙(M:.e/ONfRk޿> aٿ`G?~!^a£SP)cPD"l& 6ȇ)1t&zn|0dAc#'Calumb 4 ֩L=fݸ2oy.2I$\@=%?.$γc.U' &6yhc4~DžYz<fc@X~è81]K n DRk Ž &QbƣP pэZ:ljX3ʕ?ݎѲ(G` (z(PԅB~`kS6xM,bmwQ_ 6rMp{CdСG՝K cmؓG'ӲTnTM4k#Q{1O\GeN(QbsDO{h:Kihc'\?3(PBgmA)g 9aTq%#8N0m^T\cXQ%…^(/au9羳:o=3 =n-~Q~މs>0f' dΟ?n:cW=vKCiREd]|E9=(faݹ[9d* 8۳ݣeJ0}BKtLdIPGcGTıa+6M/" e'af[:^ 03~z?7*TqG Px{e`Q+yh'*94omJ(1W/Ɠ^+LJӓNJy-_$^kS h&fn!fusB'j9pV!8 0(蹦*9U4Xgc{ZUVӧw=Wf8TXңe\we7D ;>@SZ;VjgqHjP9 z#"bȯpcv)(et+w4gQ ,{ Ži$5EX:m/\ntXG\Frv~,Ԩp5! cL%O*Lx yŦqdGh 7cnSz L mgZl0G\dSݼ.UiVm FVcNH9dעlUe^,.I&Q&] mѝL/賀A5aS4s|CQqpoIH;|e_ -!Rb}/2tu #r@Uy6Tܻ0Phu]Ļٹ_@lrLдt#T1OS76~uwliΧ[L}LLiM9!7_O? IuZuNv,/!P25䷴CrwhcVI *U5ϢDiYLtaUvp}:'{?]fmst' LzMVrMMʮ0uFS naW7Ԃe Fk;B>Ƕ5D7w2&dK~ُƂڴ,;2Z{CX S5Mh?-$JfID£&x,-q#DQO2tj@GI @!Sv.2JvY*d &V`~#=27Z,TrdBCdFW K Tz;x5qTæʙ`;*kHQ&\JyݳKBt fL :|zt^c;`3 +ɀ-V;t)>au?7Xw`GRwAWHSnNeII*pU)ai0i8i9ͧPѥfcXUV6zy4Hg]NJ<-=֪xbS3fYOC. Py֩+kYZylg 9j:D3d\އoipwa6@nbq#\A}#R5Bl p2U]& %QΓ~3TLG]BbIU MӒcl*T&t9c=eC'~:;6x5@M4 [BnդM0I>򫅨VOt525j=wS1 0b L{mkEUm O *c T̸AiD? N;Ӛ`s^ǀ檓N|sPL:6HI?Eޙ'sf2M}'TjhhwL)? 煨 J Nu'䎉 ԅB4NU|)Tm<8B0k{2`i &KCe~Mޚx!%OA!Wk|!;T$S%L;kiTxG ײ4AL&ТJ.#4hmGhZ$4LtUeˡK*r{:s^D\TwPnQ[t\5ee=UG7˞je0GC,T8|P}(lsjhvwdOWgUtr;\DM)eEOHM >Rxs|BM:M}6aFbD eQ1[߽?P 9ke6N|hyD:9jpj6?ڎ-Kz*sDKay %^цAoyK)4nj]ˮ78uXjz5"汲!QQI=75iͳu}Ձ;V*}!TKC8nys]0etPmaS`CT*Tvb:ױ9*g<L0ʧU|!&eaL'϶DM$g53ZLk)#-S'wDcwE{0G;Ii#6?CrnC +Ϟp$puC=2oY4t 4FC9/Q:~'ET\t?T󯺰u8{C3B+'^XdamZZM<:}imް׎D+rKanUi*e"ςZs2潤CsS]sNRζqFHh4asۍaxJG9 ̕"ks7u)ѽLOE>>.suU?&hTUy}T!@& ?%̣| K]yoU#p#ZUDdNl9!R hNNg0[[o&O@p/ݯC3ȦRf+9إM)džA:J7@ˌqOK y]^3cNDѠqkXX~Z*AW,&קk*qglamFtqJ-'B|m>hwk!6!S)yBcW NmUZUIˈ.Ϫj܌~vFG$Ba;fVm:k x]^GN 1t /Tۓ@h+¼rW2gOݗ.Jxl"y%MzE1[uy,s-p,MTo8xʯ k $1Y:ȉ&̨;ÃVߧi dˠ "9BOȧ訸; i]c-{p ԉZ°1gif2nv2ZCW5[Pup|i ԜRʨX}I4w@Mny'K):\全9O%KxA Fn_٪*&i {%.*È*m &gR$Le" .$8OTT\*H:~F_ 5BF1ͱNrk Und*.|sޓ=Ld*6x2 v@)I/S5=%_ACFTثZ.xÒכxfd']%J܈#Ul4:({.|uꦵ'j{a~0r9#U4!apAd@ȣ190&hM_Ē)UUmsM%d 3o8ɵ=k:T*qLwu]h]chʓK9:_ө41{y.n|-@Wgl(:\D4cm:d Ow<_T8biS{d.ڃ(!UߴUMo7LԨ}mp:O: ^5*|MSK~`zSm\T ]& Mq+HTK YQR`s3΋ "'NߚܷunKv2/o㖍`vl&iA:VmE,9zg`̞>G^IwyTШzOM%4&@*O4; ˾*=}Bk?BaoA6 Csns M`Yy,"=S3{qn*'ڵrrՊ||LUHnJC) ve1/-ѣ@U[Uȵb*omx`n.Ӵ>*SLUZ *Ea6L\UR\w{g6Dhk[g)LdeW02BV5U6U,— cG `LOU8}~ K op|4q9(\~_=m7CdxH9eMl*ᕉ1Թa2D(܏TaBTUՄf EPC ?Obu'5Hk8G$y*cCrՅrM9Nyk>GTXdnoh4Xj;]9#YM­2ڲ3*joEARzeh@rküOWwZoU^69)'Xی;kߒcN ]< s'{lp Vi3R[ T`LE^ GS: P L}} (႘Ӫ}AlwEZzev#޳)Ȯq}C{bSֻ;IT}6s]:y)\ֻ{`L;%{zFKO}Uv-oHhQ2һK Y~LeڻPrDMwbby'rcTL$Z\2ǸT+*8Qt8]R)cAsdxDz6CDagXܩvk̦uQsdPqa|2ۏ`V w u6Fzho]m&wtX|>!<]Q1Z\ӡ݀ aȄ[qasUM>XrN ~LJ 0H}&ɨj=ʿı ^_> us{39+Z~%iv#03uO_תUeq| f}eR:,E ۗ.{`U\@ dgM04c6cj R3Xl@{n5X1-fࠉïNg~~wsDR:(rJ"\yŻ_o=ʼnZ*ѻ.4a*1uaouُ$I,)c[F@^ TGR&Mbnc\wMw*vVS6yL8džjvU ԅ@Mvy{D3=rYSkC@V@3QbP!q|Vڎ#Pf2{F2}!pT{M7T{F\L_0[5ZtTgi]97Y.ըfJf,s'D:6Yt}U4q-4cB>+ cmƲpvmh:ZGf32'k#o<'' _Bcd'CM#fp5k,;OV=G3Muj\eԕA-e1 ʬ4l9l)hÏUITk- y޻PŹ}ڸ50yQ'U2O@!T<SF6/H z7?XN3 BS)0-9s!SiTUw.HҚL~)\eT{Fly*.,Qp:gy. h-O`]}1ZPkP t:rXϧ^⏉8CM2c-&,y9MvXމCp8fmJuY,tHS]k:&x`!ۊ`r)lKS».R~~J9iuuވK{лO]W ?"Nh(uBJm췍܀sToKM.Cyho6{`CCvYpv9be0U??D *X~ӡ_4T'"ԤX㪥JjtđIu)w犏aT @{6X|Ml.rGf!V3+UȔ %Z|Ujze0ֹ^1OT>0 %2HX'vN+Ҝ!7'hp8+v.,R=Qѻjxѧ'dMH?HnX\=3AuĻ>^G_m 8\K@XAAk" +YsUt5vi?cLhI_5 <)JC /Ak\6,0;&)s h&q9SKU@^5_,ͱ$&nȷOݷڧ 7u^G89y m _,Rg/pjǘҫu0\?J]#\w"b=G%γX7l8a-[QU}r=B$h MUJLƦGS3@*\"B4E /VnͩNw,**Z[V.p9gpXgյ̧kc)ou7Bh 5U@FJ&,~t7)%37 S@sns)YMtn w4'xisWXa>o%kV}G'TU0vg J~lp*D$&vgkTwU%Yi^!b\xF+' ! 3\:G5iDWhGO*iЫwMwD|qvc*5C-aDjp^k V5 (7kKi7ywYoTʨ,B9rriL]60QR *`mVaY.e1R뾩Yn5c/k{xuﵤhCFjپ冤Vh zPab4^eRbgB 4]+_񓪜SC9[QG:Q`Y+Qw̬ v@ R,^,. 짖W _yDu๲-b>.$ )'}^'. {jWR9hb(6IVh ӬxI6Z1U Nm.ޣ4E@f>Ues-)*3 u=UJna 8:~K M-ܰm̧wd+I*imw Ri&Uh>VysnԳ>"2yNv%Pb:T.a5T=\S({*G^EhZ>G5هع өrU 4XC_Ul8 o5 Vو|uDasuDO%-0n5XgUpK+#2UiR6N 3G uBײa5u9gIN+*7O$H0Tn{qla_4O@RÅkXItEGqpyjihOͭ'>IUQu6,vg)Qc~ùh=Ή*}Wq ~ձ|UEYTqW.-y&Sxl_%in&v_y{oTG#%xy,E==ځ}C -oRHxuk L%昦A(qf|N7%Li-+ j#柕O4a_n!'(o9wK{ UOV絽:wbsAbUq5˟$r uL '*75n MB- /u:܈Xj&QNMyNH0TOUJ U0u[$o__ 9hqftY'J8; ?A2F2\dYtWh^ke*ƅp^j +|+Z>DmH B]Ty,#<=s ֛MٔZHsPF\8TiK˹NӅ:h(H\Jc&tJ}jnlo}CI!::<5\wBQK"3Qp51:eZ=Ät*# [)ܺ֙Jߴ?6hӒTkZ*zu|8GSktN|62f'3FOڵҝSH0ZKnj=ڰr֕!U|`1è?-ph >Jr: ~M`ۼwC%(Nn{ h ht]\0tL|~Knhø.q7D G  jANt#EO.`89跜1isCUkATiSkq#O^L@y2E x',(3 JpM9,Q蟲aC1L dWg{x|;vbkd杈uVaT׫knK ˭h,q&VEPf3RygbP2rjS]G>I"AG&$.ϧ$Yk/r{s4ւO c&5 h[(u!7x*5&89?>wu$2CR5F_[>u*=QΥiH=f.4l@-}#54@ ΉO0 l2?ҝ#0iO̩>. L ~X[`L_iAAx[XbuY8GЪT&gp9X٦:&yh 5%pRG%8&jS&LTXvjyn`{<5x4Â\9kچ4Laa^֜X.M4íf%;`G2~s ƛ;aRWm7 y"b0,hSmggԬ\>X:~kVGftRGyoᕼc|װezER4GUFPě.WX he< Z>NO85L5Uꖵx9amٻE$9 PH7~JmLtJӣZUS*FEauV.9+hȧze&73#^yg 4ˮh"7k {af ?ȉ[tZ<-XTʹ q,YXurr=L#iӺj~fL--jkRDwGkRѧUFe+w/E+ O_ XXQ|韆Dh Uw S=2 X[IRL1a.V"lxXZFWQZ] Ht9:uGV5U1oJ0Ktb:2~v:ջ6;Իv4O5 pfts\78S)fD+y놚A' (դ$2YC*9Tu*bXG \/<P hWejgiemmf<5@u 2Uud4i# dm;03 y/SA@L1-Uh0sGDse:CYV͵̭p;Rqꁹ->#Ś)wn(X!^UfL.ȧxx*7Cx,%?*|T Ҥ zͻFJM5?򫦣ˀp>{aЅyzMZbmn4 QʂZV; pKNTr@*bJgFDd7Soxuf>eb 9`\ZM;; 1.NCCs>KXiLW=G1g-q Ku[<|a'U9fF){DU*ݝg+HeJdazDiZu1P /GCD=ե{G%"oCJm*!B."J D>J"ᜅO8ےy͟{@~C R\rS=!0ѧK#yT!(tE"hF$y J.*X\1{ySjATZAy*7,I-p/ ȱkH^U 0<5?6g.7,'{]?!°檃!c/uLko#]"3թSi{8F)u6{QRrjh^e`mQ.k nBZ.Сu wcoVm4+ԫj}793 wz|,;3!'a\4+}X OC:V: v&ʐܚj2$ƫ 75Nmi"K}eLC |fD?LZ DHQ-YLA t2tj81br`yp٢d*9pNLɎmAeUUmFSk9D,Vm+vMN +߽hsC~jMu f^7%xSkO|K`&[%G 25 pH*:xOUP 2ElЎרּ`AzAne%By&O2N~JfsЧ*urJk*}"O>ES9,8;zhUs-$Z*\ ᒢw"3Nmi.D[*jUBրT8wM#Q‹]}HzK]rWf^v4:j[}\5ge7M; ʁN\f2|YaZLĪJ5y$E9 a);҅[kKwFs|tXO>"%od.wXi TV+Y= YI瓳w*.اR=5V u DHIMl&G޽s3~S XpZ,N3.+NCϢ6)TkUCK/y[~ɞhb*Y!֓:}\;OTЈUܟe?Hȷ3AS0 OHd8c^e/+zK]N*0}BDDfh ҷ7u0Ч!5i9gT}hUˋTeg)T?#x,h$xD4MHj]hBT M~ z7Jm':[96K ;o-Ӝa-)BfM'5W(;iWR4*Zs\YեUeGR9*g!y5DqNx}{MZS{IM7G$Ԟ8Vlߛ5V#JSPĿLp22X?mLx7fsM&%vJMߝVq3&"u+i<\$'^cg-@緸<x[:5 i>iЧa̔Ǵ) ei.:+U:cȦ֋DѪh>iL}8N}\ BVΑ$!s44^hwW>:xpY[gPp:*ױ||y[we4d4ٜ±sM9@Jz$cPee>nMSԂn\Lڊ/S57ky-s ADn 57}`.7-J^x)eArW,۫mVHUi,EKDTWf;ܘ@b< @ve`m';Xu:02޷{[PTe@$$4[jqGhy'g@QRx,> O&BgdӦ$U,)؆9 f(*f?־\ڔTMʡZ|0V0]:A5 ǻNjnaSΙi'h26Vo5I3dpH' 쎬*K^ZǫM!6e 2FɏU(Xch'-e`0SшżDesFt \52䫋*} >)o\Wm)0ŷyD41akUK'MVّs'!S\tE[F\&b2Lg iJ{p橐Y颖FSFDt 0N!>yPi) j0P (TELW%  OB{u<0oJ״Nf+#%a⒨Pm4¹M0aC۟А_wUUgaw, 4wE q g$BV;eӪҗi晢J*)t'876x`8uL1˄B$nOC^ Ѱ` ^5.)o/erlRۏtn3oBegTc̷{1ZdWg*WԈ FTo?!Ҭ]0px*,j2SCT+E0%9‡bwaSӼCrsm0sG<UҘB9ܴ6ho!&!UC/e[=*UamVEa`p۷zEIM֞+TtpX8yLaJQr]\OT0 peCDw-k{߂Ԇ* fn0حŶePi{h9L&؀ByVSlpJq98[19*!Uwӵf,R mv3 AY -%i)UTCa4dcc{ydZ8\UnU>O9?v7k!kw]!aiT{ƖP[K|]TYXxzsLT2=.e=Z\;v9 Oc]rW^ ΩR;PLIsX^*-k2Ui1%R@˪uWI]PڦRH'1>OӚCȏ /rQq,cSjwIғbpQ$[O9se; ӣ[ao^hP%Fj'?%/|*FnwWt=>LZ(妨TyVLNl>.ᕏ;CMZTAkcf]QQn傘3 ohdKO|rXJ]Iܴ 8Z+\Vl/a, ³bIWɐ\3GhEmrU|DuԢiRBmUtmrjԫW1H](˻q.s_{ɓ0u4Tj?OfA:a&_&\<=Pi0{5*Lx^4oq: xUuwM@I\Fқ1iz%Ps olUsbӏSM9AT/ʂq%RDStt鳆 ]} }ZdIaM"JaW`gtF3$Ð9x+̆Ɠ@ˉJp,6Qu>]Sh#Lp  UTS#7yP&zǗX9.VsG4LTmHnAE0HP̭knp6p*w901qE5Bvlvj3Q2\z8L!'9+F߳ly'CQwݪ'޺X;iOS\l v-Yn!uXhiϚb|d%bu'2x&ccyJ-aOjwU ;)9BJ*fLseP4fn/U-dG ƈlysR_=*¹5o$8jT#^J{x5CڲJ *MDD:SD+Sp W{U3s'䯜<x!59[7ИCEVRᓪ[ӢX3> 9o)/]/" M`qچqopS\hQwo,Ȫnm~JSdnNtHY57_|Sʬ{rΪH1$+ʛYCFaSi/rMw77NeuFF\uR 1QO-9!9ʧLn'5S: uTE&G&T%ZR9yu'HPiקCZC ȂE;6-_s-ks `Q)6!KZ\yM8-b 4fߺw,Zv؍&Gka WFBteb[Ҍ@sXb7`~(" qqOڌ{@sWw=[k XSsia^O-7:}REĽ%֋bMXGT N\wqf_lh ~zdW 35cNH^- m~^J%Li U*=h*99 dNי m'4 =^ . gU,})H-2=\qvQBiܲ-TNSk槌5jA`v] ƔSl\nƗD Dp˞cU:&Gsfc0ċ[2+[ leUstO0+Mw,M9җOY~Ik,|k UAg*ė.W,M  ]jaҜrȭNU= W$2FP8H,8L;J" M~92~RhoO"2P a0Y!b ơӉt*FNe[48Sʁ#00!„uN!B%JjNS` fm<[L X]u6=murq ) HCŒuV?wݴz*2tM*Tis=ѥ1HSܖDo(yOsH*o1O(CLӜ-v{ˍ̢skU:z+`G$O g/?Z5Maf^0o v̑™d1Ls I|,[%ZrWDJ*خ.>ISME6sT%V͍ UIU5c龠]nssa eisne9w'D 璥y!N;NkF\]uE"lY%1!;@Fn赘9jNV$"5:c)d+FY&gT~#%Vg+[ {<ˉ4JB6ۡe0 #67'i"sa$oz-vy8ndYRyT4 ?ֹ/oSV>U8e &2s޷-p,NAnV ՍCy2skþisx ϼSZ2o S\`<t9"I俁Nvd֟MJFن>*R Sj Zŧz@]Y^wPYZO9ALr~MYsT(Ѷe5. X~*8+-CSih]#H,*=֪n-R4PsGBTE=i'(Md2Sv:mҟ{@DCT`ys*d3*38JwB9'l/v* WpƥS~jwCvVzQEPlrofyFI5<&Qu٫S\Ot#j"'gJZfUzuTkK}+_^ jnq7wS:bGIW&O%yuBC( ؎!U(L vRӞQSgRK%We4ܮlQ'V3r` M,SN5`^ MpR'`*TJ\RXzTMVΪ-<{ȈJim뾉棄{f曊#\kǂJ%BoEwR匩;Uk|r@iV ''Z-'#0eIg;U'dNÇ!hPUFj])Nb&TOlL> V]᧽,8mVĹT8+XִHh:'2m uAµRT*WRz&419tKP8dUVXF7yhGvy/]R(aB eU"ntLl:k}a4Ʃ97~ =IWtF\NM+To$é7@T$ocZ eW]Nn5淘iXBo&HE{JJEك\i,>6uH) ND&} r^S_&*Gk訷wE,gz 7xEu "M*Y OIr*`yU5r^TAQP*+Xp 몴oBuѣOMU570莫z,嘒\5 _CA8g$3PcJ!90V"s`}|2M[f p9YUpYF\Z/ԫ{9J;UYCZ9v7gOk9ͤ*oI̪o:j}1u^L]MډT=}ٜh~r͒ʬUJu@2{MIw sn*,IW0vxO+HtUM:cD2s䍆hr4ө5\"~ix鰦SW!9R)ٷg&)T{LL*$#;lz|Ka{KQ{Y=Rxie}Bc n2X иsrVku1~j)\w! 8rꯦ3sHTa>IvF״r5wODi <&4 S[̑MBtԩb+:QȕBduqU ^o//lt+zL;,ް=NY"%E)FHx&rN 2U M-m2fJLBf LtswŎ ijUo;MÒ0zQĨ;;D^rr_(duty-}Ӓjb~ٽZfa uE2=9F>J/en|?p$Z69;ܿ5%O}Jgx9qpRz]a>jCi>ͪKG;+°&ꆫZQ@dUVdi)Akp{ ENо.l`)W) %hMb~ xvU٧~k E$^NlIth1NkɸTs6RՍD4*nžpN&DHPEc*7xE1D(vFS*Ԩ[żAAJO)>2d?OOvz6~jj2Y rw\RG{!ba-=OagQy"XSs#+v?6rN ouT5c4V7*'s)ﵤԞM9s0uIR$~0LFY}U;iGXU:#2:"DTd*dR{8\Ce \Z b~yަ~mGxћ] ufb}nG%@ BNNl#]5S+D禊Ri><>f\^zrMhh:(VR$ǂ'6jaVUDGUwltU;E7x-6E4Vtk#6SHjR.DgR}:&Ϣ;Ng%15n7\(maiញԞM@t7{ \;C^HB2kS97 fBe+5G2WխRi.{Qh=G0 ,‘vAN$:W35W7U#z쪔Lw__:d*] O%~Sp5^[bhlQs2/)z;5iBq.Ъ}Xݐ7؆7VT, Io8}GnTZ> hXpXv统2TF4hiS{-tX|S4ƆC%jЂ湠>J@@X;6 _4>US6YFY咎0Sja$O##$ /4W4\Nj)r@N e8l+Mkipo~d'5{ajw^9m&M♘3bknYN/x,FWv޺WeaSRc0%7uXLs[L%f|4!n)wFeTQֶe'G u(ӧ<ƪu3LjKIbZp 0oi>ebnT(!4 U*m8 K2Dv%:Xz6.rprn'z.h-JɍXی9> LZ%awj# m26l'DFK٢Uz4m> Ana ھ|+轌&g.i'[ ^Is# LjeW3B&Ys'ՍO N i-2GEA tR⃏vSpd+<G=CSi6*r]6V|%Xs)-M7`l] a&e;CkOC#AYiXk 89љ j NB;=.yTR,7{\rv(U#019?-$NS0=ػ{f::AkI 0|D61.:}3rM|D˺ǒrBU|"}DڜUZ+u3+w=C -Dvnlޙ*e$4ݪ4(lg,NY >8y.-mrjpvbvJC$*gCaC(Or2`Ach&.U{xf6X;a,Bu?X7$O8Uq>ʙ u`Ԯs .7. $stnvpgM<􅀾7{+}]֗d2uh_Vv%E&Lu32lXaMsT7o{IwlߖʂXSgx0Ϻ83PܜUkR~G J\iʣ"|s>AT3=>JȊtۉ [FϚ̔GM}(rA \sC]-eaj8Sk^-QB%5 fsu%]"NjRITxl9,}FcWg׃roŰ_.iuNU{&-N?못OF3F&i4UټMdHtU sȬ%}rjmQ%B*(PBjjZVHżOD:W8s{Wd2EUnL)%6Ub,Y==9'ɐtld\!P֖˓qL!hAdN nmV2= ִ 3 Vnג Dq#T{aꂵ BÚ3eSWxM祖תv 3d-B. Xa;CmXSaUa*yM I=Zݮns|FjDfs@?UfYP^mSLU;mpӲ %5?Ui!a9Z׺ R֑~G)X"ThwsR=Ld7K@]a:g%b(U^915 A'xm$|kZ^i } sN{r懚U reZd4 tZl(hOU0O"4Ҫwµ̔@s|Tҏ{: koV!3r&ZnU}Wd}u.qz#Q !4!s@~~UЧv}Ou#;_"֛ޑ桽Uܙ|kN¯sT #Ԉ]J%=vTe S&9f,Pky1Z r6$?6)%Fi=Rw& L1؆C'4.h0>h_dSB&sxjNܼhahC[5T\Cs|M'-|wfL/7UPjI?W4*HwQĵǝ:UZoHt41 } wB%ak4`v T4f9ʕa9}wBZ2V:$5EbL>tO>˧jkʕAQw?%<_3"LB=#Ȧ,{f]$;kxО\:Cs#=`?]NkHeyhi҃2VB r\i<7FIĺteZhRXU.ͱ)aMa=&ӱ^շ=ӏZJqZWx&TU4DTЪjMKWiWsD(ŚIUAȝ=L..cs/Ɨ݀g'e&:>9oX4.n;pcSt-DHF[7 VW\Z4^X& m h@JWS(_4{6%bnCÚzrXVRa{X*"X=1 d^2(ves̯֗&}j=א⪁.>U80IgHT]}6A٠Z e;ӕZE:O8TϮ;FliCϼZgW mrźOS-ہn碝]TyܧLWqƆ3h>j/ 'bg,=[LǠޛBz)D<5G0}j̀B{H>\JjQUhTTi~ .mQ]u<7;Oo3)w\-FJ g`ZoD)x)9#s.i$w^a9X߆oHj6v\:Ueg7LFp/n\6g}jRCi#ԕ x,3s(ViNf*Ҡ*E혒R%FkLֹn nR):]ҪDCQM-yJ!qCp#CITm[!ScZchvjv75O;WeN|әMIn'{jpdHdQ.YAavlz Wn:'8#>ΛUJ֍tySCfnW6T#)we@(-i@V_ ?6P7 | ķyftx {FJv,sbp? #.5 R/5%4Gf8wBKxMzmNצT.oߪkq M8OZ_)~OK?/~[R⭯_U?]OS<U[E7˹t*r }\= xk+Ѷd VNhZNIxfۂk- sc< jՇKG4h:Tzʺ]tD>aO5lMk/!T3ƎMD0uw5ID*uYXCr(3iSwy9pQ_JNFEnb&2u]>jKFlgihEcYלx.h=Pc]*uNWJH+{L9/9*X~j`溵7̥N:vs)4O3_ُ5]ի'+O%rQLsWeL9'"B| 4 jA @6y*[ʏ n+qWe)c\k9gaSAѸj` <̗@3UO<; N qDCG4uz5/ShQPTSOQL`J>HY:\VEd tVΪ DL(CvMkG=Sapzc C mV6&zKsMt8N})i§!P:sDv^V'kwZgMT}'3HJ7QnP" zJTY2O%Ul @ ,c:mZT fB##`ZuPŴQt0BR:Xw @,fQć8>< f"Y49&fgeU~5^]:e`7':u,S\Y[1ⷕ(5j? |G#.|gzefx8ukB?i|X:#A([:FY;1 j-ϒ,{-O'-P3£e'Q06-ZG%IkTꝘ[[S[w3fٵ)B jhh@#cJM*T䝢MJi~i |3& תcZ4().ˬ*iS>P4ʡ2<¤׹+| .m@AM2ܑ;2Pa -Lw.+0!krK[iڴd}L vТgEKMU vasyƂ:ibiu\C1qUjƊW8{IO ݖQµ=:/@:Eu'f#U DʬᄤrzØ_uW[!zUPQ2m%vχ[cZτB2[ݟig4l[MZ [Fgލ ˸Jϓ^#{?U$1RŗU+L E%4{QŞuV=h{E5 EBSD>aǪ:.ĶTve4vB湁j4RUèR:UxWh>^4k @<9JFD#/0 rThv@)Z<iDɘPB2nav=3z_U|0U.l6Mit}5yoT;2?D;63{;ٍX:Peʥ0Z֋O*0>;]Й__CtE>s`\@N*q2F6hJK ^\ײ59(kNcz*"sr~ Ɩ "Tq[>}"|!n? ^Z]2|jW^+FJ(^ժߺj|@~[Y nqG^_ .+?g:Q؃zwRvD3qP~mLj+UDi4ieg:ފ"ȡ =QԔ@lm0S"v#Ѩ]Tc G*g'?S5s,4 C pOuMaΌ;\c]6MNwBJզXNuЅu,{90@>6㩕O Q[aT ->K?(#jM+z}nޡNm-<|dJ)^2\uL'*:Ҏ)ky(wTtxX_ItOJ8*cʂu+N-{rPA6i $CBn`p2U,F\\^2sAŎu>aqշ8wxTj ԘVsYEvM[t(EQ71Qy-E^S02Oe}ۺ5k=l%3ۢk5脑Fa= qtQ&;HC~%wGl>Hf5*3n~'r#[S#p02ۊl{@'(!f:#gʔwBO0SXV[fRZ%> L;NSfZW~ZJq4pqO5Zl+ Zk:m#qʻJ9BsI1FX snXogU!JvA(ӞIB+w6=T:XG=y\; R(s1f<=2@Ts](/P 6l;P5rR,LYV״ N4[4tN:X29UUN.}E,7>V1f%We,óy^:'CD a9>IτriK HFYl-uԴǩ 6J' Mͣc!=[̑Aˎy,vy#vR$Ss^L(ex{>6TSo)nYڭvu <[ .K~uG[y4%Ti܋2VG S堟 MG{sx;Y+kD OԢ2)ۄxڏQ.UZg,1('8eVX`KNzme[gS3MWyPUKtWgϥJ~ 17T^`d 'xRbI(=:nrpmo/Wdjk 7ef՝S]|DmV4R O4V)T/K9B5hѩikgO5%Nxy]Xcc*K4E܁i"-/$7lȢ@Q(#]|zq,daQ]Zg&ʻƏNXmPzT Q\HBm>(*7_, niGTiyx#De@MdO܁sO"@UO n#YAVoS^oǺy=dmi=q;SLWhewO|dn7mi*$ !5vJ^OiVh> lfuLIkD\xZ#6Hٸiin B^:L8OĆtFѭMq23T+==Jcԩ[ﻗU|p^J޿L/ɡ2{xA{gf@EG0\>9a˪K:Y#FӔs+-kE>\â8rz#D̦Sr\6́Xwq H-czϨTi>Jn\*j%sTܱ}E>J!Jķgc4Rö=IOe\JOY *?YXe?Sm ŸQ#O8o uHBwOG;=p SE6ZV'Z7ڿ̫r[*frD5+:ֹ*6l:x'9O;yu ?VUJUjS1nV5۷wg?lj0NDѬ#pU=Gj٨FBZrMAuC4Ji$D\Ni}z-T65ZV2*2+a麩68QiVgQ>"sRk"AL&*Ew֤s@:V xF$3 lA. hԮѪk /SMJG)O3(z)_$S7JJvO%g\@lڻLN}oq޳z}~~TfSNKS8"&ssP`cIB\G23Nhx!E[ta ,~6ia֕ڮ`jğl=iPlt~OɅ)J gfkS䫙x~}'dZ ݵnPbwڬKNGW0Sƒp,5Kvb^@BgogvӓSmw5jZUxty*bicXV_SCZ^~kxOwz%ժa&qmG谴i vchS mJv> -Leτlے_iĠe:簎FY N~W1q2VWa^#I޷?'o=m]vdB#ll$aooX'=<^ݟ߳ǧ/Oُ,jL=[ڟ)TK/\Q=/M]9 'UN&閫g JۿمʋUTuW0拭nj~A>V>ϟT)%4jUnr@,q2LftB 2d45'SkA5:ըiG)P>^)nwU  >4r $ ٔYk {Y8 sd7.J؟5E ]z#P8z!fT _4l)ԣj+jVJNBJrMRRj:tg/#%%wTP*V$P੘jWsF[v*3Uqg5T2ghpp*t5 WFU].m60]9O%ӻ8&sXvW8eĪ6ʎoC4V AD%T' ȢP7.kPw6Wl ܲV({a䩙` gَ~y>K5_F}@'ŧ}Kyo-?]OG'/Ysf>c|eLϑ> !7~  q脲\isSu> 0_B}E.[9gD.)Á̎$KLiR۞qJd^hV'*o$2%`"S Vj:ݍQCdeqdV;5jX[oSs΍`_Gn7hG캎s 7FĈapwL6AiT3!xI˒kČh OǾ|SqfPs DӁb!kD<q4؉k>W"F7_tQ0Q i꣢ᖪG"@o!o|ܚ#5],"Lpea>zɥj|ef4֎gԍ(F']MOoK]d inmȐ &юMyq@Ore_P, wzY&NtOUjS(CC"ouF\ Ag?(>4V z"SG4LS fs觢>/V%ًXnN+ RkT!W͖Q1]>O F(XoKmi~JFl:l"u m-k:h4Ph`6yf 2uD-LDSIaez.ਚtYhAKg%9ׯD5ѦFڬwB pGX_e//o;4^}܂VKEMRM,~v5=JƉ)}V^t2sӮjeTL.`,5Bg4doa*l}Gg2-:Ӓ&T8ŭ*t)Nt\ch戹nNJ '0z-lوL}.tG⩹|&dBu OA [q=%bg5 2!S{s69Ǫi%FQM}` *a c<pz S l:eRC$jUkEk8^܎[FpCVWihϚi FO{5s_ZZr7K\~m01K/`6EW@ EHwq;zpS2PKt(憋aX'~QQ%S9&Fg%sA4ӈUrnPV'V˧E!s]vL6BqP T6YQmkd=3i{X@Я{=eTeBr0+~Ti> d>m9I^!-?4j1úQ"mKX[mvk6 Dw3g }"~p&h6WqfU!i1: ǩnp[t`ٟrhsn-AZ*:´R.k]uIXnZUk3P{k6C:,V-ӺQH:tҦA7waaXvqqT60 Tk~4#":S,jù~F]7KXnqs`&"KXJ)ucg/P(Cdz`z`/͞MT1~s]/@r *-xcF'w% 5kC1;E@_Z@p!YW.yT:>a,U">%aulp8jqyu$Th~9*ȯLwEڎ=#[B~c jsV25C5$I/FK9xXa_ C搏Y2YHk k񚅏yL!QbX ;)TɹZNPĹjZr̦3ؓwąs:N9@Bn9Ŭs.M=o ]e\h4+=U3P(N e"MFl:,ڀO9 =76QPB!Fzt^=G jiw=!s|=NK IvxRcVKꏪ*Ylkn#6Pe&9uVs{܏Dw ̂{.XOrtw%OxSۙ'w^{NcT67˞9,!zӛKb|SiXB32Ng5V/cɸ]5iZvv/l'Nw M㫑mџuW4Ѹ'H@TWkv7R<KLKxHXw5ָ"i .]ƦsO5Ru_5GT0{1憐-vl(*Ttb)0xpiNPwPThiC|s)=f765x'8O-\ A9ce4xf)aȻX*)9SCEsRI$a'`^ݽj*1GcrUmqZrbiT47gjxl#UVT0C8Ӣ5 Ou{9rٮ4r*6I樄Ջz#IYQR ҡz=C9h门=q9 KaVeMt$ꛃ5#!apo5*ln5nchx˸}+K .szeU?86!cs^C K|psnnm*2eȾ26xFkgT hAiU1vIyק*x%# c(SvB1)j+EFWyW{g/dvBW*Y^iվ[)eT*;aoGs.qxqm-nz.4o:?xZsEUs5nOS^hQ tO*i0N(cIy'c@ آS<W#SPMny#5}ymw~Y*Ns.q19Q b|"dJZ=Hl5(}AN=HGc̹(u9M%*LiRDs cJ@{]@Wg*T)CM3G9&ϦMᎰ993:Pv"Bu0Ak9d`Y iR1ڂ}Ȋ̔D;1⭈s/oUw@ڔ\eBF8UB'ZySk|O Kď }IO]cdm:-T"9&^?Tlq0JnAv)g+m3ncU7|>ypmpSS+JohmkG Y5=Z14x("bUJUh+]T6x-dHkd4%Z.r)Xu2S h)7UzSsog7vzmHTm,> `4zXc5; lxNȠ!"%ǒrUS Xr%,%?[ 2~}-Cռ붅Vs`94N~g۱,6Pj4l.)9aRR(Z@Ca|@U<{"v 182*x8;w~yKOXSd\GQ)6VjԼc\s1RF}sAUw2+X37ѫU5hOd| uR`-3/F7 | Zb*ꅃ,iQBpU W yUl ;lzNUoe%¦q0n2h'\A iq^=BaG v=9k@U:' (b\cR'l+VKU!BQɡVw ~+TӤ7sUDt' Qq4.\1cZp194v"'N֟%OsV6:䱔ǫNg0<,}cy^is`8qb0Ŕ!#%P\ ṖRQf[7㘔ݐdl!T 8u`PB}z/7ʄju9l5ͧV p!qƣ" A&faL$&ytB'eM!"}HQjJ%\٪D"!{dj)5ֺ+vPg-[SuA n6g$pޅvk!ȃ$ϬK6{ksY(QȊm^s;ޘXjK\Rܲ@`1M4)]HAI$=*WYRC+c~}Uz>u_lмz4=c'g_~T._ @!ڷa@"U<^z_~~/@*0G~iF\n_?K_Ex$ ZUY>緈w~X\~z+^6#7~z5z]M0dܭhOAՍ_櫽K/1A .JT^z'Hѷ~VЊGp\Ki>?Uz\"EJIRz1as~'Mz>3юo ryBw6?1 >"[NE_/KYCRJ~?/1;r߸&ehk1;r)*ܗа oWԌ}.\r=JE~RT}ULFW[lsbp&low._EJr+֥~ z?c0{.RV&*[^(Korn>w kftbʑ??g2J5^*TQ%z+ֽ.z GzxQzo_ 4a*fg8éf2#wT|Ns>m!GЊٷϪ*GV R>Wj쎫Uo7/>WtQ]4??rEܹr2C>RpޜD:Bݦfrs2J5ϭJ^%7j.nja$8QF; +fh #>cLEޅ6鸍a ?螧JeIHM+ٔj`b*tB`gHpZ <²MvE87ԇii7gңY8cb2d+Xß iGv} 53m@Cu~/YhXq;???bjU?NvVyG3N& mVsTJ2u>gѝNNs؈<,U1(*yNDU8NI\.j3 OF&my+oqڑݛ@|5;F6mmχգf=JYcxiP.+,E+vlWE:qU3<>*e.Gac/߻ .^ڥC͌?'藔T"yϜN2m֝Oah6W^"9!Ҫ{2y%L"c/@ s JqnqҪ8.Pi)J.eB%qiҖ2=lXoy!Jvmy4\?O?Lyf_&+i9gn!T ,]$ZXtw 4vN_RU<`q63TT*@ͭ2>=?賘YrKhGC yC;D"ݮ3\4Yt!kEt4D*Ǣmlf!H2ҾOmW3Lh7+;z=L:̱حFf}fplhHW(Rp=L`Oa2vوe(  >|eN9)%Snoq}״"=&]0*ovK;Lg̳rwmԽ[]]"hT[Sa|%{bDlıF!)vy/>6t32j#+LmZ=c&F.[9vR&p`U [x8579;s1Q)q803cb.7n|SfmyBHIv?0PusNjq8bQC/2Q<\7=sn[+5ۙrQ:tvE2}c=೩Z_/IkYQ0ޥ⧺tY,c5<J4jzjp0į< 6oLx,E\;\y0#U3Xf2:/?ybs"@W5 -BPȘ$;P)pep+-@E ۱h ]616_,*s0}MojDbKTP/RlN!8rNEXS }}u,u7^w/>#a-x0z DG&_hX`AaP+؋|G!gh;AWAn&sKPҍq*%q:ypzvs@Ydv b\S?8Gt,ra g#TBcؼkOc˯HrIGf#LLJd,N<gTBsWCA0ےqX_?y1|\3PZg?f9\yGtCL6q:',& -ܼ{pmy{\ARk<^Sľ(HK-qRg107R> IЋ^[+\שjHkIot@-⧴7V,*9 R\UyTVuaBbƿ1 dQ`v= @WX3RSٙAkXZ~IZ*4a.iC6T,wlJnGDKu.j+FRlg3r;.mSyx{WgQ*Yt{1op0/b3M>YMj:-ffA3 p#_qa!-kCSLxyByn#Ek~. ⏴ ֈ RnOyxM w͌0ΰ[ܭB%ׂ__B&x..lDJDZh[l +5F:x;K+ʲ\yW_@?ISo[i<ՀܤWvFe? جck-وj([ݿf06]I/]dUT&8/4/_3+2GRj*AM O9bur*),% o}L20~5L}(~xِ!8l܋ßxfʍbt5ůKK=ԼjnmdDϢT3ݧDmLΑlMu2W*0Dqc%a" iEi¸Ut0A/vcEyx@} *ΪQ^ﳬWsbdNC=EFf5xmoȔCWib(4ЧZ[փ0)FA+t>ʽyN1lƯ>0x8gAl+lA2FI=C(3G1S48?쳵 1!g-j7wnT,rlN u㙀#_ beĪ`e-?t;xoq^[7y*srnR13kOeG ەKsDG0TgIm&"*.|x]y{҅즾"&X :F Z;/ZVrusx/%zwV[{5^E0PTo]{]|LLM  חS  6(~g1*ҹpmE _SpZ{և-5 ¿ܯ; d9Έk$i TR&~ȣCL;1u ݹv`! \c~%{u}1^2͐5VƢKuMJ)PցcE bX_%3^<ŠeQniGyJW_ΊbcgCg'Ɇ8\UJpz,C/ ;ڊe*p}eԷ s̭l0*Rw (J2V7dSY,\^D,YcS^^cP@n@ l?(ljivþ[RTcm,x C qz^ h5)okѴL@lk^pi03sfR!W{ruE0޽P7WF*pFS' qa#kɰ }u'T 2rxѾV /5i7Ra"ԦkSn DS @ߺjNf >=̅vfeԍƱ(]g/i\Ӌz@}ӦXiP&N 3Gr7v-h;AA08Het;@TldM7Ѯ8Vhׇ"t-_.#e PglqAvR~IV|_JU)wmF"rU*B(ڷ v `j)?Kf:+R˗P*>ڞX & iӨyzAn?L*vʺq:g!ZbF+Jx9eLьF``R\',xҜ% k^ 4,j8L3r8(b(d̥]UgT/E.AX7X< L¹8z] >&Өyc/u?h5SD#x.+y`tvB4 %{,”fǥC} ܣG ԏo X$wgYeCPa)D!pP=H !P_(w:x״Vf%F_/(J> 0 X0Aw {17drn򍣱8N58or=C\eTs\F*.iZ/""NCƠ6b=Y fFp'_1Fa,~^ѹvL%NZ;Ҹj6^Y]NKQ9jZy .[;i euʸf0S߿IN{KCg\(-~ fA`9ka.`:]bRl~nMw^ n)*,/@rA^rGJ"SwXT&Qi?X9d\zeDzE@濾 ™)uɴ=_i\;]>k#~7,b75tStpyMn%OG3⢪y~hLcah3veÈnV꾦0/y}fwf h{`r{ΜRq&HMɸ?|i4(, saky4 =LX`10̂^|GBM;(3O,Mnd,C|)4VD3l@v!`(')il"++(cXcJۓ,z@ Mw!RَCh9J- ϓlP|[.lxD(XcP!Z A* -;G1*̳Es+̶yS=:"ʻLjoe(#b[ ϼn:Nx(cWeK^)=9v 阱YU{͙;R=it%İw1&˃L+e nkcɺ5W_{]X73E)cNO[?׬~y3]pP9v')@P܍+y:L}v_ R9iCغ1l&MP9 3.ؖO0ipo;u12ͣ-l4W4Dte_aX#>ޱQ!YW{JþiN7eȩ2 \P]XI\ y[Z#s{KmM)%<ܬumf:Fߙ7uh&(RPlr8͜)rۆe&<`Ru6cY@]piX`!RH֎ =P;n=\3" AH\5'M GP*pF"_Dv8ʑ 59w6Cv uc`N,eBݢlS>`-zSG0+US_`INk(O#[X5n58|T[2蘜)> Rl*FI>:]zinwOMu_-R՘8 LZ4S(̞|J^eC8ԶMj80 kb:#䍥t?x Mijz"y4)RKHŦ\T2X4#ڱ݄۳n,'vY"mx5 ;+(}k ˿lJpo#/(lUQp8S5NC/-76j%+Lps0iS i:<@h}UӞbĠ~߃aQ7#*v}}7GGGQ$X֥reۥuqC1ʧk/X7pJuVo3Ji%FפZ:VR 8Vdeu-o=k@-.E~D~9j 2ccT2+fR-*myqnLeTEn9˔,5b] N(Q 2ݞXmxNqf/-WT3,LQa|.:-Ws&1BJKUUQu/ Xqc̰ K(uf UkHL~ "YYƷaSa3jÒn3908#_X4@5α}pt; q *m\AZ8r2ƫEهR> pza=75{Ģ2W*:@Z KoX%k~􉉧P@5RI 6UET_vN{7dfk_!N9%PY7ۤu!PSTBUroA%-H"2XVGIsIQP|п rB5.p}`!riC&n tKzL˘DF55+;O러DYElA -grl= 91Q+.%JSS2ӯՌ/^1!􂥀ٞ+hc^Ng>pdu9:M37+5g,EEkAy*lFQnZ~C}!WpwU7*k f6fQQjȝ扺:ڟȧ l kmAp@fC#ˡLqs/$;uu; ^S7+M:Cдۊ ;&ic.CgMU}'\!{%z5X:55\CQTW8fk>0  w,yB9<v1{ܪb6ǴW\thP c|z |6|qqgM9V:B ?FT9ה(7G N8 iw rx! jϡ(ݙxX2ʶcK5}i=u5Cs+Eqhj׈EU_)!_mK xb珙@r̍l2{9C,T(r\rCb\S'J[';K#؊!*UŠ jcuD5)ia*c̷muoAd`@k Kb1קoN`DR¸ , zb%骻AϤtλ4Q,|acEyuYֹ-|A9/iV^jTF/LOvpOc9C=?빉Pfrzw Ɋ<Z.˗>ފfM;Fh3V% P',-+a] KgDZZVq9D+f=f RK|7 1eQGwt9T'i˓ԏ ^O9Qt0 Jĕkkc:>[~q Dh<=&`{dJΠ BxWPt%T~{i(vnPF 5KC"H2\Wi'ٹ|8P 3 ĸ1$t} P3g.%{n{ -*k$OA<@k^{VF rŴo=wίhT 2v)itsrK)0RQ&̩[tg\k YmZ "gdIPљiӣ=}fgl8l}c.ǘ4*`fj\/ъAg̤pO35B_2G7QsʨhRၥI{푱at\{h![LJhcu>D׵L@3([|Fq<ĺq4#L^jA8}9#ѷA% 1K_V`菊j`JsZ, n5|DX t.}%ٜK^ p7+2TPjffn&b..`HԏJ6kI*hVSe+j>ePɖW (prCo8W"8"eXΐYMaˮE5\0QX#q1A/!~ϛ"BfAyc]!N ^ٍve(YA3CvьMҔ\4 i8HNPeLk^1,a. =!'V2r^XK֫`!*AǼ!u# -:@׹ Z_׏JE%1S-naNefdK;ezd 4')6;Wr˅)Sw٨ w {JuxB/fL=Jd2ڰဿq*1ײj0lX:jMޥ59=a_~%x/`=vf]VWY`VHhkTy?ݽo +,D6Kޘ:Bڕ ‚S$93k7WU|fiD5|2ߔGRӻvw !2'<WEo{lK!hvz[e1}fo~¥3 _1S_蓏*mR:Vp8qvo@ 8CVK@;$ eBs̛\AC #K䎉fU>&p*X/tpD\"X Jd,2e h-W0ֹW0-!;%.D!uԱo Geѭӓ MRPe/*%̴u89Umt'U*avC]ʼn6}JB GKU+xtu_tE,Wԕ_N1Tq1T}?NOw0  WlPKtK!*]He|ͽGl)cMÓ")KŐzEas>*O:h4Bg+/ DhlٰykY̺f.HJAH9rDWq2tb6Se۪K*,gC@%U0tWȻAD|Gg˒0qbY VZ0:V]Z")}Y4ltNyqQM13D 9ZΦbG&nҠÉg\$p3&%UI}J8ޓ( N}ҙfIc26w@z+S2sc,?Xg^c$FIqUl {_&Tͷ̺z۪_އ+D1b^gCpA\m>]+1`R_T ;sa IZ|[9s1"n 5CJ(auqݭP:O4.s+=rgЎ2v< HPn/O8sbA|0<%8^FtA9԰Zw4*s,r8@ hpgBU+o7NEq @w ѾoNd\W2oa0sI"'Ml)S30f5o,nQLBk84:i)LxodPkg\ L/wK./t k}BV%7kC7eÇ$h! xGZ6 &z?+LcgrԩUӴLgC1sӦmdh:N'W~-LLsT|z%-X9h[|%%Ur)Q:l+͗|CQC qRx; tJ 4_Y͘|fep;@ KcL '|z852w& 0&QڽY(EI#7ˈ[K Կ|c?R4ωe3)G Y2q) ?XVx|L`QMavMҀ YQX%mpg3M`x J+oˊ-0_k?_n:1-# n*vjs/jxO[U :_R{C|S5IpV E[ tDxALZ22FAܹ§KPv,B FNVp?E}f$;L; K_\w۲sS>n:^W3DsMʲ/OB$Zt=|L"~Yrkl@BO p1R¾H0M ڨA+mħ荆qJPz8PJ@59" C QIT6yn.v#\φmmQj ^s/Ky#*"!6C |J&֘2%ӈeK%0y[x5ᙅK"!^b2Z2i˙˟ e)Eݯeqȥ5j,3]lVN2ƫ5bo11u)~gz~"r_I{( =sɃT{˼u~)9g%.XE)Lf |XI~R3/WI!=#)):J^.Zqܑ[@aGfiޏUYvNndE䧳LTTJ^qPY%'A8b㼩WM?1%V^.Q%{mpSC;#0$ƈWmTˑ5.ԡ7QU~R,\6R!:]A V @x=}fơLy#=pSW A&h>LQ,VY"u9[v)̣j2xf'a'Zy23#v} ݡs"l=m9(&%q*VT N%x[~&%~Sx%x X[^#ӹz̫S4dv:CGPy마NYНۀ.VVD`r }%z~ ahr1b ~GRSvJݵs2>t2q՗z9ˎ𣈬ll_(JzrӨ>!R2z03gY>Ъ]61.5Xeݩ(/ӈZΦK7q,Ctu3 hQn}2)eJTfp)Й+x#3_fMƷeU{%T;·B!$3bkhr{w+'94d]NAx=j S+* m9-`u8Ҿ%Er|D5 O̓){]0T8@<[F?5@r⯷]"-X!O \`b5Y6lZc`&rbanK?@FrE a[D6_M4 JLq3+yQy=">龡+'%G70j*eHs=X2Y]~ muYH}‹28^Sb8QT՟hL#x9Zxk~!¨|\6$p }%7tK' ̎YU3rzO6Jۙ3P ү@f YY޸] a2uC,hs ;,wcmcP}cNC A0[qK?(bYiy 8G8{xѴ+ߙ*@k6^N\cqEB0 ![4švKWvPR\b-WB}Eܶu<ǰO*O7ַ+fvؖ0 FkSb^ }n͋ףFN5dPNY(/-VT#oըfImn6Ʀd@B_ISў+:Ni]Z2^.`Kex?)J2uM%b yFXf%D g)k1!jwGO*usn7S2wI@ʢ1fs 2RJ6R 7)?Mbfzn'L"&E 1'z!R^FK!}Iӊ ]bZ@Jt$6^.v3+ PIJ)2FsYi+OUVMyDK_dǰˡq9Кa va-de`ģ|Z:=yo`Xw1緘δJqYr^4|t乱G,X)X,S \PGb_I`cv&H9%V `&6ʼ so꒩ 1CAo,))>,Ez-OA g0] aK֞GШ1yd[T6&؏q ,t`G_&s19Pg!'7 9 fwg3I.eDc>F)ΉLWY Y4xL &,m2weN!ĽgTh仪LqZMd&Xad\1243+q 0H)}QJE* Fk"G>m>ӓa!"{ѝ}i  pLXQ\< /o߿݈L 1 !y 6`dӻ2nX)^,ZU2F'2q}rTAaVUNжYje\=]fFYږ\/3$}.Yr.kCNh ;Z~k%-.;!Ny"}W&#y.s(=/wؘ>VO#jiЇ 6kTE ETu4,}AGXo/uܕ9+r8+ a!eM1$p0>"Pe F\g_5QQN;C [m3 ee_pg‡SZ|[?dfVl8-mJ{2G\־g'mSM;1M%ҹz' Omkn`/ӆ?D:ԡCyͺd -f/Qx_aZuJi.WlDR=/*EcnTL}!=WXoC|-v3u9k5"y&|X,\;8`<,GCkDܨ)v@XfEL-"\*s([߫}gC2E%:*3iPX9ݶf27ԗ6@4*c!ŘOɣa _s+8秆i<6|\(y_)a{,'78;[ O{\4.(BQ<!/oio.ml)2b!q d˿MbfT0j[he]hyD`/3w~I\^(&,ےÇ'C QLЩӿĻe<& `1/ PwQp=YY|ŝa1nZa~sh혠IkԻW YYu\J.uqa).A+sS)Z"7u.!ʤ y{Lyt˭}Z>k)2:21yu7K;83Ծrena4zz1s/G$̻Q#AX%te}"Ef51s3[T/j n6n*g5*+iNP.Q" ʳGf;Fgf6Z7*ӯM!y6d37K0JƠVvgkk kgK5\R]w2_s,}Ha5V(ԀYyS%_ MIB=XP,p'#l%QuSN}FTZ`A\p}s*TɆdٿYf<ޮekΆ$AϼQa)_R`~ܰ5gl0 0=_V(^@|Po3,s}HfWf}|Yf!~ l#"eHg蜲AkѦ98B2D+R et3p2IbSal˼04#7qljۼ@}%,m^rÔ5 ^&pkњFJ0@ -_/_#Gt=ߥ&*z&~Wa\תvj[3|g'̹,a73ƜC:u3b[q&P;3n٤~f4l#h0;eN$.\׭Ds_nI[L($S#jG1:e[[a :Mߍ9sKG1fJ"T/H?TJeB:lqIbgpWl>pd9VѿD 0FZ\8L_iOyuTՇٍ̽`c6#ӬxhT~s-Yؕq3n2J`M3*?b }#GeVyFof<.0˩YcÈ0[N"Id9뼭urK.˲[)A=Rs9Mq2#|ͿO7~ʂh1_mk#~o05 D6Q+_8h0TA8~!In߹+sWJt:mg}љ=xVfe{9N_Z0a!b2uO/CzMl+c*Xbά>@ĥ ÝJ+ҏ~p[s 5pY͉OɹQƊ 1fj|Ҍ bz<.;:Cp8<ǡQCmjqL ܱKG J/B+W2x3e uw5'ZY@;ObGAylz˸oG,_+MarV|E f\}e}B,tg>'򏥱{YC@;OCs&q(Yٹlʬ@]IONv2^j , ^tF%/JO-6F]JD!n5۔5̱ooS,_ghe;ןJN zX%t/֏T$+g/zCP5V xP/5wpVj㯩o512]-#\6u0BqWXegEom|EuS"J-Z&k/gLp2ZMYNs,F: r/w}6l[xunU6D62#]R-n+"bS۷SϠg៊4CJl_ Ŷ*=SV#|33"9pva7U&,-JjncG\5GflXruE 0[ \<^~YSe-qybX5/\?tI*o\X*efؿB[]#dOywNgR#Srňs%0?(, M3W_i|c]H;} PsSj$|ɣm+ y>ψSs(:z;j=G5yFTZ^ 0WxYL@PTIR3#oWaGy'b.\\cޅMS\0S1pŸ~?lLfX/?eMw ߂ozhu#g`z.,0ј NB 0f<0S~+@nj癖J'i+9en1:fjcё0Sƥ-L{Dys. vzJW̪Z2M2hG&68F,hseCGej]89V]X[2E~_> 2؜dr]B ۼx)܃Ŷ:ܲ ecĢi{\G<aIȕ/+q.q*N!O"V$1}Y7>VܚeGcuocBV0jwcmh,By16Uvv< 5BXLy)ĽVx' Fr0XwaN.20vgcQc4H>&ǙytKH/_2,]#-ݼ̉g)Ei71w4Gn)_ $J޻MGNf-SamڋE3NqU>鈀PƥF-i=EvVF9-U<7*~Ia-ku21O ڐs#Z5qc1B+9n1@=tӆqʩAyw,ZÍ`+os)"/%@ Jή%^L6/yA,iT&rSrwܥGgICבLOgfg&0E d4;Sg2@5fSAD:Wyn zX#y~U7f̸X1G\U{k7=$vCATDw7q1ü;1 T'RX0;S>^.' %pZ>aH:i*q?}=Q J.:J(OCܔf#I 0TKHY۩-e; ިL՗A7.We20tv:ٝ~g0*ߖZ1!LqiC.gb+70p`UjGh9G[ q:yr,d|Զ 㙞 ?=sq&Y=>O-n0JaADj~uMIk.vDsS&Еq閇0Ic^f)q^f9B\fu q 1+܉TvJ{&r`擴^U~s0Bf nTEEwԵ2;/~p:]~Rƻ"#:OKq^%s Tc{ʰ~띟SЇiv G9obvche\3;@-n=#_g̹Ri)}=ƍP_!uNn{[KW|JHXv1)fC]MGw ޠ]ǫ|1С\,xX]cu /9Q; v2qb^%Sat);3Me|Cr9*a`3^nwz.g̥qԮӡLG? LRcge8άܢVxR/y%<}Q==Z6c楛8L<@ k=c9 %)%Ǧ'3~ g>˧4coO9"s7ـvXwgt#ɡFJҳF0І2C9d¬wjAϏI2B.(+)Ybbnc+3G0X;ͣN"`]7ܞݝLЅ(>DžʶQ{NjS]S]B:4x%,U0:Ϣ>=KVF}陔X+ai3a7yvZ4 )ڃ[NDwO^~#ѣP2:Kc-k.Ȋ^k%2\˄szjLL1&qqʻ3dt;MADP+c{jh ^&Z^ +%{âh-bծe~#5[PFcB2-0%n2{LѼb,~aSqȫU6ī6ʋQϻO>'N% '1y}<¼L!bopsb\?hz4WzQb{ b'<]#kUQz9+-+Q! :1MOE\el_&wYMGImOV?812zƹ'ȷgg3LՓ` 5R"7틤.`NS%ʆ=9 wrzns9ۜ_[/iVcF-oXm0MR <>Dqǎ=Ftxϙ]5s^~gs4+7RmPV~jq (P+<1#0Q vD܎J`ZV{5I5h/9$sQ6(;kSdeivJQbssmi~c8Ks~==" L32cxr-LLgN`2Ѭ0)JDt}*d.Rs0q]%T-hJ tjLtOi nvo:6A/Z8Snڥ=xiޱ7,F 8gZICلmKY܍PܳWȈM!ꌚ/1q^;9h= SQ̒R,NW~T6޾ed1~]x: +]438=Ǡw cQTucqb2[zIk˰B.D37(wvy*3g/K9xeJ; zY{J[*.)^%~Ck8ZW%刱m3!0CX/LOĻ,>J}(J%Td~H}ѱCf/a'S vm GInw bs-ǟS!d۝RG>5Īnc!vaX xYUJu\o-;17K{x/ea}NJLf lN*4#| ]f_uwswĿ 3Vlpg΃!B4%,Of}7 Ny%ܓwR/ѯ^/5 jsң屪˞ۨ$+2f]RN/9~+PN*@sLĠ~Bʀʥ ݾƥYUoZ5,6TgUBW jU[۟H*Ú0 &.1p#ڠWAiB]~0}+db ]vEgh):͈I(`|?tcQXDLwgNɨzae>S718w h}Y3T W:?Ƭ{況}0lpao$t6C6}fW_9DIg^LgP S!h?skZ `{|5P{ m!g:"MLC= Y}q+SF22R(Ļōyo"&Ne|+-7a5 48ӿ_ގe GH˸+q`'Bgz6{~=XY 'tD=1OdN7AeTR'3^YdNDy&} z-S Д3{eG {"[.o;QxkT#fMf+g0|*KXās^Cܖ3~bm { ]=u8z)ܠh+1]]ݏGc(ؚ51@iLx0f\RseHɁ͞bX㈻"Z;$X(:89O;b/>}'髠> $-%TuY#MXbep pFpƝb")<^.eq ON\)}!3p {:VX Por=4Q؎=As X(^3<̪L,}ĵ% `勸<@z^2Ma(-lG׫X'BVu/XqT[IQ0&UNV#/f$kxzzkIe724yzo2Wa4@ vt c$hY9ε7%w% Aٞ`H8'()%u3.~4py;.Sxk՗fSobѤ̡ 萯 (gs˙YzC lp@daLYnk{f1vnK\YL:K) *K&,ρ~gmR/KdQ=WчCT\Ks238vp#Ib-c>P@a&h%Fos~"s"Am1L#,D𘾒`do&fqQA4I{ē$*@Uڍ8qK[-j z mtq+0flHg9pL )݄v`c>#<х}@p%ncџi"T1+u.+d^*P1n}y#SL9G_eu=݋1}aD>X6:[;YzOОIwl;AHxرQ-r ӇYi3Lt^20E3znsL0i[rvwNc}7\Tj|ٽ ǥ?2S!2ƙ]#fK^BO1,KJ}-W傰xJ1 秴/i 0Y-}3-(h-N_.W!ZU0UҎ(s,50u3(ryl k? ; {,AؤyW_>wij .k hNҜe8/ܞDvҷ/ C6 e1h/T2n!0_ޑj"*ܗ*-Tfx+`-7D.w*_Ϫߤ12ޥ9ͶOy 89yv &&q4b"wR%Lm_7U(2  2F̺AvT8ZT`)92ֶ̠w 7r].XPm79A3"~浘 }(<#['M X-̙U3Q^дP Sh9>m|])5JhTuIPY-& s49ΦLŲ yi/c%C}fZzz2_K=cu7Eyֽ1Ms;&,[UQl-o%T؆ ;J`'0pԾ:Jke{TJ;s`5(<] J ߈^wV%<{\ʧG \2|Jo%f(c~&r,W5Oiǘ`M Ûo%h !pA(`1 (CEch,_i5Lc8O*Q`M B 2BW(Uz$0&w˳` 8 k3EH\u1̫W FڎT蟑ƫ76Bf~4kq5ƿmX4jR`)rU&Kd5_hMlalLD&~pr$zj8g%z Me\eFFiӏFopz03]3ǥF %PJi/^s|"4Q.bb.1V1j1rCzЍ5g)}a'I1ݧ[L0 `T,};jf#; *uC*5`ORܑuҥ, 5X(s(1}Kg@QPSL/\Muxj%fbtnKჸktXQaW `)!_ 'e@%#6pfd,'w-"* uIpaMv*rf.9"eB5ǰu! _J+9^&FS̽4>/?J>Y|jjcY(pMosuj˴"<: }BzMO1ǯ2#؏} <z&Sy(VJ踄N%WWĪg!JMs9y#pplЕ¿4dǙm۴\Kc)xU@(F>C\xZjc2AcW-t3aќG.9EW 5 3bi2rܻTeeЗJXBU60"Kݱ`?/7>҈"1sZu{nb wipt{ʑ1Nc*Ѡ/rfE=b^950 ]Y* pq@}e${"QI4cw#~ص~7rfQeoDNefjԫ~!cN.fp_F%W9fs*gʢ@:Mn Ö9>!Zi_AwsQJ3̊Cz0Lquwc$ aԮ '%̹ ֮Q` XLjJ?;1)rzX_2^&&aRu#hwacΌD,%Ĭ-aB;-L Ś#E"d^gmeu"Ըe[M'0uVBb& (Oe|&ԮRW-~7%M,;8`:pJgH:8\ L5u Hu5ƒGJ+vk{RbQK{eCw@^(Ꙧ9D}e&ۇg9ɂ:!G0)f}.{C tq.4@0g zF0f;.C`Qn7:FRʲl ` ΄]Mb--2Hx"NyaUѬq3pwCi~!fsG63E{ť="[~AzNO5D 8*ݟ cKs=<Hi L_ڗ >`Z\ 90Q.C<AN8 4@rcw_lu,>{?M"򹒍x ͬJ2a3̵,Û,S"YmJQ+3SҽN`9ԋ1hz*i2fxf(&ebpT?V X>f/<]j1^#JFGBmn1`.U #k *?Pmx<gH7C ʷj26_#3D_KF8f#cҨ'hdI^TJb1 v&&Z͕ ip5;tPTXqslFi#9jg̨w&& d{N!sewk~_$ Ji#YrPUb;f"/Kc9i z5Z=<55ʢl @|,3*>铄,9L$! ϡkѿ]>5˛Hϣ~YjQ1T?uۊdڹ2^͗bc"S''dNMxA͹ _hP|qEcPlT jϰe!.-;yҭi ]r\Acۜ 5g&Suh>uc3}jvBb`.zi G702gP̪bY/=QLh0 d:KkY|3cI!\j+2,GXvc$!8^J:A^3:B5DrK<2=BPXJC8RрIoG'P eep]y _#9=C߬2F 6i J.g/Emr>:=(ff,tZ,C3ZoE)I@~4@fHĢOX8|DBɾrDe_X9 7! CC}>"TR@ Yߢ\KĪ7d73}bw>YFRS*(=sa}a8lje}XR`7M9/Ҩ_yd..k d֘ W^0,%J :_XY`C/A+Sp34#Bimeqś*醥0yk:53b* ǘ=Jv2GieR$\QS}c(ێ,`)ŸH<@nJV(.sA4u7٣B\oLs*THzWTR\3} Lښh|]hk,4*k>hNg EKzi~Ie@W@/Ó@`gcѴJL ~\lZmm[򩢧91;s;u(-re^]18"WA,oi%·lF+zv\T,J0I>JNJc9%WZ=22*ehZE=AUxQɿi}Y\E!$վT'DycmpVly3( FKt40bS<:* 535 ]~[:8=>2Lec^ԩY|76^)1u/ "WT*.UI% o3 rɛ9f~Rnl6̪-;N{6&-Q>%t59 =SD} =35aAy5*Bh+mX7q/.:S8 n[9oPw+טp)`]_3c7)'9әUܰWŌh!f&G"^L2ZhДMZD:y!:?4Z[{gK~9 v>O%7|K_XGYYLCO}X=e*!1AQaq 0@P?/TR ҿ}B.\ ./B.\r.\HAGqcYKH:8Z- ^ r˗/+.\peƢtr/~\aU@˗t(0Eȸ.C \(HL :?rѹr˗`˗\ yʉ 8?ĹqK?}<=1[3=P@:J333a!/_\r_K.__a6 uG=02/aHtFTRt*S:$r˗*ErTJ+ tW򨒥tN+RJRQb躃^eAX._*T}oYR W&[`UiQCfU|dNL#Ѓܹ}.\}_}/*J\qbqܸ *U[]ZS]@5T*TAper˃.?Q%tu ~@6&B1s_n\Yrˋ/(zBTI_en-q!c ҄_*T\/*TR}n\}n\Yrآ+miHrM%JTQ%u*.qt#lhtCۡab=0ƒK#$u\2չrοJ+/qa O)D8f՟~~%uRu.\} _CsGAp /u]rUꌾ K.\Zҥtj$a0^J`Dfaf#% ;ch[$]#|oM*!P%J/lJJ+e1_ٔʘrԯ}.\r\}*T+ + l|B涞 2#ԓ.5io_edͶYr˗JRq ˗._\QǢ e"G>BQ(*$p`˗.}C*;.\r\}jWa:nΠbi{x* +u/K -(,wF* ވLڮMsX[n\r.\rR'f/6XvkLJ< n㺪eOF A* M\a2X\uV+d4U!"`w2yFXZLPr .CGt%n;]*B `[ekIܴ(䟿撿rӹ0z;T0Q8HTAi,splXUo+L`Bj|ےpӎ^vAUTUr@ ݩxF- ҉6X`JVt*422tr˗_r J*_NB|gh6 fc ANs%$5& 2]FE\`awt$K.`=//]W{rXIPHͰ]/l h4גBlHƱ#߿ig~0)#Q^B}~/1~isX(ϘK? O)׼ǩœ| F":_*W0e9꧜ف!NsSUKB:0 !JoRv00B#< dSxKY/d`y Ц^‹c^/ e88)Ef!PӃ{0I9!npHW .,y贝0rǟ5r` P{ioPw8B4)ōj*k+LvS2riʆT =o3#Vf ;+ODA, B!n=Ņxq9MBϓ=cf%n7-o%[*ϙV Ru}@+E?\rѹUnTJDK1V9F$yQ! ՕbdaR8+V-)9KHHW>yuhw$%5˗._r.\W*\+}vEzd(l0(LZ>_T0A r|m,%Zd:Jk#s{|22%baizIf; R[*r9>0m5V򚔆C~f YuӮ 7 BhrԿ.\rɨof);`S# " X' 1.Xq ]S!qr#?SdHrX^ ̏:5QtuS&Gi/v/99IsXr?/B082Y_Әjg?Ws[O*j]460T/:=e4XX-yJIv쵨<̮r I<1K˿}wLx)P!osAոm;:QPJ)^׵6OD*& $NJ_E4^ ljRҹr$RPG"DzcUn W]JRU[J*7 q!k~JU7.ԫFv)ح@%괡_.;3yY7CՓ.J pS~KCβJݝ[ Bo_*TIRWST\z,<Ϳ;#i}=o+o"L*Y\ޞC-eeuIyW*j& cvsA-koG ZP&>.(14ODVwwwzV>+ @ ү?#P ZDHqV2ŔN!S-_C8xn$_w.\_wy`堨5SP=[]Uhߨ+%Iʺ!^d"-r׹R=Ve}t#TWM} Ǚj'kLPY1P1 #c{j0{B|l2s0e?Tf4ypwFoʵ 65D"_ '%. C@mcǍy~&mR{ 7J/H N_rr%J#/^zmm^4Lny%Q3''=8MAoklJFNפx-e˭+R[Ÿ.Uq 7.\"UmIP`̺֋UAZ&K8! |sr'ĻN**WG~0UxCoAMrR)Q 1ejleϭTZ\ L RԡV( %r7(򐥗FJk&ْ+l;nT "^6Al? QEB7i3NU z Jkk0ч㔙f}X=+E| =Cf⮾kC?5JӰnJM$q 77)RV9Db;g{3jø ^ M!{J&ST8b0|}n\KrkM ᙪg`N%fi)nX\Bh*~An?79^,雔? 2˵`f+ 5Pmu;[26aB[*z2,!MI2p9WBmc,tzWr˗/L[)+ZvsCڊٓ:EXJcjnݔCrw _L܌ؽH)ݧ=@;pU/%QvS98㜭q?wrSO8L]aY#;wѥKiK)c7)c@L"/[1JXP`h[y!EboeZqO{C#\_._/(4rRJ3ʸ"9b5De]l"I))?v2ª#bu+'E`⇵k{ݒ)ǿ`BW9\%V, ݕajk*O*WQ̹D׶:G{D|Lcx| |Z u;yϠQ)2❘V0Z%>' ¥={9 J^rl!,!߸2, JN-`!b`D[QYvcf`2`)q77gSjB6>!ݼk˗/r%]*k#rf7ӈ4$57,`B4#*e)G?,1̺"ިʇSk-tTݨX hEs%%==u<8c;y$Iڢ_O37`|& *u}HTj;?bielU<dHcC,sD$&651ah-`ERJjXh` 2_D}Zu> Ha# ʸƔ6?}ʘG$KKK< r,1 r^2 1â!:^qm̗zi~!ME{=OVHv2Y._}oQ2T66R^}H?~lEk9S }eƕ=O If¢0bXb7sv<.\zy"C5olLD\!6 Kr}o\r+øj&ʣbxZr66.0h#M`킣UNQ,9 7ZEZhri-,QU-_!b_r~LEN% Y8Vˢ\˗/w-eD dv>'iዀ6"C=/SP3Co?ք׾n6'{A*ntf.ܼfg[h4ݧ?n豎!}X4Z!)J7fdg3pc+}ށTN8M{d0n䲂csΧm>"[Sߊ.ϧw r˗._J7/tPiI_ ɦxc d5c0O5Jk$BVe!M[FwׄX1 bCzeӫ@څa pd瑗y.pT>Q9H˓u}ru/jW}.\˗/_[k r ÿc3d0EoUKh0֯f*|b:neоY ʚQMN#ZbJ||b#1!b#IYb8a&£0Uo!J^7zG+"+B1vP/Sʌ_JVRY~S+vy!TiBɸ|[2%Ɏ^ kJ;[C;pTX:ZWbam4ps}53c2g[xh0(bP+g>f~#j3m Y2BT1Wous<L4~Xu *~be˗/\"i&)㝻9_k'e3l-a8/ A._^,&wRHϘ+ z3b@LTz&^G{jig鸎ځM/o+3 ԳRrd4BM :nI++Њ+~(D,)\Gn<:e1w8~f7\2}La_bm5 U8#22OUM=хJ*A.U{\+-ێ5L?.L9mJ0TJw?WՍ]^UM^Xy{6(w," Ev ;QB|`X7 ֘|{JzW|2W.\r ev~ }?|:Vb<8}~*)q Rӽivj $2pTh @}e0w~=Ȥso!SyvCq~? ," v{':#&jr Q}3c6 6'j-MرSJR&tt<^RT>gץ -GDqKƭЪqUqy !pʏ"ݱk{Q5,?f~茗U]߃xbݯ!T U?uL7LI!n$ϯw/u@sɳFpb:(ٜ&v<-!Ji5]ahj|NpqG7īf-gzWXp.FX}TD嵍/\< lwA-R]ц7NX- i>%tB!rls%;.rRJ޵*_|U$WoJ])yM3cOi8BG &)t"J6K* ^pk$%+Px}Pp+ T&IQpς ئ$c+i v0Ơ.܌bW!Zq4y!YrC"b6VHJsv\?BG3v<6b ؀g!|0GXɹ&\  C?8drSl͓fGo$e)cZ5'ҩO M[RRw3ȳ+x7e8EsaqUeFEApJE$Ko }o$z*hsk|gs(J.f!E ὏ `,yC}J"ӤKxNA.=]мɦTӲv34=(+ T1k)L`XR* (+[_c3%UJ][%s+?ځ t(4MɬnMe=̻@a@Ƽt T's>F½ɞ?L.U}FE[%y8T NrDB QH @m$ +xȕZ3@f"3 &11T31&tX#ζ4d 5/C"i UKɖ/0P_{k _o,8y^1nx˲1f,u+VDt5߀)C@<:g`pBVicАѷ]ku._lwe[""mƛȝcpg[}(S`ԯn&N3ɃFgusf#0eqY 0 NnuƬ^Y9 P( lL@N Өy8M<8pJMn 036S4\9u-g CWkU˗._KЮ͙0mCE %ak+>M]1~bs,vCΎ dx=8LZ00ො^o |=تUDϴ^)7V\^Sұm (> bjŽ3 1k'#Y2'FNQP9P'?&zԩ_.=YkіU#s_H&L(szf3ty5`'Qs4$4ld|cU+w F1Qq3ev0KȌn y ZjF>X{ X5EuƠ/wHnͷK7%$U33U|f6cPaM{ƹn)7Vþ+/m`3N tݚs~ N`?*`rU'(Y.Ԥ1#،aYGm) X%,j*v~ێNQ{[W(!| Ǭ Co5W1Q3HsX<]AgT6?K*OOWm!23ow=NB/CR[%L_ aB˖K",Dl4oX}Ec{+NC_ <}#цH22ҊPB EW )X 1b X- XD p3v"adv%j ¹ca-Kޣl;Wg/ F/Y&Wj+8lßlq2N*YN0_7‚lՙ> ͋!&צ,[L R>Pq%I/P'ǤXc0I?셞*/aXA PŶ im>J4PdZŔpOP[,߄Y@+UeeIYbSukQ3`e#Cp4ªddcMU2VKa.Wc Ԧg]7Byxo>=h~6~|j#W%.15Uo_㾗/꿃SWt=_/10)tx ˥e?T ^~FE b ž'.lT<69հVDhoL4nk_-Id`66s^t+ )Z4i 5`[dޠ~Ț[jA1uNTSBhƫs1/&cSMiLpKxqV>+aRp!/?bA6ʬh [1gNDZg?_V5N4jpq;|E=WR F_'/g_1 Vo\Ꮏ&W7J '-UhTAC/"FemyBdMe®3p/Zb?Qn6a@$2Nl8#@9le#.!9pzPXIS +q*z4kjs?8.Rv0.Pa]438gI@8 mfh<4T$݈^/A(/mmyTXmeI{KfnԗUf%aܐ[-N*YK c'x녮gljbqw`wr *C[cpɗ7lӫy X0̉oR^U]2 k8[aOTk./ByBllNDǢ zr힇_ORkǘY,J;MQ*˗6S 4nɥbR0K];*y<b,WQ36 ]=t|v `ÃMxC Ac@J3{UԢStcU 9=gT9S 2I?C2]ciiBhFfnb[bml65rexLULY>8(j.l\1UZDsue ,MkEBƞU_%kbvqQ&j^,y82ZFh"-d N`0;lmr wREE0k`, b8:Z%ĻPklN;c+8e_[wc8ߗe;AsGvW඲_dG¿~12[ǨZudҥ}]+p؏@ 0j_cVgٙc:W}XF6W JSpߎ*[Tp*RKr܊%xnʐ,N3_b| D4 Xp C" \iż FypMd&Yj` q4t%*ʇp_`j9Xv-FQlee~ tlbCXZL)DҳErj-<8\N&9cx`51F\YcWGtn_5ÕL+JB;aB hdI|vJHgjbQDG9ya`pfzFԿt 5Zu,4Ŭ5z׹Ah!Bj)V4h$vn+%L2grI(Ҷcɗ& 9sPagI{@T)(xuZj'8 uݩ{@XBȮh9HX ^E k0,- `J?-R#1FU<{U'h4@ x@̢ͫ>(s {Q= Ѻ qIW`RgRPR эoe4GMQ«k:iݟ0A@!\mB/ٍEaEFy&]}7 fMxaBw/9_-ƗOy mf*gB'Nj#/rղ&e0`*#bz^K Ib}(ow rH y\RІfҲ0m KTFRx‡vfPw}60he Wn IJaE1Klp*6?K@ݷ4'Bt )DNOnvBrPxizI WEoq3_;edx旒3Yj^NVvޛ:Ra34鴅Ijͮ$M[WX{"7堂W;Ɓ`8X@+eBPbOk֪hKuhYWʦX[0X+u)\ؼ*˭AbRႋ78#~ H19r\jk_eheB[4LD9F(KYnuĽC燹Eu`m?ilpt_vT`L_ ewXAXq$ե>X*v=H ,HU5pXRW\]2SD#BXt)صr*3Gyc_/e]z^a_)A>)1MATi&*-ʋdٞ[< ׅѦ0 3^EIP21|\ Mבw2xܸm j~EcwKu8D \&<%.-2z4(F^ ^"ʽT@Rv!!m9~g;n-YQq+ U:ז&ZY#T;1KE3ZOoGیO,C~~;_^o4D'LJ%ƈ@C1EH_^C߃hN܁i}.b_P5DEKϙA8DYMiZ̪ruX@CIZzKds X.Ȳ1峼m1L-n YE(k+P\Ns` g5* whYfa}Rռ9,  o^m|,CTc4B*۫?@ qC^~+pbA1X[ "98z6w u ט[39:{wB<,_>ŦNx8}3F{oL}:φʳ)| .HA/*%)[Q^gWjZ(Ⳙd6^9dEٶx ?8Pq~nYH54n!7Z/,%O J:vZkl]=einRVJ%^V5I, f)I! [  Y.aC"cuF%+ڥUi4NDcsPG{9*YAv9p"` ~3)$L~tB֒kno0缩-Ear =t Ҹgh n g 2:*Urb#IG'r ,b_;JSP"#PET`5ⸯ)2,/cYc/L3h@P _r3z>5b]XXW֢ڣ`g#RF@Xp ԡanԘ!U@b--Ӧ̀A򈣹c0ѷ@p9WBAF!k)"Få۟rK.K$jŀvVJ#] n"3sD*̠74Ns) 蔭SWd$o <Կ vJn{1Er_Ob 2vCcp{V".yb_[`j0ૂ9fOӦ7h+ǔ{Lr dlu˵>l|&<1;Sa2`+54qBn|XmVë;QjsX @LSVDolJ5}a\=x͐x?.ގa.ʍ^fIR-E* gf`uD0B` ."Oz(K֭P#$雄R.+W>e7]-O-*PY)36\(\J:=(sr*"3p."rTw)6`F1r /Oirso=ATډ)wOhP_ aevPN`՛ٍXچÑ S^, i@j ;ucgDV ,3 Qp=Owq`,s$.42? G"vƍRryʖS]$DWQ0ȞA`Bn{z$Xza[Ь), L{q XE/3F2c ^'g_$շL(fjw nf)lD b#~e}U lgdm2W Eh\ybB[VD.KeoK(X ̝)/hb6Xskx_1Uu&4TbXUwtx&\Lr o9 jɄ"zk j2 4AAZr鵹!#'S08mM׉)ŵUǡ!)nO1-n\5(ܟTG>TZ\czTv 0@W1 @0mRvRtdJܼR@F2"54BA6(gLkBiNfRQݼ*0<,805 g>=2R/m/5Ev7;"79n 32 %5Щ3Qƻ ȿ "WյGU QSN-·.{ʞm.WjN'Ԍ,(ڰ`Q%,.@|B O[igOx,(cQs*8!A@!Z\"ɲd vvM(hM#$=Stϑ׷8cZvF#SOLِb!: U|P*VZb֡O+SK/cPx r {/"ٽc30a,KTBf{|Ӵ3Cee\[a0ivQ0PZl3\ҳFc Pg VJ.`Uyq=xu+46\h+ m{]xϰf@>#v㰖)^V.1I퀘 [XٖuZ)`&l{٪9kGA(Uut@]T+y_*\p=fZS*X~p܅m9m* u3oԷ+m!Ig7L_buRXj}Pϸ's7 b ObK#~b-(b\sLD, dҏtfR/;ui%^qb to!PggkXAScNC}ojHb1:fKF qN?.e? qPi|v" &bKq tf"0b]>#V.QpswMcz,@[~b~Q骸U&6 [!+/}azHe2f-K8q1N֪UNSe.,7pDh>z%w497a*Ulmh"sb k75{bP]Q'Ee5wO+uUDwfljE0[w!,чɘY+[؊A}/~]hj?eAgQ<35V' ;o/,lEe. Q6pY2 X 7*S;.+־ɚAՌO.YV\3^<#;(F奱O~Q򧐝vX׳*1v0# M)FhFfDfY~߷NGi'AKq 8Ɛl}V;B&񕯍"D(Ͳ|BEN އ/t$e[CvdCL MYmƎ.TWp =xүew@c%h̨UJ5@Ҧ)pneYJ0P-"aq`7oi,!bZ+q( y9Y̻q8R e8I46eY"[RsHhز4A…o^p^7ܢrg2ݟ\;.ị% l%B`QyG\F[[\% Ơ ^8DUzUl*D5'1EW y;p56b( :7v~(MmSVn`:VB+l"o-;̸ՋL:D, fw~rF#: ߴbΘ%&ILdJq \4m.qv*ٵcDW,3,ᭅFBh@f y7Vr1-qU@!yWn-ET%hY6S2ĭR(Kl.8n4 'l#ԸF.c>cVhj#( 9v>nS(ޮ+ L>B,6:Uj,LS^@fP֕ y,he*5dȇvQbr#SAu0Z{̿ĭLV(6/zeо%r8r4#-%Rsi̳<_/CY2 >ks28{K"\1l^Ɲ&b|i!X\H`j+,B >a* l׻.pJr@-¥Uo-SXR7[d3b5CXams2}43اDF2𜟨KwEƍ/Z1Nd2n'޻NTd|Mx)?fm][~ɗv% Hߒ Ar‡1iмX4X&ʓA~.Z.GI^v|BUɘ_4Kڲ,!A;( (`Sd+GuWtq rZSW5UCMRPXL1m8|@g8̡tlm,]ʪe.4M1}v2rITĭ9~PH߆qdhFܙ7M@yUanEE1lZZ0Pq@uK^W gWA1gx-S%n}Y" "3;'0h[Co-("@}b_mANvNo࿹_wCINvGL슕h?/v|~ S~?a-XҲ+?0TZFfN/E?r1Jⱏ*{ؽ1.U.0s*xw|ᘤ$~I&]C=K0]'ܴ 9}x2i4Xd<&Ƞ6)|d3c .&N{\UԶ6]V aшPA]&ͭZsSg򷃛2*M%^M&u 7bV@/rQMfDQÇV1q8"Emw+_{&$J+;@4gO̲ ˳߁>D/ &Z;GVV^m)|R5H&6=`~ѨnYdzR`M".Eb]R}EBoo`Z&Jx ߙfj5=E" | !Y3&p ι"$g;˪$D4,5M]HJ&X`6,FTE ]+CYV]7Y]a .lͱE 4#1b3 h],tby bpX%%su[f Qnh&Q|D \HoA;`4؇!7AnKa3guBpL(o}K'Wq F \PK$̬qIN},?07)-iܳq5 m2Y (#k|gXR'?#QBo Հ!m}@.˚Arr%-]Y<ȋz&L&{[ÿ2zLc : 3-:4/}iwPch#|Vh|ƹ5rGwmf:w2RL+QqnY4شuD Vv Wj1򺶧kAR+egb*ཏK÷7@4%1M]%T%VX@$l{fvsօ ^W9~V{%S$<"; #6_=΄w}RAbV*bGSR\c4;Lf%DqKswᘀKsMF;BGt뗣 2*qVfh6_lr+$GDwv_'<{)cy9qpV\Uj=ʙlRZA"Φs_;#Hbe&!%> Pԡ!4xҔ”_DTÚnT E]7W%"휆Tv.ͿE€8)e*]{FexĶedTƝFH[Lbv @tTC|Z\pJaAVjZ;cT*)n_!%ў26Θow&f,o `,Z8+ g S78n+$.L/"k}{ Jah*Q~q7|ef+ł1Ʉ2[$c,eAiZhU}$s,G/ TYj"AbweCB̓=ux]Cl&l|4ZrPX45ah  y5`=;9e 4A ئ`yk&XQc C5M0ԳA!o*!0e68GLb` –/(\U˥%b'f bVDI>*)|2C5q!/4=[LH6%i!abEVjU2D~X/UQz>Pܾs6*bes XF ኹJ>lb8鋯A:'"xS!MT%(WB {DAn7oy\GGZ!d}Bh %A*(QG{j:d n -,$f [Bqm)"Lh UP5X[. ~+ 3׮ oaߕhTL,E"c@U]h,נcKpro2t[&y3gzK}F^$mUj1}#wcU1˿1Ífo'VdzIH[tL)ipN9Z*dآiZeQxã'fgyO] jRq To(Xٖ`2)⩑1cx< ٘z0A H򙋖g*C_A,(7!@0@[0I&уTVtNnWN ٘,.'m_*un֠q-%j6f)R ^{K+UF6T/q>6QVeUq3-D%VW[weoUM7ž#f@UZ 5(/$ei+loqi Ւ֮i5J;a3VŸW*[ZUPH8&;$4%a|lq@&oD8@oo/.R.^,?WIBgeЗ< 򦒺NT=2c!ڲ@?XcK xaV]> Lb}SjI4q9LRan}(:Ȍdy1Q0)뙈c7yn*FQ[``mf5{ &hes3=j]RYwjR)4QT*WiVhSl9bʁXj! fkLJ0;wKnT,hyBk>heWK)7=<Wjp*9 eXj7r|aPzv5vq{tS<@*!E2P ^pA6QIGgYvHKxgf!nw+LDVdWzdw ֗=HK0W^ yYww P1߷UKGmoiYNe-=n9sEJxǖ`97'NG EU8ݙƕe C 1J-pDIh%Z x?'a97}O64@tLR|G&theԔ B("d&a.Hee.q~h [0>FV/x -mt@4Z)dEY[fc?2LSASM )6ALU#$sNPZx9qnŸ4#c 4@wt0_JؓU;18#[ SFVXcyNM;*)*̷KGvA "0Kҭ,J"xӏ(jaYŘ7+\ ɔLQa2ih ;TstTD丘 Gf@{Љ?r zVفQ9n_׆v)wڋXaS|۽],q|E0!:RS= Zd/89^+kb uDWl)v8 Af{4(Yyn̰䯍{ {Z6DkRQ@  C^&jD!6q~ _@zH|FZ ՗0Qq{I|"Pz-AC6L-D)4spq`b0^c Kv,(U|EAnp6xށ\.c ^#(1TeLO%bR >JS 0eAH6ʄiWQ4;eTw}xD7 3;'%s~Ҟhܫx};&2}יnnљP+, qe)O0C men6Zl çDRT2|nʎg~ s~`/QUa_{Nߘ3 ADD] 5w `N AV(Ķi5NۻBO'~mt1(\BPM7uF!md ,rlآ^WF'v52PZ܈~'0ZV6P3,K">6[?b/s;vr^QK ZU;xT^LKg,n4/Ҋ(I9 V wC֠*Zp #O5zn@[`)w*K5͙nBK0k9̍5ey.~>b zqZC|Oٖg[3h |3n|Jpnr>ʝ?+*7VPLMb[Qݍ2,e ^ 7:$Di-I:{ڢRS`ʭݞd?]U/ Y8G+}٪Ke ɮPGI"ɭ `4Ɇn8`wlH3% l=V]$0B#N_c/aDĠS4J3z`WeCEwTb9|o1E/bw"v=q7:i.CCheEŰ('sMr֮4"`d{ogԣj7b kR@b/u0(f&ں7ĺ3wQ4y%,4_I[MKS#' K;#;a(:ebJs~WCIxVa]O7o8 Id +/۰'`nMO1I\> 79{Nu7@IPttn,4qW@UZ" v@{>c)u|MȽWI [N"#V>"AKS!vfzK8Cؗɦ[xBRaa5ŹLs`˖!PÝQK'AwCݧs&j)[Y}ٖ2O1jA%:*eKP^}sƎ* + =Rh(}"!>l Zw>e#Er+,Os|^RF A/-=$g,ݡ~1l40Bd)m'Aߚ1J,.kL>E' c~o o0\d{_$טd'\N f@U@{$X 8{'5?hcn5чJ>e/D{6U;fW9XG}[!q13a@,6W3whdy!fQiw*XEx_XfM A`̢\Y,qzc,}{&vndv˫ۂTļbŃ._E˗J2~^b8e203E@EA@.Y'&_]i< qy|a8z#6HRŜc#4/xPJyy7`1t=UCkaϸZpfDpG?A2$h(A5v67 NUocEUy{m%Mȗg0^<%"Ҹķ0UhUe;ZqqF$n}s9J(tV(a9\;I 7p:1vkYFmf:+w)N٥v/V+Lʿ3ATo&>IH&f誶*\sY;k[Yг1"& `Y{pK|EWe;%V4Z*Tۇ1b/"pA AKja q͌.j9U1[BG8#,d- sZLpt`oiU> )&Y9!.,RwRYPXC"FXlxln9۩3Y< je,e+6"v]۸6V>p#q7M|Z& M'i4xѭExq1PѵʉQ6hN&OeӦA"hd0ea1 mҎZk %j=Wt RR? G"b*Km~hW1/e9|sNnOZy UQV8_ʃQ['y$1,A98`rUX~܍@A,AAsYVjߘ7.i\L˩+e"HBhQh*{֫{/Yj*SM!dQzc:0ˌ9`~^ 56e&HVaX*uor;M*, hYi̻*0^a#ܫDފN: 8!x+k Xc*8>S0{\ Zô6.XP. B`sCZ?(ca K0K 1:ZE[.1,^;&:x*2{%; robTohV+g>zCNbmeawU+K0b8|=g*d4=ĨTRG~bj*) oAi0\EK 6"Tþ"l 4- vN>LA*{%ADXPDwao0Y}r0GȏZfw?Mܰ.iw.( S& 9UPo.sٜKo/><$UFx%071>F6KHq Dz\pC厭w% .*%`x8nұ,݌tTBext.rE.1vS UdA z4\k*LA.h{?IGDt)4XnBlĺvg},UܼKn̽^tgLnxJ9^3l"$aȁ LM/h;ʦz+%l5 ۫( ӵ8 z[.1uW8^ZoKswXKLb/ q"D= xD\b^}VWYL+dV̦h /p/,BDwTzo{!՝o苓f#kf࠱>ABl](ɨ' CfjhYi5aB A/1q )E(o2?Ɗ`{>6"Vdlt֮*x:Q`6dіZĿDW3z]#`4q*O䕝:i@Pr4xw-^+\9yA̴Y9&܉t +U_XPhq J dœ[_:Lo|!գ)kO4/2z0?!wO8o [>(jbT7/GcdGEc Md75!v BF<1,!*"3LtJK%NzBu OYG1bH{Kpeo%o a ʼney06&Lp5 hP^cXU{?1qLeÊ#}0[͑XWT<#+%K\SH0_I$UMҷAt#5<߆t >J=%SG#A>Jt*#m/D0O ހ~п ,W_P#H`.%-ۿL _+%7/*dZgYA~N|,H+3ƩO7~na0aWZZӱ>.6w@ TVm }BGDx%)dV4&0 f,4Khulpb\ӱ 3*Q0iUO([FO;NIED BII0_r1%l%o1v"09.!pkj4XRXpѝ|+6prŘn] n^R# U<!#(8Hiem - [N`J.T҉S" ROhk %8 u >)geQx`.q,qZ"i/e0>UqNJ\x @+rհnahG7yB!(D(̳-X'4f9[6;YP̦t35<]*%[ɇ]@nOD6#Nҽ^0yE^oh0`e;&-@yd(tx)1p'`R^E-5{Ga[_-9TեxL+m8ipV\rXqxE.ձwNupܶ9ycu)فR9:ҨMވj1Yj*!u]$\-l /£y\1i撬=Ls>Qiw`fT0dШimiX&e8TUv"( Eȯ#cpN,z0n2ZwYZP*A oga`@ Q/i -@蝪FZDM©_0 :\ΦuM\ E6V8ք GB@l|ah+Ȱ*Q'lE^fop] sYsnarX" CR%8h 䔥neIp3F0?0 hyv!^fji4eNK[x8Gj f%af/?c/ZK mW?K9A]!fvq-{h4(Q @+ZG嗟v\*,fEl^&8q[LP"rlj4 XZ;B"US l>).&. \P{)pfx2>/¬r/xx/F%Q_L|?!Fc|U_ n](N|B#P86Y蛁#agAEA18A)QxJGr.0T3W*̣]땊)*W IV]w"]Y .VS.9yT(հe3[ķc wTQ!|Nڌ\ZKxE :'v"ۊkUE3F\ g'uk,Q{45JᎾp*4J7rCe./5.a–-OlNF#+Ǹ*Ih+4{ 1%zhS<˛--,[9=S1q12˷`Hsc0S\ U}Y>X.Q)(7+5)Jw3eRkAv`s[@8weg\@5 -L@ o /1pV{Vrhde &Z b{.uu(Ec 72ؖdHg&4S-Ūyfd܊hhrܸw !ouZюoU2;`ٕX+rJRZ=Մُh6\@vąMψ:C0qIP"X9 5~.YT#DS_4\ :|8"OEs; Z*ٰ(G6gBPKߐ|{FdP3JI^ OxfeMܮG@oQ?vnR (cH ؐXm@~@Ǡ¶!EL7=VPUwx `/~1ZsL+F^* (t$SDKXwQ!aPM zŗvpj%=!h8%2FfzEiYBzO &bt hUñ#\+*d/+?nPap!N@F.ɖ{ a(%Ǚ B\b&t}gii[lG&6h<D;~.LӔ|dQ,;X4^kQl̉@5sXv0\#c!(mjYJB<76ŵ1U|. ZKffx3HD9) Icc.#H1e) ֡ܬ$]|O!x3r6c.m&88Hܗ+Dj@о&{0EQJiT8E QM/&g[oFO.[(jX$w$ݰ9:XMҸ!n%U-A@ ƒ6@~ |1H06T^ҎKGh ʦx~ݡ(]Z-Vbfod0'ZWlsC*4)8ahP#I%D\m=4 +>VM'ZHUFKwy](BQk - .2ϔT axUvz.YWX9ʨsacnC@385)_#ꇡNB0]Aġ,=&40 `'qolø ~+ R-]Q*OG4)!⢓B`= JwSU}پ,Xbcn\Me7'VL)bōm!>,ߊ_TA99P)Uce\STF=KpA FB,Xk[.qfgҟqݸjj: >b2m& [;z,0a;b D?3xhX7bʗ%p4{;#._15߷.T;oQq"'kaP^HװE#]F]V=t[)l=%e 3qnz/4; Uh JtFĺS[fV*,XF3Z@Rk4!ayr?˨9.ha a Jހb7<_اH ,uQ2y ;֭C\wz!106,F{y!ώP7D*w+bzIrOܵqK}6dDLO %,Sz')a SK2+%Ĥ7 *%5AЇ k EP8hdR[8-5Ƃ#d:dإJ卛{:[s{O":(d+ R]d] %Up7(EGs]#dǁ%7B›Hdp/w_ kjnY N1򂶷xH׶0 ɿy.W^y px{>!֤mmzT.wuM©!r xw^ݒKUT.5V0Ʌ aq w%Fyfj 7mK Kt'3UL.5,ɿ~mbĜMͳNp=1+f5Chbw\LȆ%$RRM#..9R炇?E!Db(;ɛٹ+x~ѱ&f#׉IND40JD[|/ /N V5T>%4k&]YcnR\,2p+QcK2<nW,̡RȬI6ylu$ |DmfK)-МSeA_æi;?iq&Vjterxc]q,YP\K`'Ld"&l~N +9uCaRmލR&oFpTFW١Z`]۟$uen"e~MYu}@{PmB\:B5( SDgR..)soc`"fy)^P!P:f3%`^J1jwHQ@*a _snpl>eCT S+'{.V U(1PXl@2AZ-|9yiW #O %w3k6afjJ;cM0yJ>FlQAPVS-賠86ja@$Z7eKf:?!k * xB cs̽UJ%+d|M,@ 8{scmÈW-65 KufrԸ K"(!^y?FeW@`lf~zYSg[T3f7@nez]C.0@]r,vX*w2 fj+tUC1^x{Ǹb;OB qG,ޣDEzj-`&lwءy ?gAĴ Cp゠#l 7g1{XU0.m7;0U\.RβUU0 [[Fp\"9@QqAlLveL兘-a+X ~O$Kdǖ:n!WhL؈-֏ܻ/\qR͌ÌZ8}I-jƘ`eK07!% /UɚnT",o(p~P-г&.~cJ#"@&_, ̂°ަe FT 9L o2p 2P+d`hg{vo_1-~cO1TOw K,L栂ޕ&D@u.٬ƊU.}ȚV4dU[pJ|ҖU dX¨̧Yȷ-UhDvѳaR0Y%obQT^pGȈ-K(Jdv -` ûw+D^ NϕR!M_IWGRЂ{ M%jNkFR[;G3 PwZ +/aEu>E#dyVf xXov7$%)ڹG)0zj#AjY mxFū D.2#"vp/p6=s(ܮQ悆X`m7XJȇgq`Ӄmka ̶M)RB`[ &-%kTӪ10q6 0z+#+f#A|$o%C?؏TWLXx؎TY6|Ԫa0@HH0Td ZVeArQ|m"4 >me,5; +DB(lR[̯$ P )BCD\`Mwa97b(&3h[tԁeQx(\$b#Bs 095BEуnWS8)|D=tЕPKh]-MXP2f#Rp:V's0vx<&=uiو# mm  s7M16` KdV(`ef<^ҸL[\"]1ޠ|0<^UycG$9?bˈXrbjhx @RsWKޭ6ЃW,pWf|j KU;\Y^a! M(.Xc*86 er+U'F_<]=q\30C Ҍ9.,Bs 2R͌J4 ǵHÃFYPGÌ3^̗`z3n l I4m̃v7Ohdr5* E& 5`_Mie3%hɉp1Z(k@*E'^<+uɉ]pCL[Y%TlDUt ;V']kp0]& \D(:&iu瘿Hmy/%^& ei-V,))> Z?e[4!ݓb)" W{+eӕ5y2,w,W9zK/B{f­|6 F&p+z{P鵗Rl<3{z*Ux+qa|"ysBu@zYD,9^K5K}P-艔K>f躋y/#2Gdqn` ^ )Kaǔ) \WB-90 ys2[Lfc|H*̭@IK95!t'4L2EM!21 kj92 @L̕ͅv0ӄ11|UpQ79En`1,g'yx (K k!0ґ:ROҞ{Ѐ0md=jEdۮ1 B%j Utn]^cmԤL5,‹cl5Z muzZ wK7uX 1mBO+k0q6L7V` sNa=HC:a4BÁCݿeͿ)y-4F@ H9Y,ړ!|  ,ض\j`(Ja}NNQ t,@q]EBPF.ES-ҡFF4{1-GSIjfuQz|3#3j.Fc8z1hGst옩(.UU 3xc v%,&UxC +B6=ܾOd802›KnnAo}XgF͢cϽ/N?1R>-+u^ ȍxUnC`UQvCw;_pT-0|~ 85[r>V7Jm{>(Ÿ%DSfŨ~ Dq$@ ˂pG8eU&6 xcbC6Y%%%0p!mh+G@a-P2-=ڵ+Mvek,H!*gy3ʀ2r% 3^B6(wP= 4)G4TZEH3V<[A@#!@>)vxa'/cmJ(Pa8^c7}" ʯ+9[/P\@@#PV]QmObC)`ܡ'}PŏiQ'6;h4kY%̳1"![18eq`áYi.D>yFg.Z?aIu`}B_yeVA 7UKA9ؠΎuN.a! *iAM-*F LiĬvܵ~vm>NH`KeSFY3B*cN2F#sw˖䬹AeYZ R\KX{׬v$.k ʿ3Ef֦'W=0T_Kck^n-ZB0\RJ ReA%u5P ɫ ߃ kɹ_l m p,edgS{m{s ,hzki͡y-7͑ m+=)xSp{gG`XJcU9fhbL@4. ng\fgţl~&,&6E-n,&B LejQ Fy4TZ6_RR`t^5 4i棣}9鰘"O,f?LYA˜y]) ]+0gQBI FqU/]ыx0zL)%P3Ig̼.) 12W%\j~JٚK mZal٧a @jWC/71 L+eU,<L5dR,69ơ+Zn? rȌ.+)2CAR#;25< @;=1O67:Y"~5I%]8UċBk0ǥv&Wj8PXJ,68HY;U~SGJ~dꩤyEL֒T/yd ŰǴh18\Rf$Ӝ~V 4l֌*6é<}"u(c xavf ۹:%% %؏sf1#1!oZ_8\`T֮Xg&lC`ULP9MLFt}lk\@+Mʈ1x(K3b-&Ҕj6@`!QV.Xl4>Ax啇6URLD6r7KkԲM/u TDA/k6@Q5QY a*6Xg +nԠ">pK3Q.8qMl.*/G0O`jyߋF[W.<\Tqh8MHY#7]ŀi4"a;qG Nw;%F6FXSWuf1_ht+X9IzJNjS`H+meyb7 1^I_ Zns/ ;-2 Jlo.30.w=_5R(Wph袹L:/1_k6h-# &4@s?PF0R(s'"8NLq5TSHMʱV ᴄ Zv%8jxQ*E,(9EjhةH m7x'.L@lpZ`\Qa,Y,65k6g^ˤe`K>'.Vrfq LJ М6isV*}0Q;Eo)W̒jзm wJ-0%w?A tj7S$q^if.LF  Ma!0ۺOИtèXZ$)g v}m? *>e\Ee>3V>PU߂)v0]ַ0#L9WٌTBq[m_|{㢚Jȵ T[e 8VܬjR^ TF4 hdlcdp b[j^^%L7pzfQ>udAc~tPc3TA¯n{Q2q~ 9VK:T@aL/pL0,L:eo!* Jh.jR󽌤n@>%%%TA.23<Ŏ Vn?fHm1dSLüe^Ⱥ+p2(cظ4myaaZh^:CI䀛unr4$6֌;FXuBzc?3FǵyHr=6?*=Vd'## =1 JeB[oJ(Pji&ܥ[dFTyDP!:S:[Hp@t!?drߕJnʌÍ1=Qh'Q>VXj":ˇTXd@HfX Q7+!~:'J1Fd̞` )hӥ%* )fO  ,%j\-~Fzad3/KYEky'.˦4%\/.<U*4)enlX..>hip&Y@ɔ+TUƌqTńܭm xauyn8ͽ՚fƽRiO7cN <N\O*R\W剪6S^;p+G33FEb{YXU|ehG<" v(T¥1J]!w"81FjUN#-;́?U 2Ytw&#)` $I.@4\JhʔpVXN&Ռ!~ C MC}+
Linux 4gvps.4gvps.com 3.10.0-1127.18.2.vz7.163.46 #1 SMP Fri Nov 20 21:47:55 MSK 2020 x86_64
  SOFT : Apache PHP : 7.4.33
/proc/self/root/usr/share/mysql-test/r/
38.135.39.45

 
[ NAME ] [ SIZE ] [ PERM ] [ DATE ] [ ACT ]
+FILE +DIR
1st.result 0.472 KB -rw-r--r-- 2021-01-05 10:19 R E G D
alias.result 13.417 KB -rw-r--r-- 2021-01-05 10:19 R E G D
almost_full.result 1.112 KB -rw-r--r-- 2021-01-05 10:19 R E G D
alter_table-big.result 3.119 KB -rw-r--r-- 2021-01-05 10:19 R E G D
alter_table.result 108.406 KB -rw-r--r-- 2021-01-05 10:19 R E G D
analyze.result 2.207 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ansi.result 1.144 KB -rw-r--r-- 2021-01-05 10:19 R E G D
archive-big.result 0.602 KB -rw-r--r-- 2021-01-05 10:19 R E G D
archive.result 525.381 KB -rw-r--r-- 2021-01-05 10:19 R E G D
archive_bitfield.result 4.261 KB -rw-r--r-- 2021-01-05 10:19 R E G D
archive_debug.result 0.347 KB -rw-r--r-- 2021-01-05 10:19 R E G D
archive_gis.result 23.132 KB -rw-r--r-- 2021-01-05 10:19 R E G D
archive_no_symlink.result 0.861 KB -rw-r--r-- 2021-01-05 10:19 R E G D
archive_plugin.result 0.53 KB -rw-r--r-- 2021-01-05 10:19 R E G D
archive_symlink.result 2.068 KB -rw-r--r-- 2021-01-05 10:19 R E G D
audit_plugin.result 0.727 KB -rw-r--r-- 2021-01-05 10:19 R E G D
auth_rpl.result 1.846 KB -rw-r--r-- 2021-01-05 10:19 R E G D
auto_increment.result 11.723 KB -rw-r--r-- 2021-01-05 10:19 R E G D
backup.result 4.293 KB -rw-r--r-- 2021-01-05 10:19 R E G D
bench_count_distinct.result 0.451 KB -rw-r--r-- 2021-01-05 10:19 R E G D
big_test.require 0.017 KB -rw-r--r-- 2021-01-05 10:19 R E G D
bigint.result 20.723 KB -rw-r--r-- 2021-01-05 10:19 R E G D
binary.result 5.674 KB -rw-r--r-- 2021-01-05 10:19 R E G D
binary_to_hex.result 5.87 KB -rw-r--r-- 2021-01-05 10:19 R E G D
binlog_tx_isolation.result 1.707 KB -rw-r--r-- 2021-01-05 10:19 R E G D
blackhole.result 0.599 KB -rw-r--r-- 2021-01-05 10:19 R E G D
blackhole_plugin.result 0.558 KB -rw-r--r-- 2021-01-05 10:19 R E G D
bool.result 2.56 KB -rw-r--r-- 2021-01-05 10:19 R E G D
bootstrap.result 0.261 KB -rw-r--r-- 2021-01-05 10:19 R E G D
bug12427262.result 1.864 KB -rw-r--r-- 2021-01-05 10:19 R E G D
bug12969156.result 0.93 KB -rw-r--r-- 2021-01-05 10:19 R E G D
bug17076131.result 0.314 KB -rw-r--r-- 2021-01-05 10:19 R E G D
bug33509.result 2.306 KB -rw-r--r-- 2021-01-05 10:19 R E G D
bug39022.result 1.199 KB -rw-r--r-- 2021-01-05 10:19 R E G D
bug46080.result 0.653 KB -rw-r--r-- 2021-01-05 10:19 R E G D
bug46261.result 0.373 KB -rw-r--r-- 2021-01-05 10:19 R E G D
bug46760.result 1.259 KB -rw-r--r-- 2021-01-05 10:19 R E G D
bug47671.result 0.28 KB -rw-r--r-- 2021-01-05 10:19 R E G D
bug58669.result 0.469 KB -rw-r--r-- 2021-01-05 10:19 R E G D
bulk_replace.result 0.274 KB -rw-r--r-- 2021-01-05 10:19 R E G D
cache_innodb.result 5.419 KB -rw-r--r-- 2021-01-05 10:19 R E G D
case.result 10.062 KB -rw-r--r-- 2021-01-05 10:19 R E G D
case_insensitive_file_system.require 0.045 KB -rw-r--r-- 2021-01-05 10:19 R E G D
case_sensitive_file_system.require 0.046 KB -rw-r--r-- 2021-01-05 10:19 R E G D
cast.result 15.755 KB -rw-r--r-- 2021-01-05 10:19 R E G D
change_user.result 3.31 KB -rw-r--r-- 2021-01-05 10:19 R E G D
check.result 1.423 KB -rw-r--r-- 2021-01-05 10:19 R E G D
check_auto_permission.result 0.245 KB -rw-r--r-- 2021-01-05 10:19 R E G D
check_var_limit.require 0.008 KB -rw-r--r-- 2021-01-05 10:19 R E G D
client_xml.result 2.376 KB -rw-r--r-- 2021-01-05 10:19 R E G D
comment_column.result 140.568 KB -rw-r--r-- 2021-01-05 10:19 R E G D
comment_column2.result 355.679 KB -rw-r--r-- 2021-01-05 10:19 R E G D
comment_index.result 173.026 KB -rw-r--r-- 2021-01-05 10:19 R E G D
comment_table.result 28.718 KB -rw-r--r-- 2021-01-05 10:19 R E G D
comments.result 2.337 KB -rw-r--r-- 2021-01-05 10:19 R E G D
commit.result 13.321 KB -rw-r--r-- 2021-01-05 10:19 R E G D
commit_1innodb.result 19.194 KB -rw-r--r-- 2021-01-05 10:19 R E G D
compare.result 3.17 KB -rw-r--r-- 2021-01-05 10:19 R E G D
compress.result 56.502 KB -rw-r--r-- 2021-01-05 10:19 R E G D
concurrent_innodb_safelog.result 31.888 KB -rw-r--r-- 2021-01-05 10:19 R E G D
concurrent_innodb_unsafelog.result 31.614 KB -rw-r--r-- 2021-01-05 10:19 R E G D
connect.result 12.747 KB -rw-r--r-- 2021-01-05 10:19 R E G D
connect_debug.result 1.481 KB -rw-r--r-- 2021-01-05 10:19 R E G D
consistent_snapshot.result 1.144 KB -rw-r--r-- 2021-01-05 10:19 R E G D
constraints.result 2.551 KB -rw-r--r-- 2021-01-05 10:19 R E G D
count_distinct.result 7.89 KB -rw-r--r-- 2021-01-05 10:19 R E G D
count_distinct2.result 2.215 KB -rw-r--r-- 2021-01-05 10:19 R E G D
count_distinct3.result 0.271 KB -rw-r--r-- 2021-01-05 10:19 R E G D
create-big.result 7.604 KB -rw-r--r-- 2021-01-05 10:19 R E G D
create.result 147.088 KB -rw-r--r-- 2021-01-05 10:19 R E G D
create_not_windows.result 0.938 KB -rw-r--r-- 2021-01-05 10:19 R E G D
create_select_tmp.result 0.826 KB -rw-r--r-- 2021-01-05 10:19 R E G D
csv.result 58.878 KB -rw-r--r-- 2021-01-05 10:19 R E G D
csv_alter_table.result 1.168 KB -rw-r--r-- 2021-01-05 10:19 R E G D
csv_not_null.result 1.752 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_ascii.result 2.107 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_big5.result 33.848 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_binary.result 82.341 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_collate.result 13.504 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_cp1250_ch.result 21.882 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_cp1251.result 96.091 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_cp932.result 0.973 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_cp932_binlog_row.result 0.593 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_cp932_binlog_stm.result 251.22 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_create.result 3.12 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_errors.result 1.662 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_eucjpms.result 400.215 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_euckr.result 434.587 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_filename.result 0.316 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_filesystem.result 0.333 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_gb2312.result 33.291 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_gbk.result 49.631 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_gbk_binlog.result 0.632 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_hebrew.result 0.248 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_latin1.result 118.674 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_latin1_de.result 15.738 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_latin2.result 13.319 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_latin2_ch.result 25.112 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_ldml.result 28.05 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_like_range.result 80.895 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_many.result 42.672 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_mb.result 2.127 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_recoding.result 9.598 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_sjis.result 195.68 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_tis620.result 100.449 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_uca.result 154.97 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_ucs.result 142.403 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_ucs2_def.result 1.055 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_ujis.result 364.904 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_ujis_ucs2.result 548.586 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_utf16.result 44.957 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_utf16_def.result 0.267 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_utf16_uca.result 72.284 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_utf16le.result 50.536 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_utf32.result 48.046 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_utf32_uca.result 75.105 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_utf8.result 167.063 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_utf8mb4.result 80.382 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_utf8mb4_heap.result 72.209 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_utf8mb4_innodb.result 74.624 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_utf8mb4_myisam.result 74.628 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ctype_utf8mb4_uca.result 38.815 KB -rw-r--r-- 2021-01-05 10:19 R E G D
date_formats.result 24.959 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ddl_i18n_koi8r.result 113.334 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ddl_i18n_utf8.result 116.354 KB -rw-r--r-- 2021-01-05 10:19 R E G D
deadlock_innodb.result 2.354 KB -rw-r--r-- 2021-01-05 10:19 R E G D
debug_sync.result 11.854 KB -rw-r--r-- 2021-01-05 10:19 R E G D
debug_sync2.result 0.424 KB -rw-r--r-- 2021-01-05 10:19 R E G D
default.result 8.018 KB -rw-r--r-- 2021-01-05 10:19 R E G D
delayed.result 17.703 KB -rw-r--r-- 2021-01-05 10:19 R E G D
delete.result 15.996 KB -rw-r--r-- 2021-01-05 10:19 R E G D
deprecated_features.result 2.029 KB -rw-r--r-- 2021-01-05 10:19 R E G D
derived.result 78.604 KB -rw-r--r-- 2021-01-05 10:19 R E G D
dirty_close.result 0.337 KB -rw-r--r-- 2021-01-05 10:19 R E G D
disabled_replication.result 3.008 KB -rw-r--r-- 2021-01-05 10:19 R E G D
disconnect_on_expired_password_default.result 1.399 KB -rw-r--r-- 2021-01-05 10:19 R E G D
disconnect_on_expired_password_off.result 1.359 KB -rw-r--r-- 2021-01-05 10:19 R E G D
distinct.result 30.849 KB -rw-r--r-- 2021-01-05 10:19 R E G D
drop-no_root.result 0.443 KB -rw-r--r-- 2021-01-05 10:19 R E G D
drop.result 5.734 KB -rw-r--r-- 2021-01-05 10:19 R E G D
drop_debug.result 0.474 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ds_mrr-big.result 2.145 KB -rw-r--r-- 2021-01-05 10:19 R E G D
dynamic_tracing.result 0.794 KB -rw-r--r-- 2021-01-05 10:19 R E G D
empty_table.result 0.224 KB -rw-r--r-- 2021-01-05 10:19 R E G D
enable_cleartext_plugin.result 1.349 KB -rw-r--r-- 2021-01-05 10:19 R E G D
endspace.result 6.612 KB -rw-r--r-- 2021-01-05 10:19 R E G D
eq_range_idx_stat.result 4.024 KB -rw-r--r-- 2021-01-05 10:19 R E G D
error_simulation.result 3.229 KB -rw-r--r-- 2021-01-05 10:19 R E G D
errors.result 5.929 KB -rw-r--r-- 2021-01-05 10:19 R E G D
events_1.result 22.185 KB -rw-r--r-- 2021-01-05 10:19 R E G D
events_2.result 17.229 KB -rw-r--r-- 2021-01-05 10:19 R E G D
events_bugs.result 37.353 KB -rw-r--r-- 2021-01-05 10:19 R E G D
events_embedded.result 0.084 KB -rw-r--r-- 2021-01-05 10:19 R E G D
events_grant.result 10.332 KB -rw-r--r-- 2021-01-05 10:19 R E G D
events_logs_tests.result 2.369 KB -rw-r--r-- 2021-01-05 10:19 R E G D
events_microsec.result 0.791 KB -rw-r--r-- 2021-01-05 10:19 R E G D
events_restart.result 4.148 KB -rw-r--r-- 2021-01-05 10:19 R E G D
events_scheduling.result 3.111 KB -rw-r--r-- 2021-01-05 10:19 R E G D
events_stress.result 2.387 KB -rw-r--r-- 2021-01-05 10:19 R E G D
events_time_zone.result 5.401 KB -rw-r--r-- 2021-01-05 10:19 R E G D
events_trans.result 3.494 KB -rw-r--r-- 2021-01-05 10:19 R E G D
events_trans_notembedded.result 1.372 KB -rw-r--r-- 2021-01-05 10:19 R E G D
execution_constants.result 1.046 KB -rw-r--r-- 2021-01-05 10:19 R E G D
explain.result 28.334 KB -rw-r--r-- 2021-01-05 10:19 R E G D
explain_json_all.result 63.132 KB -rw-r--r-- 2021-01-05 10:19 R E G D
explain_json_none.result 64.698 KB -rw-r--r-- 2021-01-05 10:19 R E G D
file_contents.result 0.177 KB -rw-r--r-- 2021-01-05 10:19 R E G D
filesort_debug.result 2.793 KB -rw-r--r-- 2021-01-05 10:19 R E G D
fix_priv_tables.result 1.303 KB -rw-r--r-- 2021-01-05 10:19 R E G D
flush.result 13.751 KB -rw-r--r-- 2021-01-05 10:19 R E G D
flush2.result 0.861 KB -rw-r--r-- 2021-01-05 10:19 R E G D
flush_block_commit.result 1.47 KB -rw-r--r-- 2021-01-05 10:19 R E G D
flush_block_commit_notembedded.result 0.752 KB -rw-r--r-- 2021-01-05 10:19 R E G D
flush_read_lock.result 72.072 KB -rw-r--r-- 2021-01-05 10:19 R E G D
flush_read_lock_kill.result 1.121 KB -rw-r--r-- 2021-01-05 10:19 R E G D
flush_table.result 11.224 KB -rw-r--r-- 2021-01-05 10:19 R E G D
foreign_key.result 3.335 KB -rw-r--r-- 2021-01-05 10:19 R E G D
fulltext.result 28.717 KB -rw-r--r-- 2021-01-05 10:19 R E G D
fulltext2.result 7.545 KB -rw-r--r-- 2021-01-05 10:19 R E G D
fulltext3.result 0.527 KB -rw-r--r-- 2021-01-05 10:19 R E G D
fulltext_cache.result 2.674 KB -rw-r--r-- 2021-01-05 10:19 R E G D
fulltext_distinct.result 1.248 KB -rw-r--r-- 2021-01-05 10:19 R E G D
fulltext_left_join.result 4.002 KB -rw-r--r-- 2021-01-05 10:19 R E G D
fulltext_multi.result 0.748 KB -rw-r--r-- 2021-01-05 10:19 R E G D
fulltext_order_by.result 5.829 KB -rw-r--r-- 2021-01-05 10:19 R E G D
fulltext_plugin.result 0.224 KB -rw-r--r-- 2021-01-05 10:19 R E G D
fulltext_update.result 0.908 KB -rw-r--r-- 2021-01-05 10:19 R E G D
fulltext_var.result 1.3 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_aes.result 12.779 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_aes_cfb1.result 4.504 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_aes_cfb128.result 4.566 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_aes_cfb8.result 4.504 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_aes_misc.result 8.281 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_aes_ofb.result 4.473 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_analyse.result 19.011 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_compress.result 4.84 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_concat.result 4.029 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_crypt.result 4.374 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_date_add.result 3.623 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_default.result 1.193 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_des_encrypt.result 0.994 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_digest.result 121.479 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_encrypt.result 10.325 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_encrypt_nossl.result 4.213 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_encrypt_ucs2.result 0.747 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_equal.result 1.269 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_gconcat.result 48.525 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_group.result 54.636 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_group_innodb.result 5.119 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_group_innodb_16k.result 0.531 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_if.result 6.051 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_in_all.result 27.624 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_in_icp.result 27.263 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_in_icp_mrr.result 27.567 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_in_mrr.result 27.286 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_in_mrr_cost.result 27.006 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_in_none.result 26.958 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_isnull.result 0.808 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_like.result 4.451 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_math.result 28.063 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_misc.result 28.198 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_op.result 1.933 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_regexp.result 4.367 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_rollback.result 12.444 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_sapdb.result 12.376 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_set.result 8.508 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_str.result 157.745 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_str_debug.result 0.341 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_str_no_ps.result 1.065 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_system.result 2.626 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_test.result 13.442 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_time.result 67.367 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_timestamp.result 0.506 KB -rw-r--r-- 2021-01-05 10:19 R E G D
func_weight_string.result 3.438 KB -rw-r--r-- 2021-01-05 10:19 R E G D
function_defaults.result 109.227 KB -rw-r--r-- 2021-01-05 10:19 R E G D
function_defaults_notembedded.result 6.385 KB -rw-r--r-- 2021-01-05 10:19 R E G D
gcc296.result 0.516 KB -rw-r--r-- 2021-01-05 10:19 R E G D
get_diagnostics.result 24.962 KB -rw-r--r-- 2021-01-05 10:19 R E G D
gis-debug.result 16.127 KB -rw-r--r-- 2021-01-05 10:19 R E G D
gis-precise.result 28.338 KB -rw-r--r-- 2021-01-05 10:19 R E G D
gis-rt-precise.result 1.863 KB -rw-r--r-- 2021-01-05 10:19 R E G D
gis-rtree.result 78.355 KB -rw-r--r-- 2021-01-05 10:19 R E G D
gis.result 58.529 KB -rw-r--r-- 2021-01-05 10:19 R E G D
grant.result 95.951 KB -rw-r--r-- 2021-01-05 10:19 R E G D
grant2.result 31.124 KB -rw-r--r-- 2021-01-05 10:19 R E G D
grant3.result 7.147 KB -rw-r--r-- 2021-01-05 10:19 R E G D
grant4.result 8.854 KB -rw-r--r-- 2021-01-05 10:19 R E G D
grant_cache.result 5.615 KB -rw-r--r-- 2021-01-05 10:19 R E G D
grant_explain_non_select.result 9.504 KB -rw-r--r-- 2021-01-05 10:19 R E G D
grant_lowercase_fs.result 0.544 KB -rw-r--r-- 2021-01-05 10:19 R E G D
greedy_optimizer.result 592.802 KB -rw-r--r-- 2021-01-05 10:19 R E G D
greedy_search.result 12.423 KB -rw-r--r-- 2021-01-05 10:19 R E G D
group_by.result 84.602 KB -rw-r--r-- 2021-01-05 10:19 R E G D
group_min_max.result 115.333 KB -rw-r--r-- 2021-01-05 10:19 R E G D
group_min_max_innodb.result 17.521 KB -rw-r--r-- 2021-01-05 10:19 R E G D
handler_innodb.result 40.725 KB -rw-r--r-- 2021-01-05 10:19 R E G D
handler_myisam.result 44.62 KB -rw-r--r-- 2021-01-05 10:19 R E G D
handler_read_last.result 1.151 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_big5.require 0.077 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_binlog_format_mixed.require 0.039 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_binlog_format_row.require 0.037 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_binlog_format_statement.require 0.043 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_binlog_rows_query.require 0.052 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_compress.require 0.037 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_cp1250_ch.require 0.077 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_cp1251.require 0.082 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_cp866.require 0.08 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_cp932.require 0.081 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_crypt.require 0.034 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_debug.require 0.008 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_debug_sync.require 0.013 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_eucjpms.require 0.085 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_euckr.require 0.079 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_gb2312.require 0.082 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_gbk.require 0.076 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_geometry.require 0.037 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_koi8r.require 0.079 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_latin2_ch.require 0.076 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_local_infile.require 0.035 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_log_bin.require 0.03 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_met_timezone.require 0.042 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_moscow_leap_timezone.require 0.045 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_mysql_upgrade.result 0.021 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_ndb_extra.require 0.014 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_ndbapi_examples.require 0.019 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_nodebug.require 0.008 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_optimizer_switch.require 0.019 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_outfile.require 0.054 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_partition.require 0.041 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_perror.require 0.014 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_profiling.require 0.038 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_query_cache.require 0.04 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_sjis.require 0.079 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_ssl.require 0.032 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_ssl_is_yes_or_disabled_only.require 0.042 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_symlink.require 0.036 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_tis620.require 0.079 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_ucs2.require 0.078 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_ujis.require 0.079 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_utf16.require 0.08 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_utf32.require 0.08 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_utf8.require 0.078 KB -rw-r--r-- 2021-01-05 10:19 R E G D
have_utf8mb4.require 0.084 KB -rw-r--r-- 2021-01-05 10:19 R E G D
having.result 19.716 KB -rw-r--r-- 2021-01-05 10:19 R E G D
heap.result 20.864 KB -rw-r--r-- 2021-01-05 10:19 R E G D
heap_auto_increment.result 0.873 KB -rw-r--r-- 2021-01-05 10:19 R E G D
heap_btree.result 9.322 KB -rw-r--r-- 2021-01-05 10:19 R E G D
heap_hash.result 14.374 KB -rw-r--r-- 2021-01-05 10:19 R E G D
help.result 6.465 KB -rw-r--r-- 2021-01-05 10:19 R E G D
host_cache_size_functionality.result 3.319 KB -rw-r--r-- 2021-01-05 10:19 R E G D
implicit_char_to_num_conversion.result 6.438 KB -rw-r--r-- 2021-01-05 10:19 R E G D
implicit_commit.result 17.715 KB -rw-r--r-- 2021-01-05 10:19 R E G D
import_schema_mismatch.result 0.525 KB -rw-r--r-- 2021-01-05 10:19 R E G D
index_merge_delete.result 25.876 KB -rw-r--r-- 2021-01-05 10:19 R E G D
index_merge_innodb.result 61.635 KB -rw-r--r-- 2021-01-05 10:19 R E G D
index_merge_insert-and-replace.result 12.55 KB -rw-r--r-- 2021-01-05 10:19 R E G D
index_merge_intersect_dml.result 4.958 KB -rw-r--r-- 2021-01-05 10:19 R E G D
index_merge_myisam.result 73.481 KB -rw-r--r-- 2021-01-05 10:19 R E G D
index_merge_update.result 16.413 KB -rw-r--r-- 2021-01-05 10:19 R E G D
information_schema-big.result 2.81 KB -rw-r--r-- 2021-01-05 10:19 R E G D
information_schema.result 87.982 KB -rw-r--r-- 2021-01-05 10:19 R E G D
information_schema_chmod.result 0.178 KB -rw-r--r-- 2021-01-05 10:19 R E G D
information_schema_db.result 9.294 KB -rw-r--r-- 2021-01-05 10:19 R E G D
information_schema_inno.result 4.331 KB -rw-r--r-- 2021-01-05 10:19 R E G D
information_schema_parameters.result 22.11 KB -rw-r--r-- 2021-01-05 10:19 R E G D
information_schema_part.result 9.715 KB -rw-r--r-- 2021-01-05 10:19 R E G D
information_schema_routines.result 28.636 KB -rw-r--r-- 2021-01-05 10:19 R E G D
init_connect.result 2.526 KB -rw-r--r-- 2021-01-05 10:19 R E G D
init_file.result 0.315 KB -rw-r--r-- 2021-01-05 10:19 R E G D
innodb_explain_json_non_select_all.result 220.923 KB -rw-r--r-- 2021-01-05 10:19 R E G D
innodb_explain_json_non_select_none.result 225.147 KB -rw-r--r-- 2021-01-05 10:19 R E G D
innodb_explain_non_select_all.result 119.149 KB -rw-r--r-- 2021-01-05 10:19 R E G D
innodb_explain_non_select_none.result 119.029 KB -rw-r--r-- 2021-01-05 10:19 R E G D
innodb_icp.result 26.728 KB -rw-r--r-- 2021-01-05 10:19 R E G D
innodb_icp_all.result 26.791 KB -rw-r--r-- 2021-01-05 10:19 R E G D
innodb_icp_none.result 26.632 KB -rw-r--r-- 2021-01-05 10:19 R E G D
innodb_ignore_builtin.result 0.346 KB -rw-r--r-- 2021-01-05 10:19 R E G D
innodb_log_file_size_functionality.result 2.791 KB -rw-r--r-- 2021-01-05 10:19 R E G D
innodb_mrr.result 20.302 KB -rw-r--r-- 2021-01-05 10:19 R E G D
innodb_mrr_all.result 20.467 KB -rw-r--r-- 2021-01-05 10:19 R E G D
innodb_mrr_cost.result 20.269 KB -rw-r--r-- 2021-01-05 10:19 R E G D
innodb_mrr_cost_all.result 20.434 KB -rw-r--r-- 2021-01-05 10:19 R E G D
innodb_mrr_cost_icp.result 20.377 KB -rw-r--r-- 2021-01-05 10:19 R E G D
innodb_mrr_icp.result 20.41 KB -rw-r--r-- 2021-01-05 10:19 R E G D
innodb_mrr_none.result 20.221 KB -rw-r--r-- 2021-01-05 10:19 R E G D
innodb_mysql_lock.result 5.516 KB -rw-r--r-- 2021-01-05 10:19 R E G D
innodb_mysql_lock2.result 21.268 KB -rw-r--r-- 2021-01-05 10:19 R E G D
innodb_mysql_sync.result 17.646 KB -rw-r--r-- 2021-01-05 10:19 R E G D
innodb_pk_extension_off.result 14.063 KB -rw-r--r-- 2021-01-05 10:19 R E G D
innodb_pk_extension_on.result 14.33 KB -rw-r--r-- 2021-01-05 10:19 R E G D
innodb_recovery_with_upper_case_names.result 1.211 KB -rw-r--r-- 2021-01-05 10:19 R E G D
insert.result 26.414 KB -rw-r--r-- 2021-01-05 10:19 R E G D
insert_debug.result 1.294 KB -rw-r--r-- 2021-01-05 10:19 R E G D
insert_notembedded.result 5.718 KB -rw-r--r-- 2021-01-05 10:19 R E G D
insert_select.result 14.044 KB -rw-r--r-- 2021-01-05 10:19 R E G D
insert_update.result 9.641 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ipv4_as_ipv6.result 21.693 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ipv6.result 12.488 KB -rw-r--r-- 2021-01-05 10:19 R E G D
is_debug_build.require 0.031 KB -rw-r--r-- 2021-01-05 10:19 R E G D
is_embedded.require 0.016 KB -rw-r--r-- 2021-01-05 10:19 R E G D
isam.result 15.653 KB -rw-r--r-- 2021-01-05 10:19 R E G D
join.result 46.837 KB -rw-r--r-- 2021-01-05 10:19 R E G D
join_cache_bka.result 88.084 KB -rw-r--r-- 2021-01-05 10:19 R E G D
join_cache_bka_nixbnl.result 87.375 KB -rw-r--r-- 2021-01-05 10:19 R E G D
join_cache_bkaunique.result 88.538 KB -rw-r--r-- 2021-01-05 10:19 R E G D
join_cache_bnl.result 86.259 KB -rw-r--r-- 2021-01-05 10:19 R E G D
join_cache_nojb.result 85.375 KB -rw-r--r-- 2021-01-05 10:19 R E G D
join_crash.result 4.587 KB -rw-r--r-- 2021-01-05 10:19 R E G D
join_nested.result 62.759 KB -rw-r--r-- 2021-01-05 10:19 R E G D
join_nested_bka.result 66.917 KB -rw-r--r-- 2021-01-05 10:19 R E G D
join_nested_bka_nixbnl.result 63.953 KB -rw-r--r-- 2021-01-05 10:19 R E G D
join_optimizer.result 2.536 KB -rw-r--r-- 2021-01-05 10:19 R E G D
join_outer.result 63.986 KB -rw-r--r-- 2021-01-05 10:19 R E G D
join_outer_bka.result 64.278 KB -rw-r--r-- 2021-01-05 10:19 R E G D
join_outer_bka_nixbnl.result 62.568 KB -rw-r--r-- 2021-01-05 10:19 R E G D
join_outer_innodb.result 1.855 KB -rw-r--r-- 2021-01-05 10:19 R E G D
key.result 20.978 KB -rw-r--r-- 2021-01-05 10:19 R E G D
key_cache.result 10.908 KB -rw-r--r-- 2021-01-05 10:19 R E G D
key_diff.result 0.833 KB -rw-r--r-- 2021-01-05 10:19 R E G D
key_primary.result 0.65 KB -rw-r--r-- 2021-01-05 10:19 R E G D
keywords.result 6.63 KB -rw-r--r-- 2021-01-05 10:19 R E G D
kill.result 8.369 KB -rw-r--r-- 2021-01-05 10:19 R E G D
kill_debug.result 1.56 KB -rw-r--r-- 2021-01-05 10:19 R E G D
limit.result 4.118 KB -rw-r--r-- 2021-01-05 10:19 R E G D
loaddata.result 16.914 KB -rw-r--r-- 2021-01-05 10:19 R E G D
loaddata_autocom_innodb.result 0.622 KB -rw-r--r-- 2021-01-05 10:19 R E G D
loadxml.result 2.71 KB -rw-r--r-- 2021-01-05 10:19 R E G D
locale.result 5.588 KB -rw-r--r-- 2021-01-05 10:19 R E G D
lock.result 15.03 KB -rw-r--r-- 2021-01-05 10:19 R E G D
lock_multi.result 11.526 KB -rw-r--r-- 2021-01-05 10:19 R E G D
lock_multi_bug38499.result 0.675 KB -rw-r--r-- 2021-01-05 10:19 R E G D
lock_multi_bug38691.result 0.526 KB -rw-r--r-- 2021-01-05 10:19 R E G D
lock_sync.result 31.173 KB -rw-r--r-- 2021-01-05 10:19 R E G D
lock_tables_lost_commit.result 0.146 KB -rw-r--r-- 2021-01-05 10:19 R E G D
log_empty_name.result 0.241 KB -rw-r--r-- 2021-01-05 10:19 R E G D
log_errchk.result 0.648 KB -rw-r--r-- 2021-01-05 10:19 R E G D
log_state.result 9.656 KB -rw-r--r-- 2021-01-05 10:19 R E G D
log_state_bug33693.result 0.108 KB -rw-r--r-- 2021-01-05 10:19 R E G D
log_tables-big.result 0.973 KB -rw-r--r-- 2021-01-05 10:19 R E G D
log_tables.result 40.972 KB -rw-r--r-- 2021-01-05 10:19 R E G D
log_tables_debug.result 0.818 KB -rw-r--r-- 2021-01-05 10:19 R E G D
log_tables_upgrade.result 2.479 KB -rw-r--r-- 2021-01-05 10:19 R E G D
long_tmpdir.result 0.097 KB -rw-r--r-- 2021-01-05 10:19 R E G D
lowercase0.require 0.044 KB -rw-r--r-- 2021-01-05 10:19 R E G D
lowercase1.require 0.044 KB -rw-r--r-- 2021-01-05 10:19 R E G D
lowercase2.require 0.044 KB -rw-r--r-- 2021-01-05 10:19 R E G D
lowercase_fs_off.result 2.052 KB -rw-r--r-- 2021-01-05 10:19 R E G D
lowercase_fs_on.result 0.073 KB -rw-r--r-- 2021-01-05 10:19 R E G D
lowercase_mixed_tmpdir.result 0.172 KB -rw-r--r-- 2021-01-05 10:19 R E G D
lowercase_mixed_tmpdir_innodb.result 0.186 KB -rw-r--r-- 2021-01-05 10:19 R E G D
lowercase_table.result 2.67 KB -rw-r--r-- 2021-01-05 10:19 R E G D
lowercase_table2.result 8.656 KB -rw-r--r-- 2021-01-05 10:19 R E G D
lowercase_table4.result 3.676 KB -rw-r--r-- 2021-01-05 10:19 R E G D
lowercase_table_grant.result 1.499 KB -rw-r--r-- 2021-01-05 10:19 R E G D
lowercase_table_qcache.result 0.634 KB -rw-r--r-- 2021-01-05 10:19 R E G D
lowercase_utf8.result 0.169 KB -rw-r--r-- 2021-01-05 10:19 R E G D
lowercase_view.result 10.225 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mdl_sync.result 89.854 KB -rw-r--r-- 2021-01-05 10:19 R E G D
merge-big.result 0.711 KB -rw-r--r-- 2021-01-05 10:19 R E G D
merge.result 97.604 KB -rw-r--r-- 2021-01-05 10:19 R E G D
merge_innodb.result 1.313 KB -rw-r--r-- 2021-01-05 10:19 R E G D
merge_mmap.result 3.333 KB -rw-r--r-- 2021-01-05 10:19 R E G D
metadata.result 13.883 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mix2_myisam.result 57.756 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mix2_myisam_ucs2.result 15.312 KB -rw-r--r-- 2021-01-05 10:19 R E G D
multi_plugin_load.result 0.339 KB -rw-r--r-- 2021-01-05 10:19 R E G D
multi_plugin_load_add.result 0.444 KB -rw-r--r-- 2021-01-05 10:19 R E G D
multi_plugin_load_add2.result 0.444 KB -rw-r--r-- 2021-01-05 10:19 R E G D
multi_statement.result 0.55 KB -rw-r--r-- 2021-01-05 10:19 R E G D
multi_update.result 23.214 KB -rw-r--r-- 2021-01-05 10:19 R E G D
multi_update2.result 0.992 KB -rw-r--r-- 2021-01-05 10:19 R E G D
multi_update_innodb.result 2.562 KB -rw-r--r-- 2021-01-05 10:19 R E G D
multi_update_tiny_hash.result 1.501 KB -rw-r--r-- 2021-01-05 10:19 R E G D
myisam-blob.result 1.253 KB -rw-r--r-- 2021-01-05 10:19 R E G D
myisam-system.result 0.382 KB -rw-r--r-- 2021-01-05 10:19 R E G D
myisam.result 90.776 KB -rw-r--r-- 2021-01-05 10:19 R E G D
myisam_crash_before_flush_keys.result 1.152 KB -rw-r--r-- 2021-01-05 10:19 R E G D
myisam_debug.result 1.207 KB -rw-r--r-- 2021-01-05 10:19 R E G D
myisam_explain_json_non_select_all.result 217.296 KB -rw-r--r-- 2021-01-05 10:19 R E G D
myisam_explain_json_non_select_none.result 221.321 KB -rw-r--r-- 2021-01-05 10:19 R E G D
myisam_explain_non_select_all.result 116.257 KB -rw-r--r-- 2021-01-05 10:19 R E G D
myisam_explain_non_select_none.result 115.977 KB -rw-r--r-- 2021-01-05 10:19 R E G D
myisam_icp.result 26.567 KB -rw-r--r-- 2021-01-05 10:19 R E G D
myisam_icp_all.result 26.631 KB -rw-r--r-- 2021-01-05 10:19 R E G D
myisam_icp_none.result 26.452 KB -rw-r--r-- 2021-01-05 10:19 R E G D
myisam_mrr.result 19.243 KB -rw-r--r-- 2021-01-05 10:19 R E G D
myisam_mrr_all.result 19.44 KB -rw-r--r-- 2021-01-05 10:19 R E G D
myisam_mrr_cost.result 19.188 KB -rw-r--r-- 2021-01-05 10:19 R E G D
myisam_mrr_cost_all.result 19.386 KB -rw-r--r-- 2021-01-05 10:19 R E G D
myisam_mrr_cost_icp.result 19.329 KB -rw-r--r-- 2021-01-05 10:19 R E G D
myisam_mrr_icp.result 19.384 KB -rw-r--r-- 2021-01-05 10:19 R E G D
myisam_mrr_none.result 19.141 KB -rw-r--r-- 2021-01-05 10:19 R E G D
myisam_recover.result 4.57 KB -rw-r--r-- 2021-01-05 10:19 R E G D
myisam_row_rpl.result 2.041 KB -rw-r--r-- 2021-01-05 10:19 R E G D
myisampack.result 7.556 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysql-bug41486.result 0.454 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysql-bug45236.result 0.321 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysql.result 8.67 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysql_binary_mode.result 1.521 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysql_client_test.result 8.917 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysql_client_test_embedded.result 0.108 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysql_client_test_qcache.result 0.49 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysql_comments.result 5.019 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysql_config_editor.result 6.601 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysql_cp932.result 0.036 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysql_embedded.result 0.167 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysql_embedded_client_test.result 0.149 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysql_locale_posix.result 0.95 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysql_not_windows.result 0.078 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysql_plugin.result 3.883 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysql_protocols.result 0.203 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysql_upgrade.result 26.823 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysql_upgrade_ssl.result 1.993 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysqladmin.result 0.852 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysqladmin_shutdown.result 0.153 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysqlbinlog.result 30.171 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysqlbinlog_debug.result 0.229 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysqlbinlog_mixed_or_statment.result 0.835 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysqlbinlog_raw_mode.result 8.316 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysqlbinlog_raw_mode_win.result 8.081 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysqlbinlog_row_big.result 2.422 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysqlcheck.result 15.196 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysqld--defaults-file.result 0.693 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysqld--help-notwin.result 53.914 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysqld--help-win.result 54.473 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysqldump-compat.result 0.108 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysqldump-max.result 10.951 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysqldump-no-binlog.result 0.049 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysqldump.result 280.612 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysqldump_restore.result 3.78 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysqlhotcopy_archive.result 1.801 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysqlhotcopy_myisam.result 2.275 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysqlimport.result 0.479 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysqlshow.result 7.563 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysqlslap.result 6.877 KB -rw-r--r-- 2021-01-05 10:19 R E G D
mysqltest.result 31.152 KB -rw-r--r-- 2021-01-05 10:19 R E G D
named_pipe.result 56.246 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ndb_default_cluster.require 0.05 KB -rw-r--r-- 2021-01-05 10:19 R E G D
negation_elimination.result 8.725 KB -rw-r--r-- 2021-01-05 10:19 R E G D
no-threads.result 0.321 KB -rw-r--r-- 2021-01-05 10:19 R E G D
no_binlog.result 0.063 KB -rw-r--r-- 2021-01-05 10:19 R E G D
not_embedded.require 0.016 KB -rw-r--r-- 2021-01-05 10:19 R E G D
not_embedded_server.result 5.633 KB -rw-r--r-- 2021-01-05 10:19 R E G D
not_ndb.require 0.038 KB -rw-r--r-- 2021-01-05 10:19 R E G D
not_openssl.require 0.035 KB -rw-r--r-- 2021-01-05 10:19 R E G D
not_partition.result 4.138 KB -rw-r--r-- 2021-01-05 10:19 R E G D
not_ssl.require 0.031 KB -rw-r--r-- 2021-01-05 10:19 R E G D
not_true.require 0.01 KB -rw-r--r-- 2021-01-05 10:19 R E G D
not_valgrind.require 0.017 KB -rw-r--r-- 2021-01-05 10:19 R E G D
not_windows.require 0.007 KB -rw-r--r-- 2021-01-05 10:19 R E G D
null.result 14.482 KB -rw-r--r-- 2021-01-05 10:19 R E G D
null_key_all.result 15.598 KB -rw-r--r-- 2021-01-05 10:19 R E G D
null_key_icp.result 15.534 KB -rw-r--r-- 2021-01-05 10:19 R E G D
null_key_none.result 15.474 KB -rw-r--r-- 2021-01-05 10:19 R E G D
odbc.result 0.932 KB -rw-r--r-- 2021-01-05 10:19 R E G D
olap.result 19.126 KB -rw-r--r-- 2021-01-05 10:19 R E G D
one_thread_per_connection.require 0.043 KB -rw-r--r-- 2021-01-05 10:19 R E G D
openssl.require 0.036 KB -rw-r--r-- 2021-01-05 10:19 R E G D
openssl_1.result 8.042 KB -rw-r--r-- 2021-01-05 10:19 R E G D
optimizer_bug12837084.result 13.971 KB -rw-r--r-- 2021-01-05 10:19 R E G D
optimizer_debug_sync.result 1.322 KB -rw-r--r-- 2021-01-05 10:19 R E G D
optimizer_switch.result 19.938 KB -rw-r--r-- 2021-01-05 10:19 R E G D
order_by_all.result 61.425 KB -rw-r--r-- 2021-01-05 10:19 R E G D
order_by_icp_mrr.result 61.368 KB -rw-r--r-- 2021-01-05 10:19 R E G D
order_by_none.result 61.149 KB -rw-r--r-- 2021-01-05 10:19 R E G D
order_by_sortkey.result 2.911 KB -rw-r--r-- 2021-01-05 10:19 R E G D
order_fill_sortbuf.result 0.256 KB -rw-r--r-- 2021-01-05 10:19 R E G D
outfile.result 2.087 KB -rw-r--r-- 2021-01-05 10:19 R E G D
outfile_loaddata.result 10.118 KB -rw-r--r-- 2021-01-05 10:19 R E G D
overflow.result 0.229 KB -rw-r--r-- 2021-01-05 10:19 R E G D
packet.result 4.997 KB -rw-r--r-- 2021-01-05 10:19 R E G D
parser.result 38.22 KB -rw-r--r-- 2021-01-05 10:19 R E G D
parser_bug21114_innodb.result 25.39 KB -rw-r--r-- 2021-01-05 10:19 R E G D
parser_not_embedded.result 4.42 KB -rw-r--r-- 2021-01-05 10:19 R E G D
parser_precedence.result 23.96 KB -rw-r--r-- 2021-01-05 10:19 R E G D
parser_stack.result 9.537 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition.result 76.634 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_archive.result 4.513 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_binlog.result 2.297 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_binlog_stmt.result 0.432 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_blackhole.result 0.17 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_bug18198.result 8.068 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_cache.result 5.162 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_charset.result 0.424 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_column.result 23.065 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_column_prune.result 2.832 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_csv.result 1.831 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_datatype.result 39.34 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_debug_sync.result 3.193 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_disabled.result 4.594 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_error.result 82.17 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_exchange.result 37.599 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_explicit_prune.result 55.627 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_federated.result 0.265 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_grant.result 1.544 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_hash.result 7.118 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_index_innodb.result 4.04 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_index_myisam.result 3.213 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_innodb.result 30.662 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_innodb_plugin.result 5.256 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_innodb_semi_consistent.result 2.92 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_innodb_stmt.result 1.121 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_innodb_tablespace.result 12.756 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_key_cache.result 16.737 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_list.result 12.922 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_locking.result 238.128 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_locking_4.result 1.699 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_mgm.result 4.698 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_mgm_err.result 7.479 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_mgm_err2.result 0.042 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_myisam.result 7.67 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_not_blackhole.result 0.445 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_not_windows.result 3.474 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_open_files_limit.result 1.017 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_order.result 16.287 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_pruning.result 166.975 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_range.result 33.909 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_rename_longfilename.result 2.894 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_symlink.result 4.893 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_sync.result 1.336 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_truncate.result 0.733 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_utf8.result 2.004 KB -rw-r--r-- 2021-01-05 10:19 R E G D
partition_windows.result 1.177 KB -rw-r--r-- 2021-01-05 10:19 R E G D
perror-win.result 0.442 KB -rw-r--r-- 2021-01-05 10:19 R E G D
perror.result 0.46 KB -rw-r--r-- 2021-01-05 10:19 R E G D
plugin.result 7.728 KB -rw-r--r-- 2021-01-05 10:19 R E G D
plugin_auth.result 23.392 KB -rw-r--r-- 2021-01-05 10:19 R E G D
plugin_auth_qa.result 20.77 KB -rw-r--r-- 2021-01-05 10:19 R E G D
plugin_auth_qa_1.result 13.739 KB -rw-r--r-- 2021-01-05 10:19 R E G D
plugin_auth_qa_2.result 8.869 KB -rw-r--r-- 2021-01-05 10:19 R E G D
plugin_auth_qa_3.result 1.138 KB -rw-r--r-- 2021-01-05 10:19 R E G D
plugin_auth_sha256.result 3.975 KB -rw-r--r-- 2021-01-05 10:19 R E G D
plugin_auth_sha256_2.result 1.485 KB -rw-r--r-- 2021-01-05 10:19 R E G D
plugin_auth_sha256_server_default.result 2.695 KB -rw-r--r-- 2021-01-05 10:19 R E G D
plugin_auth_sha256_server_default_tls.result 2.831 KB -rw-r--r-- 2021-01-05 10:19 R E G D
plugin_auth_sha256_tls.result 1.817 KB -rw-r--r-- 2021-01-05 10:19 R E G D
plugin_load.result 0.074 KB -rw-r--r-- 2021-01-05 10:19 R E G D
plugin_load_option.result 0.313 KB -rw-r--r-- 2021-01-05 10:19 R E G D
plugin_not_embedded.result 0.463 KB -rw-r--r-- 2021-01-05 10:19 R E G D
preload.result 3.844 KB -rw-r--r-- 2021-01-05 10:19 R E G D
profiling.result 16.135 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ps.result 116.728 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ps_10nestset.result 2.084 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ps_11bugs.result 5.916 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ps_1general.result 35.914 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ps_2myisam.result 103.819 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ps_3innodb.result 103.361 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ps_4heap.result 103.276 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ps_5merge.result 202.341 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ps_ddl.result 53.68 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ps_ddl1.result 11.058 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ps_grant.result 3.714 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ps_not_windows.result 0.504 KB -rw-r--r-- 2021-01-05 10:19 R E G D
python_with_json.require 0.026 KB -rw-r--r-- 2021-01-05 10:19 R E G D
query_cache.result 75.565 KB -rw-r--r-- 2021-01-05 10:19 R E G D
query_cache_28249.result 2.294 KB -rw-r--r-- 2021-01-05 10:19 R E G D
query_cache_debug.result 8.63 KB -rw-r--r-- 2021-01-05 10:19 R E G D
query_cache_disabled.result 0.624 KB -rw-r--r-- 2021-01-05 10:19 R E G D
query_cache_merge.result 32.412 KB -rw-r--r-- 2021-01-05 10:19 R E G D
query_cache_notembedded.result 6.61 KB -rw-r--r-- 2021-01-05 10:19 R E G D
query_cache_ps_no_prot.result 11.096 KB -rw-r--r-- 2021-01-05 10:19 R E G D
query_cache_ps_ps_prot.result 11.095 KB -rw-r--r-- 2021-01-05 10:19 R E G D
query_cache_size_functionality.result 6.641 KB -rw-r--r-- 2021-01-05 10:19 R E G D
query_cache_type_functionality.result 6.795 KB -rw-r--r-- 2021-01-05 10:19 R E G D
query_cache_with_views.result 4.955 KB -rw-r--r-- 2021-01-05 10:19 R E G D
range_all.result 81.481 KB -rw-r--r-- 2021-01-05 10:19 R E G D
range_icp.result 81.075 KB -rw-r--r-- 2021-01-05 10:19 R E G D
range_icp_mrr.result 81.425 KB -rw-r--r-- 2021-01-05 10:19 R E G D
range_mrr.result 80.976 KB -rw-r--r-- 2021-01-05 10:19 R E G D
range_mrr_cost.result 80.673 KB -rw-r--r-- 2021-01-05 10:19 R E G D
range_none.result 80.625 KB -rw-r--r-- 2021-01-05 10:19 R E G D
read_many_rows_innodb.result 2.829 KB -rw-r--r-- 2021-01-05 10:19 R E G D
read_only.result 6.3 KB -rw-r--r-- 2021-01-05 10:19 R E G D
read_only_innodb.result 4.762 KB -rw-r--r-- 2021-01-05 10:19 R E G D
rename.result 1.579 KB -rw-r--r-- 2021-01-05 10:19 R E G D
renamedb.result 0.859 KB -rw-r--r-- 2021-01-05 10:19 R E G D
repair.result 7.022 KB -rw-r--r-- 2021-01-05 10:19 R E G D
replace.result 1.095 KB -rw-r--r-- 2021-01-05 10:19 R E G D
rewrite_general_log.result 8.334 KB -rw-r--r-- 2021-01-05 10:19 R E G D
rewrite_slow_log.result 2.919 KB -rw-r--r-- 2021-01-05 10:19 R E G D
rollback.result 0.568 KB -rw-r--r-- 2021-01-05 10:19 R E G D
round.result 6.736 KB -rw-r--r-- 2021-01-05 10:19 R E G D
row.result 15.908 KB -rw-r--r-- 2021-01-05 10:19 R E G D
rowid_order_innodb.result 3.324 KB -rw-r--r-- 2021-01-05 10:19 R E G D
rpl_colSize.result 4.388 KB -rw-r--r-- 2021-01-05 10:19 R E G D
rpl_extraColmaster_innodb.result 23.846 KB -rw-r--r-- 2021-01-05 10:19 R E G D
rpl_extraColmaster_myisam.result 23.846 KB -rw-r--r-- 2021-01-05 10:19 R E G D
rpl_mysqldump_slave.result 0.847 KB -rw-r--r-- 2021-01-05 10:19 R E G D
schema.result 2.371 KB -rw-r--r-- 2021-01-05 10:19 R E G D
secure_file_priv_win.result 1.434 KB -rw-r--r-- 2021-01-05 10:19 R E G D
select_all.result 150.092 KB -rw-r--r-- 2021-01-05 10:19 R E G D
select_all_bka.result 150.856 KB -rw-r--r-- 2021-01-05 10:19 R E G D
select_all_bka_nixbnl.result 150.114 KB -rw-r--r-- 2021-01-05 10:19 R E G D
select_found.result 6.168 KB -rw-r--r-- 2021-01-05 10:19 R E G D
select_icp_mrr.result 150.035 KB -rw-r--r-- 2021-01-05 10:19 R E G D
select_icp_mrr_bka.result 150.8 KB -rw-r--r-- 2021-01-05 10:19 R E G D
select_icp_mrr_bka_nixbnl.result 150.058 KB -rw-r--r-- 2021-01-05 10:19 R E G D
select_none.result 149.372 KB -rw-r--r-- 2021-01-05 10:19 R E G D
select_none_bka.result 149.465 KB -rw-r--r-- 2021-01-05 10:19 R E G D
select_none_bka_nixbnl.result 148.656 KB -rw-r--r-- 2021-01-05 10:19 R E G D
select_safe.result 3.923 KB -rw-r--r-- 2021-01-05 10:19 R E G D
server_id.require 0.031 KB -rw-r--r-- 2021-01-05 10:19 R E G D
server_id1.require 0.033 KB -rw-r--r-- 2021-01-05 10:19 R E G D
server_uuid.result 0.737 KB -rw-r--r-- 2021-01-05 10:19 R E G D
server_uuid_embedded.result 0.317 KB -rw-r--r-- 2021-01-05 10:19 R E G D
shm.result 56.744 KB -rw-r--r-- 2021-01-05 10:19 R E G D
show_check.result 71.325 KB -rw-r--r-- 2021-01-05 10:19 R E G D
show_processlist.result 1.84 KB -rw-r--r-- 2021-01-05 10:19 R E G D
show_processlist_state.result 0.143 KB -rw-r--r-- 2021-01-05 10:19 R E G D
show_profile.result 0.479 KB -rw-r--r-- 2021-01-05 10:19 R E G D
signal.result 63.087 KB -rw-r--r-- 2021-01-05 10:19 R E G D
signal_code.result 0.996 KB -rw-r--r-- 2021-01-05 10:19 R E G D
signal_demo1.result 6.063 KB -rw-r--r-- 2021-01-05 10:19 R E G D
signal_demo2.result 3.855 KB -rw-r--r-- 2021-01-05 10:19 R E G D
signal_demo3.result 3.326 KB -rw-r--r-- 2021-01-05 10:19 R E G D
signal_sqlmode.result 2.506 KB -rw-r--r-- 2021-01-05 10:19 R E G D
single_delete_update.result 24.411 KB -rw-r--r-- 2021-01-05 10:19 R E G D
skip_grants.result 2.473 KB -rw-r--r-- 2021-01-05 10:19 R E G D
skip_log_bin.result 0.163 KB -rw-r--r-- 2021-01-05 10:19 R E G D
skip_name_resolve.result 1.277 KB -rw-r--r-- 2021-01-05 10:19 R E G D
slave-running.result 0.069 KB -rw-r--r-- 2021-01-05 10:19 R E G D
slave-stopped.result 0.07 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sort_buffer_size_functionality.result 6.478 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sp-big.result 1.468 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sp-bugs.result 7.661 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sp-code.result 28.231 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sp-destruct.result 6.841 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sp-dynamic.result 9.547 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sp-error.result 81.432 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sp-fib.result 0.641 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sp-lock.result 21.447 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sp-no-code.result 0.3 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sp-prelocking.result 7.093 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sp-security.result 23.506 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sp-threads.result 2.012 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sp-ucs2.result 4.778 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sp-vars.result 28.089 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sp.result 183.743 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sp_debug.result 0.718 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sp_gis.result 0.81 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sp_notembedded.result 10 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sp_stress_case.result 2.526 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sp_sync.result 3.167 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sp_trans.result 14.304 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sp_trans_log.result 0.87 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sp_validation.result 34.669 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sql_mode.result 17.526 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ssl-big.result 0.067 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ssl-crl-revoked-crl.result 0.074 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ssl-sha512.result 0.367 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ssl.result 56.893 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ssl_8k_key.result 0.041 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ssl_and_innodb.result 0.179 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ssl_ca.result 0.837 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ssl_cipher.result 0.248 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ssl_compress.result 56.52 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ssl_connect.result 0.01 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ssl_crl.result 1.145 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ssl_crl_clients-valid.result 1.011 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ssl_crl_clients.result 0.417 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ssl_crl_clients_valid.result 0.605 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ssl_crl_crlpath.result 0.711 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ssl_mode.result 1.293 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ssl_mode_no_ssl.result 1.058 KB -rw-r--r-- 2021-01-05 10:19 R E G D
ssl_verify_identity.result 1.003 KB -rw-r--r-- 2021-01-05 10:19 R E G D
status.result 9.825 KB -rw-r--r-- 2021-01-05 10:19 R E G D
status2.result 1.354 KB -rw-r--r-- 2021-01-05 10:19 R E G D
status_bug17954.result 0.568 KB -rw-r--r-- 2021-01-05 10:19 R E G D
status_debug.result 1.063 KB -rw-r--r-- 2021-01-05 10:19 R E G D
strict.result 64.413 KB -rw-r--r-- 2021-01-05 10:19 R E G D
strict_autoinc_1myisam.result 0.639 KB -rw-r--r-- 2021-01-05 10:19 R E G D
strict_autoinc_2innodb.result 0.639 KB -rw-r--r-- 2021-01-05 10:19 R E G D
strict_autoinc_3heap.result 0.639 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_all.result 258.332 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_all_bka.result 258.653 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_all_bka_nixbnl.result 258.416 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_bugs.result 3.048 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_mat.result 94.956 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_mat_all.result 87.691 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_mat_none.result 89.711 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_nomat_nosj.result 258.393 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_nomat_nosj_bka.result 258.636 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_nomat_nosj_bka_nixbnl.result 258.215 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_none.result 258.287 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_none_bka.result 258.38 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_none_bka_nixbnl.result 257.959 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_all.result 368.598 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_all_bka.result 370.215 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_all_bka_nixbnl.result 358.999 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_all_bkaunique.result 370.58 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_dupsweed.result 370.17 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_dupsweed_bka.result 370.416 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_dupsweed_bka_nixbnl.result 352.522 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_dupsweed_bkaunique.result 370.448 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_firstmatch.result 363.229 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_firstmatch_bka.result 363.322 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_firstmatch_bka_nixbnl.result 351.284 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_firstmatch_bkaunique.result 363.354 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_innodb_all.result 4.739 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_innodb_all_bka.result 4.932 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_innodb_all_bka_nixbnl.result 4.953 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_innodb_all_bkaunique.result 4.99 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_innodb_none.result 4.621 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_innodb_none_bka.result 4.714 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_innodb_none_bka_nixbnl.result 4.703 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_innodb_none_bkaunique.result 4.746 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_loosescan.result 370.079 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_loosescan_bka.result 370.325 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_loosescan_bka_nixbnl.result 352.497 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_loosescan_bkaunique.result 370.357 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_mat.result 378.771 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_mat_bka.result 378.846 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_mat_bka_nixbnl.result 362.058 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_mat_bkaunique.result 378.878 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_mat_nosj.result 376.229 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_none.result 374.823 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_none_bka.result 374.916 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_none_bka_nixbnl.result 367.909 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subquery_sj_none_bkaunique.result 374.948 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subselect_debug.result 0.399 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subselect_gis.result 0.298 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subselect_innodb.result 28.096 KB -rw-r--r-- 2021-01-05 10:19 R E G D
subselect_notembedded.result 0.734 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sum_distinct-big.result 2.002 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sum_distinct.result 3.141 KB -rw-r--r-- 2021-01-05 10:19 R E G D
symlink.result 7.752 KB -rw-r--r-- 2021-01-05 10:19 R E G D
symlink_windows.result 0.313 KB -rw-r--r-- 2021-01-05 10:19 R E G D
synchronization.result 4.052 KB -rw-r--r-- 2021-01-05 10:19 R E G D
sysdate_is_now.result 0.074 KB -rw-r--r-- 2021-01-05 10:19 R E G D
system_mysql_db.result 13.5 KB -rw-r--r-- 2021-01-05 10:19 R E G D
system_mysql_db_refs.result 2.96 KB -rw-r--r-- 2021-01-05 10:19 R E G D
table_definition_cache_functionality.result 6.896 KB -rw-r--r-- 2021-01-05 10:19 R E G D
table_open_cache_functionality.result 12.784 KB -rw-r--r-- 2021-01-05 10:19 R E G D
tablelock.result 1.501 KB -rw-r--r-- 2021-01-05 10:19 R E G D
tablespace.result 10.131 KB -rw-r--r-- 2021-01-05 10:19 R E G D
temp_pool.result 0.525 KB -rw-r--r-- 2021-01-05 10:19 R E G D
temp_table.result 7.392 KB -rw-r--r-- 2021-01-05 10:19 R E G D
temporal_literal.result 13.164 KB -rw-r--r-- 2021-01-05 10:19 R E G D
testdb_only.require 0.044 KB -rw-r--r-- 2021-01-05 10:19 R E G D
thread_cache_size_functionality.result 5.258 KB -rw-r--r-- 2021-01-05 10:19 R E G D
timezone.result 1.805 KB -rw-r--r-- 2021-01-05 10:19 R E G D
timezone2.result 11.814 KB -rw-r--r-- 2021-01-05 10:19 R E G D
timezone3.result 2.209 KB -rw-r--r-- 2021-01-05 10:19 R E G D
timezone4.result 0.145 KB -rw-r--r-- 2021-01-05 10:19 R E G D
timezone_grant.result 3.759 KB -rw-r--r-- 2021-01-05 10:19 R E G D
trans_read_only.result 1.028 KB -rw-r--r-- 2021-01-05 10:19 R E G D
trigger-compat.result 7.751 KB -rw-r--r-- 2021-01-05 10:19 R E G D
trigger-trans.result 6.464 KB -rw-r--r-- 2021-01-05 10:19 R E G D
trigger.result 68.456 KB -rw-r--r-- 2021-01-05 10:19 R E G D
trigger_notembedded.result 17.026 KB -rw-r--r-- 2021-01-05 10:19 R E G D
true.require 0.007 KB -rw-r--r-- 2021-01-05 10:19 R E G D
truncate.result 3.583 KB -rw-r--r-- 2021-01-05 10:19 R E G D
truncate_coverage.result 2.399 KB -rw-r--r-- 2021-01-05 10:19 R E G D
type_binary.result 3.621 KB -rw-r--r-- 2021-01-05 10:19 R E G D
type_bit.result 16.916 KB -rw-r--r-- 2021-01-05 10:19 R E G D
type_bit_innodb.result 7.314 KB -rw-r--r-- 2021-01-05 10:19 R E G D
type_blob.result 28.874 KB -rw-r--r-- 2021-01-05 10:19 R E G D
type_date.result 18.463 KB -rw-r--r-- 2021-01-05 10:19 R E G D
type_datetime.result 31.236 KB -rw-r--r-- 2021-01-05 10:19 R E G D
type_decimal.result 36.102 KB -rw-r--r-- 2021-01-05 10:19 R E G D
type_enum.result 101.192 KB -rw-r--r-- 2021-01-05 10:19 R E G D
type_float.result 11.969 KB -rw-r--r-- 2021-01-05 10:19 R E G D
type_nchar.result 1.437 KB -rw-r--r-- 2021-01-05 10:19 R E G D
type_newdecimal-big.result 0.662 KB -rw-r--r-- 2021-01-05 10:19 R E G D
type_newdecimal.result 61.458 KB -rw-r--r-- 2021-01-05 10:19 R E G D
type_ranges.result 17.381 KB -rw-r--r-- 2021-01-05 10:19 R E G D
type_set.result 3.991 KB -rw-r--r-- 2021-01-05 10:19 R E G D
type_temporal_fractional.result 635.432 KB -rw-r--r-- 2021-01-05 10:19 R E G D
type_temporal_upgrade.result 9.898 KB -rw-r--r-- 2021-01-05 10:19 R E G D
type_time.result 109.266 KB -rw-r--r-- 2021-01-05 10:19 R E G D
type_timestamp.result 24.694 KB -rw-r--r-- 2021-01-05 10:19 R E G D
type_timestamp_explicit.result 27.353 KB -rw-r--r-- 2021-01-05 10:19 R E G D
type_uint.result 0.357 KB -rw-r--r-- 2021-01-05 10:19 R E G D
type_varchar.result 16.656 KB -rw-r--r-- 2021-01-05 10:19 R E G D
type_year.result 7.775 KB -rw-r--r-- 2021-01-05 10:19 R E G D
udf.result 16.032 KB -rw-r--r-- 2021-01-05 10:19 R E G D
udf_services.result 0.487 KB -rw-r--r-- 2021-01-05 10:19 R E G D
udf_skip_grants.result 0.218 KB -rw-r--r-- 2021-01-05 10:19 R E G D
union.result 52.6 KB -rw-r--r-- 2021-01-05 10:19 R E G D
unsafe_binlog_innodb.result 4.355 KB -rw-r--r-- 2021-01-05 10:19 R E G D
update.result 16.628 KB -rw-r--r-- 2021-01-05 10:19 R E G D
upgrade.result 4.91 KB -rw-r--r-- 2021-01-05 10:19 R E G D
user_limits.result 3.536 KB -rw-r--r-- 2021-01-05 10:19 R E G D
user_var-binlog.result 2.171 KB -rw-r--r-- 2021-01-05 10:19 R E G D
user_var.result 15.345 KB -rw-r--r-- 2021-01-05 10:19 R E G D
validate_password_plugin.result 12.092 KB -rw-r--r-- 2021-01-05 10:19 R E G D
varbinary.result 3.341 KB -rw-r--r-- 2021-01-05 10:19 R E G D
variables-big.result 0.949 KB -rw-r--r-- 2021-01-05 10:19 R E G D
variables-notembedded.result 5.776 KB -rw-r--r-- 2021-01-05 10:19 R E G D
variables-win.result 0.339 KB -rw-r--r-- 2021-01-05 10:19 R E G D
variables.result 61.675 KB -rw-r--r-- 2021-01-05 10:19 R E G D
variables_community.result 0.178 KB -rw-r--r-- 2021-01-05 10:19 R E G D
variables_debug.result 2.134 KB -rw-r--r-- 2021-01-05 10:19 R E G D
view.result 178.725 KB -rw-r--r-- 2021-01-05 10:19 R E G D
view_alias.result 6.192 KB -rw-r--r-- 2021-01-05 10:19 R E G D
view_grant.result 76.689 KB -rw-r--r-- 2021-01-05 10:19 R E G D
wait_timeout.result 1.067 KB -rw-r--r-- 2021-01-05 10:19 R E G D
warnings.result 11.208 KB -rw-r--r-- 2021-01-05 10:19 R E G D
warnings_engine_disabled.result 0.464 KB -rw-r--r-- 2021-01-05 10:19 R E G D
windows.require 0.007 KB -rw-r--r-- 2021-01-05 10:19 R E G D
windows.result 1.86 KB -rw-r--r-- 2021-01-05 10:19 R E G D
wl6219-csv.result 7.229 KB -rw-r--r-- 2021-01-05 10:19 R E G D
wl6219-innodb.result 7.268 KB -rw-r--r-- 2021-01-05 10:19 R E G D
wl6219-memory.result 7.268 KB -rw-r--r-- 2021-01-05 10:19 R E G D
wl6219-merge.result 5.992 KB -rw-r--r-- 2021-01-05 10:19 R E G D
wl6219-myisam.result 7.268 KB -rw-r--r-- 2021-01-05 10:19 R E G D
wl6219-upgrade.result 7.331 KB -rw-r--r-- 2021-01-05 10:19 R E G D
wl6301_1_not_windows.result 0.043 KB -rw-r--r-- 2021-01-05 10:19 R E G D
wl6301_2_not_windows.result 0.045 KB -rw-r--r-- 2021-01-05 10:19 R E G D
wl6301_3.result 0.087 KB -rw-r--r-- 2021-01-05 10:19 R E G D
wl6443_deprecation.result 10.706 KB -rw-r--r-- 2021-01-05 10:19 R E G D
xa.result 7.133 KB -rw-r--r-- 2021-01-05 10:19 R E G D
xml.result 41.778 KB -rw-r--r-- 2021-01-05 10:19 R E G D
REQUEST EXIT
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) NO CONCAT(CURRENT_TIME(6)) varchar(15) NO CONCAT(UTC_TIME()) varchar(8) NO CONCAT(UTC_TIME(6)) varchar(15) NO CONCAT(CURRENT_TIMESTAMP()) varchar(19) NO CONCAT(CURRENT_TIMESTAMP(6)) varchar(26) NO CONCAT(UTC_TIMESTAMP()) varchar(19) NO CONCAT(UTC_TIMESTAMP(6)) varchar(26) NO CONCAT(LOCALTIME()) varchar(19) NO CONCAT(LOCALTIME(6)) varchar(26) NO CONCAT(LOCALTIMESTAMP()) varchar(19) NO CONCAT(LOCALTIMESTAMP(6)) varchar(26) NO CONCAT(SYSDATE()) varchar(19) NO CONCAT(SYSDATE(6)) varchar(26) NO 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 DEFAULT '0000-00-00 00:00:00', `NOW(1)` datetime(1) NOT NULL DEFAULT '0000-00-00 00:00:00.0', `NOW(2)` datetime(2) NOT NULL DEFAULT '0000-00-00 00:00:00.00', `NOW(3)` datetime(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000', `NOW(4)` datetime(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000', `NOW(5)` datetime(5) NOT NULL DEFAULT '0000-00-00 00:00:00.00000', `NOW(6)` datetime(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ) 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 DEFAULT '0000-00-00 00:00:00', `SYSDATE(1)` datetime(1) NOT NULL DEFAULT '0000-00-00 00:00:00.0', `SYSDATE(2)` datetime(2) NOT NULL DEFAULT '0000-00-00 00:00:00.00', `SYSDATE(3)` datetime(3) NOT NULL DEFAULT '0000-00-00 00:00:00.000', `SYSDATE(4)` datetime(4) NOT NULL DEFAULT '0000-00-00 00:00:00.0000', `SYSDATE(5)` datetime(5) NOT NULL DEFAULT '0000-00-00 00:00:00.00000', `SYSDATE(6)` datetime(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000' ) 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 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 column 'a'. Maximum is 6. CREATE TABLE t1 (a TIME(31)); ERROR 42000: Too big precision 31 specified for column '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 column 'curtime'. Maximum is 6. SELECT CURTIME(31); ERROR 42000: Too big precision 31 specified for column '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 type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ref a a 6 const 1 Using where; Using index 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 # 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; # # 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 # 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; # # 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 type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 14 100.00 Using where Warnings: 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. # 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; # # 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 1265 Data truncated for column 'c' at row 1 Note 1265 Data truncated 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 1265 Data truncated for column 'd' at row 1 Note 1265 Data truncated 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 type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: 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 type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: 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 type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: 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 type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: 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 type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: 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 type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: 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 type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: 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 type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: 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 column 'CAST'. Maximum is 6. SELECT CAST(1 AS TIME(31)); ERROR 42000: Too big precision 31 specified for column '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; 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.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 ); 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 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')); 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) */ 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) # 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; 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 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 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 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 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 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: '' 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); 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)) 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 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 column 'a'. Maximum is 6. CREATE TABLE t1 (a DATETIME(31)); ERROR 42000: Too big precision 31 specified for column '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 column 'sysdate'. Maximum is 6. SELECT SYSDATE(31); ERROR 42000: Too big precision 31 specified for column '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 column 'now'. Maximum is 6. SELECT NOW(31); ERROR 42000: Too big precision 31 specified for column 'now'. Maximum is 6. # # Testing INSERT, ORDER, KEY, BETWEEN, comparison # 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 type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ref a a 8 const 1 Using index 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; # # Testing values with zeros in dates # SET sql_mode=no_zero_in_date; Warnings: Warning 1681 'NO_ZERO_IN_DATE' is deprecated and 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 # 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 type possible_keys key key_len ref rows filtered Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 11 100.00 Using where Warnings: 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; # # 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 # 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 type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: 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 type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: 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 type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: 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 type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: 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 type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: 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 type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: 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 type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: 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 type possible_keys key key_len ref rows filtered Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: 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 column 'CAST'. Maximum is 6. SELECT CAST(1 AS DATETIME(31)); ERROR 42000: Too big precision 31 specified for column '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; 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 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 ); 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 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')); 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) */ 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 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 column 'a'. Maximum is 6. CREATE TABLE t1 (a TIMESTAMP(31)); ERROR 42000: Too big precision 31 specified for column '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 type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ref a a 7 const 1 Using index 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; 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 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 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; SET sql_mode=default; 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 */; 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 ) 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 */; 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'); 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 */; 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 */; 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'); 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 */; 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)); 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 */; 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'); 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 */; INSERT INTO t1 VALUES ( CURRENT_TIME(5), CURRENT_TIMESTAMP(4), CURRENT_TIMESTAMP(1), CURRENT_TIMESTAMP(), CURRENT_DATE(), CURRENT_TIME(), CURRENT_TIMESTAMP(),CURRENT_TIME()); 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 */; 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'); 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 */; 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)); 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 */; 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'); 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 */; 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'); 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; # End of 5.6 tests