中国网络渗透测试联盟
标题: mysql常用函数大全 [打印本页]
作者: admin 时间: 2018-3-21 16:07
标题: mysql常用函数大全
1、字符串函数: \: F/ @/ Z; b; t7 ]
ascii(str) 1 g9 p0 R, R2 S$ s$ ^4 n
返回字符串str的第一个字符的ascii值(str是空串时返回0) 2 }' ^# w! i, i& d6 k, F- _
mysql> select ascii('2');
& ?1 l: a2 ~6 k$ M7 o* f! Y: i -> 50
' _3 o1 O) g" ]# U# f' Dmysql> select ascii(2); . l) B) M5 L+ M9 Y j, U
-> 50 6 e* L* V! o3 C$ ^, Y+ k0 n: B, f
mysql> select ascii('dete'); 7 k" D. f( H- E( g. T
-> 100
1 d; H6 Z6 h$ B0 C" |. O* j0 D; G" ^ord(str)
( U; A8 P( o0 R/ Q6 h9 R如果字符串str句首是单字节返回与ascii()函数返回的相同值。
) R ?1 V) n7 f$ l9 d ) @/ \9 g1 \9 l' x6 D% _0 v
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]
' O9 e' |) r" `9 Q, ^' o( cmysql> select ord('2'); ; e" a6 c8 n; X. z* Z
-> 50
2 G3 D/ V9 s2 ~% b3 u) w" |
) R' h4 H# T* I( F% h' y& k% y, ?" Xconv(n,from_base,to_base) 9 B+ t2 T3 F8 y
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作) - a \0 U% f; X2 F5 e/ Y; w+ E
mysql> select conv("a",16,2); 6 m* Y( r$ G* S9 W- v2 {
-> '1010' ( t: l1 r# o& B* y
mysql> select conv("6e",18,8);
4 R+ l4 \" @ }- {& M0 n( p/ V* U -> '172' / T$ k9 f& Z/ r9 D7 C
mysql> select conv(-17,10,-18);
0 H9 f9 s; J0 |. a -> '-h'
+ ~6 ?4 }0 @7 {! O4 Lmysql> select conv(10+"10"+'10'+0xa,10,10);
7 o& U, m+ g: k6 R+ d -> '40'
. d0 y+ T* s w
2 x! P% d- ?- ]bin(n)
" K2 x {2 v% k8 }- V把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))
0 {: B' Q' d/ @9 T0 }0 W/ F% ymysql> select bin(12);
, |! d# ]5 q* [: R+ a5 q -> '1100'
" z, s' ` H: K1 _! h0 g . H$ e3 t9 x% F' ^" |! v
oct(n) : ?& F6 E- k9 A4 L m
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8)) & Z/ y. U2 a6 h |" e" U# ]' m
mysql> select oct(12);
2 J4 T' R( T# `! j/ v0 K/ a -> '14' . y/ R8 h0 P' m% X* s" h
- }/ ?7 X# g/ A7 i9 ? q% F
hex(n)
9 b$ ?4 w% O4 r" n( q# j把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16)) : P4 H$ @' I, n1 h/ N* C! t% W
mysql> select hex(255);
' H" y1 Z7 b. `5 |, `7 a% j -> 'ff' / R( n2 W& ~2 _- h9 S
# u% V, I" i9 m5 c8 d
char(n,...)
# _4 v3 w- r5 ?1 y' t返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过) & k# z" |2 u/ m8 l1 t
mysql> select char(77,121,83,81,'76'); a9 u8 ^6 M8 W0 \
-> 'mysql' / g# R' o8 ?9 ]% P- O: P* a/ Q
mysql> select char(77,77.3,'77.3'); 2 h& s; y0 @1 u) f8 a
-> 'mmm'
9 _! t9 W. M+ J+ ], e2 x 2 S$ \, f: {2 P
concat(str1,str2,...) ' |& g5 X. f& ]/ e: b' F/ w( F5 F
把参数连成一个长字符串并返回(任何参数是null时返回null)
; h, n S+ ?! f: H6 [2 kmysql> select concat('my', 's', 'ql'); 2 V9 D0 A( S* H; V% {
-> 'mysql' : O. J% a8 k' v' J' ]7 i8 M. W
mysql> select concat('my', null, 'ql');
8 I+ U) q# r1 A -> null
; B$ Q+ U( C# _2 w) e7 c6 Hmysql> select concat(14.3);
0 F7 e5 I0 t+ T" h2 `" r0 L+ v6 l -> '14.3'
8 w9 ~& y8 U- Y: N% g+ m7 J5 T/ p- W
7 Z! m' E1 m" X2 O4 F ]length(str) " j5 ^' v Q# a7 F# r- o2 T
octet_length(str)
+ O0 ~0 z* z( u/ v+ q# i, Gchar_length(str) & n9 l" t# P+ l2 U! b* @
character_length(str) `9 Q6 @, q# l& Z# s) d, g
返回字符串str的长度(对于多字节字符char_length仅计算一次). [6 F% L$ r" h7 I
mysql> select length('text');
* k: M* |8 E$ u2 p( ^2 Z$ t; u) ^ -> 4
8 ^+ e/ F p% }/ d7 |mysql> select octet_length('text'); 5 u/ L1 p$ g: L4 o- o5 O. \
-> 4 2 Q L$ J! i I2 U- m. ^
) V( K5 b1 g1 H: W0 M
locate(substr,str) 5 `0 N* ]' h+ m
position(substr in str) 2 P# X0 C/ Z7 e2 U; A7 N( U
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0) 3 V5 O8 e/ o' h& r
mysql> select locate('bar', 'foobarbar');
+ ^8 V2 o3 ]9 y9 l4 } -> 4 5 @" e/ N% g/ q/ F. p
mysql> select locate('xbar', 'foobar'); ( L/ v1 P( U/ c( i' t. K1 b
-> 0
2 B& K9 a0 c9 m" D( g7 X4 U! f
3 q: A9 d. J7 @ D& w$ o, r2 xlocate(substr,str,pos) 9 v: R {/ `/ ^5 G$ T+ h! P5 [
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)
) h' S. e4 v" `9 Rmysql> select locate('bar', 'foobarbar',5); - y: A: H# ]# n; D7 F
-> 7 2 H" A5 s" ] [" B+ j4 U6 _
- f1 D- z- }0 Z4 K+ linstr(str,substr)
, `6 K/ N* x5 Y2 @: t: f返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)
/ ~/ C9 \# ^% @+ F, P: Jmysql> select instr('foobarbar', 'bar'); / Y# G5 q! T9 H$ W0 P
-> 4
* W2 @$ M8 b2 P. w1 n& W/ Jmysql> select instr('xbar', 'foobar');
+ ^+ ]6 P! z$ w -> 0
6 h- c1 u& S/ m# {6 z& J) E" a ( F' J( |" g1 L
lpad(str,len,padstr)
$ [) j. \; P8 A/ o9 E8 T' M9 v用字符串padstr填补str左端直到字串长度为len并返回 7 q5 T3 k2 O% z1 }% {/ D
mysql> select lpad('hi',4,'??');
/ ~) R [, @& L! S. Y. \' ?; y -> '??hi' 0 f. O3 I! o M" C* A& f6 ~! `
% z. z+ p6 h0 q A
rpad(str,len,padstr) ; q# n' l1 k& _) N1 T2 L) k
用字符串padstr填补str右端直到字串长度为len并返回
, I* z- m- `, I3 ~# {1 rmysql> select rpad('hi',5,'?');
" O, f9 V( w5 i) o& F5 z -> 'hi???'
7 \ x% @, J2 J6 t 6 H( C; ?) T9 M( B
left(str,len)
6 H( h6 W, a5 V返回字符串str的左端len个字符
0 w5 C1 i. ?, u+ q; [ B. _0 hmysql> select left('foobarbar', 5); ) O. [" W: f+ U) ?) |9 W* H& s
-> 'fooba' 5 \) D2 Z9 d7 {) \; ?1 h; H
$ p" I" @# R# j' f8 Yright(str,len)
7 \5 q7 P: i# M6 C返回字符串str的右端len个字符
) t) r5 _2 Y. b/ X( {mysql> select right('foobarbar', 4); / W7 k4 x* x0 \7 a$ j! y' u
-> 'rbar' + E0 A% E! }, F% Y9 u! W2 F4 h
' p/ t% F/ m* h! c3 W/ g
substring(str,pos,len) $ L$ `3 P" w$ c, t% B
substring(str from pos for len) ' i4 ^- ?9 b$ N4 m
mid(str,pos,len)
$ {* [% l0 D1 d" ]/ D( r' _3 q返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6); * j) t$ h; ^, n( p- n6 K0 v
-> 'ratica' " [$ s& `3 u3 I
; d- I/ E j% p) o4 m* {! rsubstring(str,pos) % Y7 g/ V p' n/ R5 D; h
substring(str from pos)
- y6 d; Y$ f3 x6 r5 S7 a% P返回字符串str的位置pos起的一个子串 : X; u0 m! Y( h/ O( R5 t
mysql> select substring('quadratically',5);
! n. e, s8 E1 a7 V$ g! l0 r. H -> 'ratically'
/ X. J6 w- M9 v3 G) Dmysql> select substring('foobarbar' from 4); " m$ y: P" c: p( b
-> 'barbar' 4 X" z, l/ x) a
h! `5 g- V) t* c. q- usubstring_index(str,delim,count)
/ p- n8 c! ]& @3 |1 s返回从字符串str的第count个出现的分隔符delim之后的子串9 C) h% K: }' P3 c+ ?
(count为正数时返回左端,否则返回右端子串) m K2 X3 I% _% @5 y
mysql> select substring_index('www.mysql.com', '.', 2);
, o0 I1 ~# s* X6 l$ Y -> 'www.mysql'
+ c* }! g. y7 n- Pmysql> select substring_index('www.mysql.com', '.', -2);
) w. o0 \9 n: X. a: x -> 'mysql.com' 2 U/ E0 n5 }8 T' v1 a: N
" u! L9 x& U7 f2 ?9 e6 A; \, }4 Wltrim(str) # Y# q6 m9 _' f5 y% S6 Y
返回删除了左空格的字符串str
% [9 Y h; T, C6 p6 jmysql> select ltrim(' barbar'); 5 ^. z. H: n* u1 }* p
-> 'barbar' ) ?! i8 ], y2 P2 p
6 O! {9 B% C5 k/ \5 [) B7 J. D
rtrim(str)
$ j0 D" \7 s j% n; R9 n返回删除了右空格的字符串str 3 Q. e) j3 p& B0 J
mysql> select rtrim('barbar '); * u& t; h' G8 [8 \
-> 'barbar'
1 q F1 u8 Q% P+ ]% |7 m# p
k6 C; W2 c9 R3 L0 E6 Ytrim([[both | leading | trailing] [remstr] from] str) % Q# D5 {2 Q4 Y& s0 q% v% n
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)
. M7 j) j: N. J# d. Z* H' t2 F$ Z4 j& ~' amysql> select trim(' bar ');
& Q# V& m8 C4 q+ H: ? -> 'bar'
: l n1 ?. ?" rmysql> select trim(leading 'x' from 'xxxbarxxx'); ( ] z Q) Y: y: {4 p7 S A
-> 'barxxx' o2 Q0 a q# a. ~$ P) ?
mysql> select trim(both 'x' from 'xxxbarxxx');
: u( `, l, L. w( I. U9 f/ ~ -> 'bar'
' _3 \/ Y @& N2 Hmysql> select trim(trailing 'xyz' from 'barxxyz');
7 q% A4 [6 \7 l0 |$ [' a! M -> 'barx'
) C7 ]9 D8 [" g* e+ W
\7 P) d! W9 r6 m/ {" I+ lsoundex(str)
1 @4 w3 Y. \* t1 X. B& D返回str的一个同音字符串(听起来“大致相同”字符串有相同的
6 O, w5 w* L' u4 k9 S3 o/ X7 R同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)
) V) ^* ^+ _3 {1 `$ H9 X3 H- a+ K$ I* R* Hmysql> select soundex('hello'); 4 q+ W; K* l7 m& Q
-> 'h400' ) ]3 l3 b5 h- H( J4 H# S
mysql> select soundex('quadratically');
; B" m7 s7 \5 B7 p6 H -> 'q36324' ' M; h# Z4 U% Q( { C
6 U3 F( F, r$ @/ [/ N7 y; U
space(n) 7 x8 i4 X# z2 {( {* u: U
返回由n个空格字符组成的一个字符串 + ~0 v) V" }$ u) d" D4 k: I
mysql> select space(6); ! r8 I1 h0 p" P2 ^* p Q# ~9 v
-> ' '
# x8 g. {$ j* ?
5 H# S6 P# z% W3 y9 o$ Jreplace(str,from_str,to_str)
+ i W6 J$ ]/ l% y* Y& W用字符串to_str替换字符串str中的子串from_str并返回 # u5 S" J, U2 ^* G/ Z. i0 N F! m
mysql> select replace('www.mysql.com', 'w', 'ww');
# o5 S! U$ c; n -> 'wwwwww.mysql.com'
7 c1 E0 U! L& a/ M% Y$ d
1 E, F3 y7 ]! ^7 ^7 d+ ~repeat(str,count)
$ y" T0 K* P- Y/ q+ \1 |' T% }, _返回由count个字符串str连成的一个字符串(任何参数为null时' m2 r$ h4 n- c4 T! w1 ~ k7 S
返回null,count<=0时返回一个空字符串) * l% N. C0 U: ]/ O8 S
mysql> select repeat('mysql', 3);
7 ]" ^6 D* Y# f' D8 F3 N1 z" ?: W -> 'mysqlmysqlmysql'
# m) J- F4 F% d8 K% ~* S0 H2 \/ v
2 o' D: a; A# N: U4 r, {$ j8 rreverse(str)
0 l* p+ v3 G N n G3 s4 c2 ?颠倒字符串str的字符顺序并返回 " q$ x$ \1 O% a |7 T4 T4 B' |$ Y' V
mysql> select reverse('abc'); 1 I2 j/ m( K: k$ `5 N0 h7 L
-> 'cba'
/ {. ]& S a9 |* m
- ^6 ~: D, t# R8 @- Cinsert(str,pos,len,newstr) / l% n" N* Z8 D8 j( y/ Q7 r
把字符串str由位置pos起len个字符长的子串替换为字符串
5 i/ j! P4 R4 S1 Gnewstr并返回 ' O `' N! g$ V& x3 K& x
mysql> select insert('quadratic', 3, 4, 'what');
8 K2 m1 L1 Q) J; Y9 ]# |2 y -> 'quwhattic'
- l; {5 R: _( C% U; }, A
4 A- h$ Z! L. U3 ` X) C( Pelt(n,str1,str2,str3,...)
( C+ V* ?. @: d# K; _, F返回第n个字符串(n小于1或大于参数个数返回null)
- N9 |1 j$ E K; k: Mmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');
" A% t/ d: X* ^5 g' k0 Z5 L -> 'ej'
5 @% ~9 E1 p: t7 e# Gmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');
' [" ]7 b! \4 t/ q3 f+ N -> 'foo' " k6 j' |9 }" T$ I9 X5 n( g
4 n" m Z( h# g
field(str,str1,str2,str3,...)
+ ?& o+ Z! ^* m0 Y6 h: p; V返回str等于其后的第n个字符串的序号(如果str没找到返回0) & S& Y4 X% S* ?1 J
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
" _& ^! h& Y4 ^. ^* U'foo'); / H3 o: O" B" @/ F3 p1 Q
-> 2 ) g, M/ m u8 ]5 p9 C. O
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',8 F( g+ {; u3 Z4 m3 H0 l: @7 d
'foo'); 8 i' c0 V1 ^7 R% D" [1 ~# m
-> 0
, r- Z& v4 g5 e7 H' j' q# K# ?' n! q
; r" s; T. N: x9 _; Y+ `# efind_in_set(str,strlist) , u1 h& a C0 _2 O7 H$ v7 z
返回str在字符串集strlist中的序号(任何参数是null则返回) Z" O- u4 T- e& R
null,如果str没找到返回0,参数1包含","时工作异常) ' i9 C. E1 |; x, ? F0 w( X" Y
mysql> select find_in_set('b','a,b,c,d');
( T) M4 E* M8 z; c3 f -> 2
/ V$ s& b$ H2 a
/ d0 J) m- d1 j. L, }' j9 Rmake_set(bits,str1,str2,...)
9 B2 z) t" C: P+ U2 p( l把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应+ e: ~- v7 C, |+ Y2 R( e
位置的字串选入字串集并返回(null串不添加到结果中)
/ _2 _ H4 H/ d: O( N& smysql> select make_set(1,'a','b','c');
: v! U5 b2 B3 s) o9 ^8 D -> 'a'
5 |4 e; l! B& ~: v$ ^" bmysql> select make_set(1 | 4,'hello','nice','world');
" Y: X8 H8 W: G) e9 f -> 'hello,world' , I X) z# [1 }. O) r) c
mysql> select make_set(0,'a','b','c');
+ \) {- n6 y* ~ -> ''
( g6 o7 `1 N% s0 R: j' Q 3 B+ w' [7 h' l/ s% {0 M" m' j' B
export_set(bits,on,off,[separator,[number_of_bits]])
9 K5 F4 K, U0 h% Q按bits排列字符串集,只有当位等于1时插入字串on,否则插入
( K2 S; X" k$ R) R2 toff(separator默认值",",number_of_bits参数使用时长度不足补0) i8 b/ Z$ c" b. d& d T
而过长截断) . S. W6 A$ r1 d% }/ f+ T
mysql> select export_set(5,'y','n',',',4) 8 d3 [) R4 v' c+ {" Q
-> y,n,y,n
2 U# [* i0 b/ r7 Y1 D Q
\ c. w* s# A) x; wlcase(str) - Y) `7 O1 }; e* T6 S9 _
lower(str) * _/ |( E9 j4 ?% b2 l$ v' n7 Q" z
返回小写的字符串str * A1 s* V L1 A$ }3 d
mysql> select lcase('quadratically'); 0 z/ q/ b1 |5 i& q# Y
-> 'quadratically' 5 b& h2 D+ O* s! a
$ s( x8 m# @0 `$ v0 r$ I
ucase(str)
# }% J; X% C: x: M: C; P1 Gupper(str) ! k1 f' r+ P" m( p. o4 T4 C
返回大写的字符串str
1 T4 t. G- V1 S) ~# H/ ^mysql> select ucase('quadratically');
1 W/ e5 ^* e1 v9 l% R" y -> 'quadratically' * N' s. b! j" P" x
' r" U s. z7 Y, ^' H! Y' R
load_file(file_name) & `( D0 X0 K0 j P. T
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
+ w' i8 \8 l4 D$ u* e! ` B不完整,没有权限,长度大于max_allowed_packet会返回null) ! t" b! i4 ]3 x
mysql> update table_name set blob_column=load_file
1 _7 M* Q! o# x8 v4 N("/tmp/picture") where id=1; , B( e+ m1 V( ]5 v/ R6 R& `( m' r
9 s) n8 \' ^1 {0 g2 J2、数学函数
! e. g A( u5 G6 Jabs(n)
. e1 @, H+ w' K @3 w( _9 D返回n的绝对值
7 Q) }: Y8 \" s* d4 jmysql> select abs(2); 1 e, i" y q8 V' h& F/ J; w1 i
-> 2 1 e2 z; O3 C) n4 \$ Q, Y
mysql> select abs(-32);
, i, ?2 G+ n1 \6 I8 ?9 X( Z -> 32 ; V) t5 j5 ^- {/ C' @& u8 s
5 N+ O. D" t: w. Tsign(n)
3 W6 C' B& w% a+ V返回参数的符号(为-1、0或1)
% U7 H' b8 _0 [' p- rmysql> select sign(-32);
! u/ Y/ e, P- w -> -1 0 }4 Y# m! ] F8 \4 @7 f
mysql> select sign(0); 1 ?* {+ e+ P! _! O! ]
-> 0
) w6 Q! \+ u, }, b, a% G7 Z0 K* Wmysql> select sign(234); $ _/ g4 ?" t/ k
-> 1
0 {: U& O# h5 K/ v# N- b
8 K' ~2 o, Q i- r. e9 C" U p( {mod(n,m) " P: E3 N* _% ~! T) c# y
取模运算,返回n被m除的余数(同%操作符)
# a b, ?5 G; @4 ?$ X8 Nmysql> select mod(234, 10); - P* C4 w9 U3 A7 J. Y& Y1 n& C& p
-> 4 8 |: y4 a+ M# Q; m \4 ]
mysql> select 234 % 10; ' [6 \) B% X6 \! g8 c( I7 [$ J
-> 4
; U" U8 Y* k# [/ R; n: w1 bmysql> select mod(29,9);
# c7 [( ~" a* M+ W/ w -> 2 4 _% R4 [( q# P, v# ]
, g9 W; d* ~2 D4 P' F7 p% v: afloor(n) 5 y) s: K1 K% q" Q1 ~! c6 b
返回不大于n的最大整数值 0 W1 a% N4 o: A3 m; o, l
mysql> select floor(1.23);
/ A9 k; H0 q1 t$ W -> 1 " Y, W& \% F5 l+ t0 |
mysql> select floor(-1.23); 4 {; \* q# F2 _8 o1 t
-> -2
0 L5 M8 a8 c. D1 A
9 @, G; R: E, W+ F( n4 j$ wceiling(n) ' P1 Q$ p$ ?$ H; E r7 W4 L
返回不小于n的最小整数值
' G; ?) T a, T$ s. \/ x: d; p7 nmysql> select ceiling(1.23); 0 x N& @- [4 ~% q5 z
-> 2 ( T8 n: m3 {, r, @; i, ~+ }5 B
mysql> select ceiling(-1.23); 2 ]6 C/ l4 I& C
-> -1
1 g* X5 k! i k9 U& k
# ?9 K9 Z7 Z. ?' i8 ~1 hround(n,d)
- u) l2 C' i& y返回n的四舍五入值,保留d位小数(d的默认值为0) 8 `0 i) D1 G% B: E. }
mysql> select round(-1.23);
8 A$ t9 |' Q2 A2 o0 A! J' f -> -1
- y' F3 Q- B0 s) Dmysql> select round(-1.58);
7 w' R$ G1 L! K -> -2
7 v, \! M. e( C: I9 Hmysql> select round(1.58); : X8 M9 Y* ^4 i& `: b
-> 2 " D8 F5 G6 m% M" n+ q/ F2 v* v' d8 O
mysql> select round(1.298, 1); - W. W& }5 q& u% c4 L
-> 1.3 1 D' p3 ~$ @8 d ^
mysql> select round(1.298, 0); ( z# W/ t3 a t C# `
-> 1 * m6 d0 ?2 m- K: P% G
) d" G1 [6 b, p# e% _. |" M
exp(n) , G- w' f: n* c2 A# V
返回值e的n次方(自然对数的底) * m5 c) U& O6 L! s: P4 }
mysql> select exp(2); 3 A# P- s- w: L
-> 7.389056
4 Q# ]9 Z6 q! T, Amysql> select exp(-2); 7 T# [2 k7 ^+ H J8 x1 E
-> 0.135335
9 I- [$ b v7 }4 g0 S* D4 m% v5 ~$ ^ 9 K* F E( G, P0 w3 l
log(n) / E3 g p# z0 [2 n$ s; ^# j: r2 m
返回n的自然对数 5 Q& B' s; P8 J8 o: L. S
mysql> select log(2); . N# ~2 } ? X
-> 0.693147 0 b) P' N" P& H
mysql> select log(-2); 8 P, s' t& {/ q0 W( e7 o }
-> null k+ f# r/ v9 O) b0 N1 F
- R0 k, p3 _6 Y: O2 Q3 B6 X2 P
log10(n) + B! R( C' r1 f. B: _) C! E
返回n以10为底的对数 : e5 A$ \% F0 Y4 w
mysql> select log10(2);
8 K2 l9 e5 s# w2 s -> 0.301030 ( q* |+ X- C( u9 C) ^8 |
mysql> select log10(100);
3 X2 B* V Z0 ~# \ -> 2.000000 : B5 S R p; [+ x
mysql> select log10(-100); 7 P/ |2 m# \, G8 [2 b" x6 f8 q
-> null 4 O+ R, Q0 T+ V2 v3 r; }
# f! A* Z! L! r# O/ R8 \; ypow(x,y)
. {% L* C) r( _0 o' o( X! apower(x,y) , e. P; b( h% z. l+ S1 L
返回值x的y次幂
" L4 S. a' a$ J1 j; s+ @& Tmysql> select pow(2,2); / i( I& ]: c1 f/ _
-> 4.000000 : d" {+ _4 `% q( r
mysql> select pow(2,-2);
9 ^" ?6 U7 o4 L# B, y -> 0.250000
9 s5 s4 ]+ \6 M7 Z! l$ e3 ~4 D$ m4 v9 ]. K
sqrt(n)
. d$ O' D1 n# @+ D6 U0 M6 a8 r2 v8 T 返回非负数n的平方根 5 l1 j4 P' n' g4 f* u3 M
mysql> select sqrt(4);
, |8 }7 K6 t, b7 Y( V -> 2.000000 ' e' g4 G6 t/ L2 o; [, O# P$ W
mysql> select sqrt(20);
- T& ^, p/ n1 c+ i0 _* V -> 4.472136
/ w: _0 N; n& z " W; Z! }* u5 x+ y% k0 g7 h! ?
pi() - ~& Z+ o8 a" Z8 [
返回圆周率
- ?& ~( m' p. `: @mysql> select pi(); " l8 r/ \6 E9 \8 M. b7 N- l3 z3 v& @8 p
-> 3.141593
" N5 O1 E) \' f" G 1 S! O, [; r6 M* b
cos(n) * s/ v7 G# A1 K' Y
返回n的余弦值
3 z/ h- c) P& N. pmysql> select cos(pi());
% A. `( E3 P( d9 j -> -1.000000 / i5 {4 Q9 S. K! X# C7 ]* A3 _
9 s" _9 w, P$ c. C I* Z
sin(n) : f2 O) p* }+ }8 ? N
返回n的正弦值
# w. t4 N0 c4 xmysql> select sin(pi());
/ @ b7 G; s( \! q: _/ N -> 0.000000 ; v! K. T) c: p6 t) Q) r
' [+ n5 { A5 [& [
tan(n)
8 T" i; v/ r2 `" q9 i; ~0 R返回n的正切值 & h$ Z' C0 l2 C+ q
mysql> select tan(pi()+1);
$ Z( z- j" q- x( F& m; }8 K: ` T' k -> 1.557408
5 s7 `/ h) _0 A8 T% X8 @
- R* e0 ?8 }" `9 f4 h9 Bacos(n)
" V% v- ?; ^6 D$ Z 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null) + G# P: Y W5 C5 U' Z9 ?
mysql> select acos(1);
9 F, }& L* R/ H) q -> 0.000000 8 D6 f" l2 t6 l3 F0 b$ A: Z
mysql> select acos(1.0001); & a0 I. W+ J$ }
-> null
2 I- ~. |; ]5 D* M) H) F/ c' n7 W! smysql> select acos(0); * t- P2 D9 i! p
-> 1.570796
, P- [1 C* x- x+ L+ q$ k 5 c$ \, @- I8 B7 Q7 r" L! U
asin(n) ' N2 W4 K+ X' @, w' L
返回n反正弦值
# _: d0 a, T0 n* Q7 i( rmysql> select asin(0.2); - h( ^' f8 G8 M0 u4 u
-> 0.201358
; x/ B8 j) L* P9 H& ~/ smysql> select asin('foo'); 8 ^# U/ U. H [& m5 e
-> 0.000000
3 L; `$ I! z$ J9 J! V8 q9 G 8 X8 H- N- V: K
atan(n) 3 |8 v j9 Z" ~* C9 p4 U* ~
返回n的反正切值
. u8 Y8 ~' O* Wmysql> select atan(2);
% Y6 M) K5 [1 p! ] -> 1.107149
6 F( _' D$ A6 l5 W0 P: B% nmysql> select atan(-2);
5 f, m; C- `$ v5 V3 S% A9 ^ -> -1.107149
, F: Z! [4 ]3 ]5 E' `5 ^atan2(x,y) , @; M' m, K4 \
返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限) 0 u* p+ }' @$ K- T6 [
mysql> select atan(-2,2);
q& I6 \, V; U1 x# }% V; C -> -0.785398
% B7 f/ h: l0 `; H; y$ Umysql> select atan(pi(),0); 4 L* [ U% s! d# i
-> 1.570796 & k/ m9 O9 l. }
+ o, _1 b6 `0 Xcot(n)
+ Z. Z& A6 P1 x( v返回x的余切 / v, B# j- i* F
mysql> select cot(12); * y* G! P- D( Q+ c7 }$ ^
-> -1.57267341 4 u) n2 [1 L1 `8 B
mysql> select cot(0); 4 n! t# t# s) z; S
-> null
+ t" o. ~" @2 s8 e
' I* _; i# J- X1 I$ R' f% R: Drand()
" B" |/ O/ F/ }' \3 d+ \rand(n)
9 ]" {+ R0 I8 f% ]返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
& a# v; s( V4 ?/ F# S' D 7 c( c" p0 J+ ~ j
mysql> select rand();
+ F8 N$ T) e, B -> 0.5925 5 n3 D8 H5 T" I+ W. C# j9 n. N
mysql> select rand(20); * B' y/ m' f- J C
-> 0.1811
6 E% K9 a8 k% [0 ?mysql> select rand(20); " {3 d: \5 P7 r
-> 0.1811 1 z# u0 a2 p B; }
mysql> select rand(); ( [2 h: k1 t6 u: U/ W7 s) T7 U/ _
-> 0.2079
( I6 {$ X/ j, E1 vmysql> select rand();
' a) B/ Q3 O8 T* V, O/ A( ` -> 0.7888 * W( E" M5 j; T' T0 r
; m. W" n. f$ ?) r- _8 P0 A, Cdegrees(n) ; [( P5 O) m% {
把n从弧度变换为角度并返回
, S) U6 }" U3 A' W4 B* j# gmysql> select degrees(pi()); * W* X. M- T6 p* A# L- |5 ^
-> 180.000000
$ G+ C# p o1 D9 z
2 M7 W9 B1 M8 m1 Bradians(n)
. K; W4 v8 D2 B* i* h: d把n从角度变换为弧度并返回
4 v$ J2 M s x0 K, Y9 K$ C7 f0 Wmysql> select radians(90);
: u8 K/ M! @# k& y -> 1.570796 - {1 \5 A' C) K) X# K% }' j- b
% k- d- U- L! |! {" R8 J3 \+ z) vtruncate(n,d) 0 w6 E: d2 F. B7 F4 a0 h
保留数字n的d位小数并返回 ) O6 |, t y* l! b, g
mysql> select truncate(1.223,1); 8 n" V2 @- p. a2 h$ U3 l4 A. V7 [
-> 1.2 : [# g, `; {4 F, v1 J
mysql> select truncate(1.999,1);
8 c2 Q$ F2 `! n$ E -> 1.9
1 p j( J0 M2 u2 T7 B7 O- Fmysql> select truncate(1.999,0);
/ W( b# \( w7 M y -> 1 2 B' t4 W$ Q# [: O7 g
+ `6 V) F5 c$ G1 hleast(x,y,...) - R9 i+ \: E3 W! Y2 B$ z; x
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较) , A' w: g l4 }" G: {2 M% o
mysql> select least(2,0);
% S4 m6 Y3 v9 V" o, J -> 0 ' j6 j3 i* Z) P7 f2 ]
mysql> select least(34.0,3.0,5.0,767.0); / h: R4 Z. b; j# O9 [
-> 3.0
0 T- d4 |1 Y. l6 o, g$ I0 `" |mysql> select least("b","a","c");
9 Y+ i" l% A7 t+ m4 d -> "a"
j- n8 S$ X4 N% g4 R3 N! ~
( f# X; o3 Z# q) S) ngreatest(x,y,...)
# t8 M7 w2 _$ r U0 I返回最大值(其余同least())
' |7 r9 R1 ~. V9 ^' m& x: U4 xmysql> select greatest(2,0); % A& q$ K/ r; O2 k
-> 2
; y4 ^4 H5 v- x# O1 ^mysql> select greatest(34.0,3.0,5.0,767.0); 0 F6 |1 ^8 i' h1 t4 L$ j" a
-> 767.0 x" O/ \% S: Y# A8 I8 _5 Q* t8 g3 x
mysql> select greatest("b","a","c");
5 {6 ~- u5 H. a& p -> "c"
. E$ s5 Z+ e1 a% ]9 }8 ?+ B
/ f, l/ D) s+ x# o( v/ L, @4 \ }3、时期时间函数 . S' ^7 ?% u1 i7 z6 ]
dayofweek(date)
5 k# b7 V: Z9 Y返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)
7 r& P/ n+ O! p8 `2 k+ \3 O7 Tmysql> select dayofweek('1998-02-03');
7 m' D0 N9 X1 { m/ g$ U9 u9 J+ _ -> 3
% ~* b: q* Z$ M0 ]# s
6 l- l+ e2 y$ u$ ~/ }0 A0 yweekday(date)
: f' z n2 x `3 m返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
5 B- o' Q. W3 {9 h , D8 G; U$ M1 ^( _2 ~
mysql> select weekday('1997-10-04 22:23:00'); - l% s& d, q$ C0 O9 f- f
-> 5
9 {" h; U! o% m, I& Z# Smysql> select weekday('1997-11-05');
) V- S" @8 b3 t6 Z) B( A* y) U { -> 2 & o- ?0 i% K3 T: y! j
& t6 x9 j( @5 }: pdayofmonth(date)
8 f2 Z/ H- B, j返回date是一月中的第几日(在1到31范围内) , u. g" t$ e, m& c
mysql> select dayofmonth('1998-02-03');
9 _; k9 U0 s6 f# ]- S( u -> 3 # y& u8 k' ~1 S; H
- X( @! {# c1 t; Pdayofyear(date)
3 x: A5 y+ G) v& W返回date是一年中的第几日(在1到366范围内) / ^7 G1 O8 N& n! o
mysql> select dayofyear('1998-02-03');
, `6 g8 T6 w* @" C -> 34
4 o/ B7 ~* Q8 S0 u$ R. X : t% u/ y8 q. a+ V' s
month(date)
. b* ^0 G8 d4 O返回date中的月份数值 2 @( G% w0 f% c
mysql> select month('1998-02-03');
. `+ j& E4 \% E$ @ -> 2 ! ~( r2 R$ q0 B7 d: }
' v- ]$ \# _7 n( ~, k
dayname(date) ; j$ ~1 g+ {& Z
返回date是星期几(按英文名返回) ( k& y( r2 j0 F8 [& V' V* y
mysql> select dayname("1998-02-05"); o* f) l% W# |0 N. a/ L# f0 @) C: I6 \
-> 'thursday'
4 |% L0 F- ~( a% K. {; r % o- ^9 m' y! c4 t I
monthname(date)
' e* N% o6 u$ J5 I5 _返回date是几月(按英文名返回)
- |' L- C( Z0 h& vmysql> select monthname("1998-02-05");
& t3 S" H1 J! ^ -> 'february'
- K4 |$ E4 E8 S
/ N7 c2 J5 }) ?) `quarter(date)
, C0 Q, _% \' x返回date是一年的第几个季度 , P; M3 Z! R! `2 C9 e1 }! A
mysql> select quarter('98-04-01');
+ Q' G! a; `( ? -> 2
( y7 r& }) B9 G9 W4 C6 }3 d6 ^5 W
# p8 o3 H3 X1 }1 X4 @3 m- [week(date,first) 0 f" X1 @, v, Y
返回date是一年的第几周(first默认值0,first取值1表示周一是
3 _! W% B; B! g% }! @周的开始,0从周日开始)
; t3 `7 A5 I1 e. i% smysql> select week('1998-02-20'); 5 u0 d/ H. e& @* C
-> 7
, m: L* F- Y# l- cmysql> select week('1998-02-20',0);
. z% {9 K- f( c9 {' K# v( t8 m& q -> 7 ( a1 W, ^, u& ]# u/ [& q2 O7 s
mysql> select week('1998-02-20',1);
$ N5 D! L4 L3 b8 Y2 ^% [. k5 u4 |3 C) o -> 8
* [/ m; R, s# f. s# f D 2 I# Y+ V" X7 H* o! G# o0 I, h. I
year(date) % k w4 z# R; D9 U
返回date的年份(范围在1000到9999)
( T9 e# U' @2 l7 e: }mysql> select year('98-02-03'); - Z" r3 M5 U( j2 A b: f+ X2 C
-> 1998 5 t. ?4 B" f: _1 g$ ^% k
! P8 G8 Z( ^( U3 v4 u: f. b
hour(time)
- d+ T* d7 }; e9 v7 L6 C/ u+ `返回time的小时数(范围是0到23) 6 a# u$ |( B) h! J$ [# Q/ b
mysql> select hour('10:05:03');
3 j: X+ M" a: J3 N4 @ -> 10
: N$ x9 N# m: f+ g% Y
. \5 W% |* X0 H" ominute(time) - k8 n- ?% b2 I, e
返回time的分钟数(范围是0到59) * ^: r& t/ a1 b6 S6 G+ X, Z9 y7 t5 C
mysql> select minute('98-02-03 10:05:03');
" `& t. M4 _& ^3 ]1 _$ @ -> 5 " I: D" ]% T6 P3 z: v: f
& b; O' r/ { ?: `4 P
second(time) ! H8 }! [1 ^5 I& m. d! N" L6 q
返回time的秒数(范围是0到59) : ]8 ]! C& ?: r! q I# m
mysql> select second('10:05:03');
9 t$ `5 ^* q0 }+ L1 C; q -> 3
( G1 S4 W* I- X5 L- a$ ^
, P7 m+ C/ W! M! n# Y7 ~# W! Bperiod_add(p,n)
( H+ @" I) A5 u3 F. G/ L* l增加n个月到时期p并返回(p的格式yymm或yyyymm)
1 a: v, \/ l6 s9 y* B. t5 }* ymysql> select period_add(9801,2);
9 @6 x9 W9 w& Z/ d( | -> 199803 , E8 ~! u y1 \6 [ ?, A$ T$ W% X
/ W: K' [! q' ]0 n' U
period_diff(p1,p2) 8 I% {( m$ n! M' f! p
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)
+ j) u3 i) k. W$ X( k- G( Pmysql> select period_diff(9802,199703); : V1 V l- S2 J' N! }6 E( r
-> 11 0 p. |3 V' g. W6 f: A! F
* a _. K9 T6 `5 m6 J, Kdate_add(date,interval expr type) ( e! \ t, O# B& w' `' G
date_sub(date,interval expr type) 3 R- S+ }2 s! r
adddate(date,interval expr type) 2 L" ^: \0 | W8 x4 b
subdate(date,interval expr type)
. y+ h5 @4 N! x# m& u+ Z对日期时间进行加减法运算 4 V! U& j* d* W# I
(adddate()和subdate()是date_add()和date_sub()的同义词,也
# y' I/ T; j- |- q2 H可以用运算符+和-而不是函数 $ T8 J. J M& A# Y/ \- w
date是一个datetime或date值,expr对date进行加减法的一个表) m6 R. ]4 |3 \! Z# [8 t
达式字符串type指明表达式expr应该如何被解释
; r0 {3 s: r$ X. A" F( } [type值 含义 期望的expr格式]:
5 L$ o8 ~, p" L& f& p5 n second 秒 seconds ) |" [' a5 z- K3 |( q
minute 分钟 minutes 7 C- Y$ M/ u5 O B, K
hour 时间 hours
) E0 C. D, d! h# @$ v day 天 days * _) k* e0 J8 Z, h8 |. X5 J2 {
month 月 months
- B& N G5 h6 Y, G& j! U) _! w year 年 years
5 C( [4 G; z. h' ]) y minute_second 分钟和秒 "minutes:seconds" T9 ?# k6 ^4 c# N; X
hour_minute 小时和分钟 "hours:minutes"
0 s( _. k: s5 |1 h; C7 p% g. t day_hour 天和小时 "days hours"
1 ^0 g+ [: K# M& `- V6 w year_month 年和月 "years-months" + y1 _& u# r1 { ~
hour_second 小时, 分钟, "hours:minutes:seconds"
( ^' ^ Q, e, L- R! b- j day_minute 天, 小时, 分钟 "days hours:minutes" ! G# U: b. x) f6 N/ x2 W
day_second 天, 小时, 分钟, 秒 "days- [4 V/ J# ?0 J
hours:minutes:seconds"
' C% f6 U, R* d+ B expr中允许任何标点做分隔符,如果所有是date值时结果是一个5 I) ]( X. \- J' G1 ^
date值,否则结果是一个datetime值)
. r7 G: @4 e* M4 k. E W 如果type关键词不完整,则mysql从右端取值,day_second因为缺; ^7 W. A$ \7 ]5 @$ K; z" M! f
少小时分钟等于minute_second) ! F2 v- ^/ H5 D4 a$ u" v2 X: @% h
如果增加month、year_month或year,天数大于结果月份的最大天
- e2 x& c5 [, P) T8 W: Q, z, g5 _数则使用最大天数)
. f% Z5 _/ g- C, x) A9 mmysql> select "1997-12-31 23:59:59" + interval 1 second; 5 [6 ] M( c. H
6 R! A/ E( h4 s Z& J -> 1998-01-01 00:00:00
, {& i- X$ v4 h7 wmysql> select interval 1 day + "1997-12-31"; / H9 R9 @. O, B7 f& a
-> 1998-01-01 / [3 \$ U% b7 D0 z! y/ j
mysql> select "1998-01-01" - interval 1 second;
( M x/ K0 v# n8 c# W: a' Y2 n -> 1997-12-31 23:59:59
t# L+ ?( I! r6 n- E4 \2 Nmysql> select date_add("1997-12-31 23:59:59",interval 1
2 }) e, R" x3 K' h- S* usecond);
- J! Y q. p1 [ -> 1998-01-01 00:00:00
y* v0 N# T- ~mysql> select date_add("1997-12-31 23:59:59",interval 1
9 b0 T+ }) A: M9 Q% ~" t/ K* L8 oday);
; o7 y6 y5 t7 N& W -> 1998-01-01 23:59:59 S/ @) m9 C1 b C8 }
mysql> select date_add("1997-12-31 23:59:59",interval! J4 z8 O {6 h% k$ ~3 V* ?8 `- Y
"1:1" minute_second);
S( z9 a( Y/ h$ G+ B1 A2 S -> 1998-01-01 00:01:00
: J' C) @" m {mysql> select date_sub("1998-01-01 00:00:00",interval "1
8 C# V* e" Y+ O, M1:1:1" day_second); + O D5 y: `. p3 b8 }9 S
-> 1997-12-30 22:58:59 " J( j: Q5 Q- t* x* i5 S2 M' _
mysql> select date_add("1998-01-01 00:00:00", interval "-1
% E# {* N$ J& }6 l6 w1 _10" day_hour);
/ Q/ ~/ v ~$ x0 ]. ?- i* ^, Q) V6 e -> 1997-12-30 14:00:00 * @/ I z9 C$ ~9 Z: v7 m/ S
mysql> select date_sub("1998-01-02", interval 31 day);
w4 o$ @, _5 R1 z: @5 h- A -> 1997-12-02
( S5 I% o) B9 Cmysql> select extract(year from "1999-07-02");
* i& f& n. V$ O: V$ e" p8 s x) ` -> 1999 0 R0 m) q; r5 U' `* I' a
mysql> select extract(year_month from "1999-07-02% i& ?2 \/ M' ^! X T( y' j/ p0 ~
01:02:03");
# W- ?: X" q5 \, D7 k) j, W -> 199907 + t! t5 u) R) w4 f, Z9 L, O
mysql> select extract(day_minute from "1999-07-02
) e2 d3 g7 a! a# c: N$ ~' t9 S8 Y- |01:02:03");
( F4 t! F5 D4 E' S* n -> 20102
( y8 d/ c; N3 S2 ^- k( {& l8 }( E + w% u4 T H# ?: {$ x
to_days(date)
7 B0 H% k5 X" B/ l K+ |- x0 |返回日期date是西元0年至今多少天(不计算1582年以前)
6 t6 h+ t5 L5 c1 z% f# ?0 w! Umysql> select to_days(950501);
1 j, t/ @2 L) {% Z* C -> 728779 3 V1 ]* ^9 T' g$ |3 m0 d0 t
mysql> select to_days('1997-10-07');
' H) P0 U/ @4 n/ m -> 729669 9 ^# [" P/ o% W1 N" ^% L$ P9 |
5 D0 m) C) @( K1 e- Z8 f9 F' s6 m, @
from_days(n)
. ]# D {4 [* o9 A8 R! f3 Z, ] 给出西元0年至今多少天返回date值(不计算1582年以前) 1 ^, j5 b% W" x0 Z/ Y) K
mysql> select from_days(729669);
; q4 u( d+ v, t -> '1997-10-07'
% ]9 U; |7 i0 Y8 R1 S4 F+ x+ C 7 D$ j) w$ J( A7 Z
date_format(date,format)
2 x2 Y; v. _( ~ 根据format字符串格式化date值
4 u2 `1 g& a# L# f" K/ n (在format字符串中可用标志符:
! O) e+ {* E4 s* }( [ %m 月名字(january……december)
- H* A. [' l" W7 ^0 ?7 |" ^ %w 星期名字(sunday……saturday) ' S1 P, u# M0 C5 a- a7 e, l$ m" G
%d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。) + H" u# w- v' q; b2 G+ @
%y 年, 数字, 4 位 & ? o9 a& T4 T2 e& @/ [
%y 年, 数字, 2 位 9 ^" P( n; o+ k K6 e7 g* w
%a 缩写的星期名字(sun……sat) % }8 |( {1 ]1 E, b2 D$ {
%d 月份中的天数, 数字(00……31)
6 s6 t4 d t3 w* o3 N %e 月份中的天数, 数字(0……31)
: b7 S) O4 l5 y5 C %m 月, 数字(01……12)
' y1 j# ^$ P) H2 }2 x6 k: j2 A %c 月, 数字(1……12)
8 J, \5 c; s& M8 m+ L8 B+ O1 U %b 缩写的月份名字(jan……dec)
8 [/ w0 h" @, s1 H& A %j 一年中的天数(001……366)
; p; w) s6 A( l %h 小时(00……23) : M. x( K: B0 f' z* {5 x
%k 小时(0……23)
, P% J3 ?% E& u0 _7 b2 r* h7 c %h 小时(01……12) $ B1 g/ I8 M0 o9 O$ x
%i 小时(01……12)
) m4 q' E- Z2 R/ _ %l 小时(1……12)
4 s0 m1 {: d5 ]- m8 I %i 分钟, 数字(00……59) - P5 @' `# ~3 B, L: \
%r 时间,12 小时(hh:mm:ss [ap]m) 9 m; _! K B" i9 ?* l2 V( I1 b
%t 时间,24 小时(hh:mm:ss) 0 @' D7 z5 G% Y9 T# @
%s 秒(00……59)
* K" l: P& B3 w; A5 j7 ` %s 秒(00……59)
' @# d7 ~/ y8 k# F %p am或pm
" J. b* b7 b1 O# L" i %w 一个星期中的天数(0=sunday ……6=saturday )
' O, U) L. H$ r6 @. y1 ` %u 星期(0……52), 这里星期天是星期的第一天
+ L: [) _! w( {3 y# _ %u 星期(0……52), 这里星期一是星期的第一天 3 n5 u! _! t- E6 a q8 n) D8 o
%% 字符% )
. E' j q t% p1 w& {1 X- o8 @mysql> select date_format('1997-10-04 22:23:00','%w %m %
8 V8 a r) x- Y6 Xy');
g/ ?8 e8 n/ `7 u8 m. S6 a" U0 Q" C -> 'saturday october 1997'
+ L; |; x4 Y5 s/ ~& ]9 {' Dmysql> select date_format('1997-10-04 22:23:00','%h:%i:%1 C6 \. e+ q, e7 E( r1 ^$ T
s'); " E7 `% t5 s4 [- F
-> '22:23:00' 1 @3 q' c( ?, V# b( L
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
- Y4 s4 y2 `; J- m%d %m %b %j'); $ _ g3 }6 Z2 T" C
-> '4th 97 sat 04 10 oct 277'
' _3 F5 s# k+ Q4 b2 Lmysql> select date_format('1997-10-04 22:23:00','%h %k %i( q, X" I( a% x$ r+ p+ V6 {
%r %t %s %w'); ( s; D6 G7 p* W1 E& y m3 I
-> '22 22 10 10:23:00 pm 22:23:00 00 6' ' y" t9 K, c9 k* {% D
/ Q2 r3 p7 q* D) vtime_format(time,format) , b) I1 H: G2 R0 G3 B0 C
和date_format()类似,但time_format只处理小时、分钟和秒(其
% H4 c6 {' Q! i& k0 f7 T余符号产生一个null值或0)
$ ~, Y p$ L+ L8 d& j& v3 V$ R
( a) z- p! w7 Z/ m) H7 M8 Scurdate()
0 A% A1 g4 t% @/ o, _0 `current_date()
0 E! {# y7 x& R) S% s% K3 q+ I 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所: p, C& S1 p- n. U2 }
处上下文是字符串或数字) , v3 ^# J4 P/ m7 _# o+ E6 \7 {% l
mysql> select curdate(); # X$ y. n$ Q6 A8 ^* F9 u4 |
-> '1997-12-15'
6 Y# Y9 _! \9 y. a0 C9 p: ]mysql> select curdate() + 0; , A) c. q/ W3 J4 R l& I& `, q
-> 19971215 , n; X* D& A. o- k
# V- ^/ Q& ^2 Q3 h8 _' Ncurtime()
: f* k1 H3 U( L* J! ccurrent_time()
3 P6 \* a8 ~) z1 o) r/ ~: Z 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上* y3 {- @0 i: E- F* Q& B
下文是字符串或数字) 9 E8 Z! \2 E4 I9 H% h( N
mysql> select curtime(); 7 X& B- F6 k4 A0 F" x
-> '23:50:26'
) t6 F" l' p, g( R+ u9 xmysql> select curtime() + 0; , p& I, o4 }$ J& S
-> 235026
% [5 N& _1 j% v5 K, R# x* V- } 5 h, k. `7 o6 t) k4 o
now() ( ~7 c0 p+ z- i) B' C
sysdate()
3 H0 ^) X4 z, Tcurrent_timestamp() 7 E, Z, O& h8 Y( e
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
, T4 ` R) Y; B P7 d0 x8 Z; p时间(根据返回值所处上下文是字符串或数字)
4 u' t+ A$ y) y$ t4 E, vmysql> select now(); $ V" n, W$ X# } C
-> '1997-12-15 23:50:26'
3 v" K4 B) g) \9 [( z3 R: Jmysql> select now() + 0; ' V0 |, F* @' P4 P9 I3 E
-> 19971215235026 ' @2 }! f# a6 u+ q
6 E5 y: r2 }+ R* w3 Junix_timestamp() * v, ~& Y' i: S, t. Z4 h/ {
unix_timestamp(date) c; O0 N9 D& t7 C+ i! e
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒8 y! H9 k( p! x7 ?$ q
数,date默认值为当前时间)
3 s( n) F4 d" o! p' ^4 ymysql> select unix_timestamp();
5 d% a8 i8 _+ c4 b% _6 Y -> 882226357 8 K, m! d* n% q& K
mysql> select unix_timestamp('1997-10-04 22:23:00');
4 K( [3 k+ c: P2 U; Q6 u1 T6 D -> 875996580
) Y. J/ b$ K3 M) c% |5 D+ M
- p3 P" a/ G6 m1 Vfrom_unixtime(unix_timestamp)
- [% `/ q3 s( m+ D7 t! T以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
6 K/ {7 `& W& k' w: u C值(根据返回值所处上下文是字符串或数字)
u1 k5 T; l2 z8 ?6 Cmysql> select from_unixtime(875996580);
+ {( `! I3 }. l B -> '1997-10-04 22:23:00'
( W. b. V" x9 ^1 _7 _mysql> select from_unixtime(875996580) + 0; & _9 i% O& Z B9 e
-> 19971004222300 ; h% r6 |7 J0 |+ U6 b
6 R: [1 f6 m$ y/ R: ^from_unixtime(unix_timestamp,format)
7 G8 G; M& |2 ~$ u+ V- b以format字符串格式返回时间戳的值
% T% I3 E4 y: E2 t* h( Umysql> select from_unixtime(unix_timestamp(),'%y %d %m %: W |' H* k; q" Y7 D
h:%i:%s %x');
3 t7 K# p& g& Z: ?3 p" ^' u# Q d -> '1997 23rd december 03:43:30 x'
* Z) x; q) L: e+ O- F
: b. \$ v- C* \ ^0 Zsec_to_time(seconds) |5 k$ E' Z( C' J( E
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)
7 g" p- ]5 j" P$ mmysql> select sec_to_time(2378); , b3 s/ \4 l! B5 b( I
-> '00:39:38' / k/ o7 ^) |6 T: t( t! T
mysql> select sec_to_time(2378) + 0; " V+ s* V& e: I! O& l( A
-> 3938 . _& a" f P7 F; }/ s7 P
1 W2 G. r2 ?2 _& x. P
time_to_sec(time)
+ R \, I: F9 p4 [返回time值有多少秒 2 t: _( U: v! O! W) x7 F
mysql> select time_to_sec('22:23:00');
1 g9 b9 X8 R, E f -> 80580
9 ^3 K3 i7 K+ S1 M& M& w( pmysql> select time_to_sec('00:39:38');
/ O: v/ r+ E1 t! k. O0 I -> 2378
; a& B; i. k0 W: L# m1 Y * O3 J: U: d& Z! G
转换函数
2 _9 Z" ]* [) }- `: X# f; S8 J( A+ ucast
& }- }, @) ^8 g6 u用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]9 u/ b' l& s) ]/ U
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
; x( I, @& x0 u8 ^convert:: z* z! [" J2 t! P) `. X4 r5 {$ L
用法:convert(字段,数据类型)
) R9 K Q$ T/ I x: ~+ Q5 T6 Z4 U实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
+ {. j, |/ a; `& ~) e% ^% Q
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/) |
Powered by Discuz! X3.2 |