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