[TOC]
# 函数
## 日期时间函数
日期时间函数主要用来显示有关日期和时间的信息。
#### CURDATE
**声明**
~~~
CURDATE()
~~~
**说明**
返回当前日期,不含时间部分。
**例子**
~~~
obclient> SELECT CURDATE();
+------------+
| CURDATE() |
+------------+
| 2018-05-05 |
+------------+
1 row in set (0.00 sec)
~~~
#### CURRENT\_DATE
**声明**
~~~
CURRENT_DATE()
CURRENT_DATE
~~~
**说明**
同`CURDATE()`。
#### CURRENT\_TIME
**声明**
~~~
CURRENT_TIME([scale])
~~~
**说明**
返回当前时间,不含日期部分。
`scale`有效值为 0 到 6,表示微秒部分精度,默认值为 0。
**例子**
~~~
obclient> SELECT CURRENT_TIME(6);
+-----------------+
| CURRENT_TIME(6) |
+-----------------+
| 11:11:45.215311 |
+-----------------+
1 row in set (0.01 sec)
~~~
#### CURRENT\_TIMESTAMP
**声明**
~~~
CURRENT_TIMESTAMP([scale])
~~~
**说明**
返回当前日期时间,考虑时区设置。
`scale`有效值为 0 到 6,表示微秒部分精度,默认值为 0。
**例子**
~~~
obclient> SELECT CURRENT_TIMESTAMP(6);
+----------------------------+
| CURRENT_TIMESTAMP(6) |
+----------------------------+
| 2018-05-05 11:35:39.177764 |
+----------------------------+
1 row in set (0.01 sec)
~~~
#### CURTIME
**声明**
~~~
CURTIME()
~~~
**说明**
同`CURRENT_TIME()`。
#### DATE\_ADD
**声明**
~~~
DATE_ADD(date, INTERVAL expr unit)
~~~
**说明**
日期时间的算术计算。
* `date`表示日期时间基准,日期部分必选,时间部分可选。
* `expr`表示时间间隔,可以为负值。
* `unit`表示时间间隔单位。
以下为所有时间间隔单位列表:
<table data-tag="table" id="table-wfl-77i-lr2" class="table"><colgroup span="1" width="180" data-tag="col" id="col-u8o-x0m-bmd" colwidth="1*" colnum="1" colname="col1" style="width:25%" class="col"></colgroup><colgroup span="1" width="180" data-tag="col" id="col-u3b-kp9-lc7" colwidth="1*" colnum="2" colname="col2" style="width:25%" class="col"></colgroup><colgroup span="1" width="180" data-tag="col" id="col-pzo-0rt-fsg" colwidth="1*" colnum="3" colname="col3" style="width:25%" class="col"></colgroup><colgroup span="1" width="180" data-tag="col" id="col-nww-roz-hrt" colwidth="1*" colnum="4" colname="col4" style="width:25%" class="col"></colgroup><thead id="thead-bdd-1oy-lqj" class="thead"><tr id="tr-r6j-7rq-4w2"><th id="td-8pa-170-0lm"><p id="p-3tc-5ge-iqa">单位</p></th><th id="td-zut-twq-ltf"><p id="p-gth-bdr-9uz">类型</p></th><th id="td-fr8-4w6-3fy"><p id="p-eii-ls9-j6d">含义</p></th><th id="td-ek3-jyu-vn9"><p id="p-sb4-zb0-yww">格式</p></th></tr></thead><tbody data-tag="tbody" id="tbody-uwu-faj-bh5" class="tbody"><tr data-tag="tr" id="tr-lp7-9q7-epv" class="tr"><td data-tag="td" id="td-43o-95p-psf" class="td"><p id="p-jb5-f14-4co"><code data-tag="code" class="code">MICROSECOND</code></p></td><td data-tag="td" id="td-7na-vwv-rv1" class="td"><p id="p-a9g-m0z-2wr">独立</p></td><td data-tag="td" id="td-46j-07l-vdo" class="td"><p id="p-qz8-9wq-wb7">微秒</p></td><td data-tag="td" id="td-u0n-onl-5mp" class="td"><p id="p-1t9-kzl-cj2"><code data-tag="code" class="code">MICROSECONDS</code></p></td></tr><tr data-tag="tr" id="tr-71m-b6v-5dl" class="tr"><td data-tag="td" id="td-3d9-h6y-q4p" class="td"><p id="p-1th-2rf-9uw"><code data-tag="code" class="code">SECOND</code></p></td><td data-tag="td" id="td-2c6-hy9-ey3" class="td"><p id="p-gof-gee-ld7">独立</p></td><td data-tag="td" id="td-bq9-f0d-pa4" class="td"><p id="p-bt4-uli-d6s">秒</p></td><td data-tag="td" id="td-jtw-j0i-hdf" class="td"><p id="p-94h-ci5-3lu"><code data-tag="code" class="code">SECONDS</code></p></td></tr><tr data-tag="tr" id="tr-q4g-zn6-nkk" class="tr"><td data-tag="td" id="td-d83-suu-hq4" class="td"><p id="p-ubp-d51-01y"><code data-tag="code" class="code">MINUTE</code></p></td><td data-tag="td" id="td-7ab-64q-7iz" class="td"><p id="p-ir3-hgs-90s">独立</p></td><td data-tag="td" id="td-ek7-cqd-rf9" class="td"><p id="p-ohu-p54-ff5">分钟</p></td><td data-tag="td" id="td-w5c-5y1-6mf" class="td"><p id="p-e68-n45-pxr"><code data-tag="code" class="code">MINUTES</code></p></td></tr><tr data-tag="tr" id="tr-tpw-mve-hx4" class="tr"><td data-tag="td" id="td-4dk-i36-1p9" class="td"><p id="p-i8j-wa6-0jx"><code data-tag="code" class="code">HOUR</code></p></td><td data-tag="td" id="td-b4q-26j-wnj" class="td"><p id="p-9d1-55u-ze7">独立</p></td><td data-tag="td" id="td-ccv-vfl-y9t" class="td"><p id="p-zva-6ng-3hu">小时</p></td><td data-tag="td" id="td-6br-spc-ir4" class="td"><p id="p-9hq-poo-91l"><code data-tag="code" class="code">HOURS</code></p></td></tr><tr data-tag="tr" id="tr-lem-6sc-ona" class="tr"><td data-tag="td" id="td-dmd-nig-sx6" class="td"><p id="p-gy5-cus-1op"><code data-tag="code" class="code">DAY</code></p></td><td data-tag="td" id="td-s6t-g0h-hnn" class="td"><p id="p-buj-73d-fxa">独立</p></td><td data-tag="td" id="td-msr-63x-dm8" class="td"><p id="p-flq-ahv-tx7">天</p></td><td data-tag="td" id="td-yyi-g76-mcn" class="td"><p id="p-9hl-7nv-vo6"><code data-tag="code" class="code">DAYS</code></p></td></tr><tr data-tag="tr" id="tr-dq8-vfr-dz1" class="tr"><td data-tag="td" id="td-dhm-kzb-dyz" class="td"><p id="p-a4c-q15-n54"><code data-tag="code" class="code">WEEK</code></p></td><td data-tag="td" id="td-c19-exo-py2" class="td"><p id="p-lp9-1ph-ui5">独立</p></td><td data-tag="td" id="td-9ji-aw6-84f" class="td"><p id="p-m37-26y-3id">周</p></td><td data-tag="td" id="td-l37-l0f-yk3" class="td"><p id="p-9ie-caa-q4q"><code data-tag="code" class="code">WEEKS</code></p></td></tr><tr data-tag="tr" id="tr-6mf-cw8-pfw" class="tr"><td data-tag="td" id="td-fbi-zzu-9zb" class="td"><p id="p-apz-30t-w8o"><code data-tag="code" class="code">MONTH</code></p></td><td data-tag="td" id="td-fa4-tc2-1n6" class="td"><p id="p-77n-nqi-sa2">独立</p></td><td data-tag="td" id="td-yrn-2fa-mcm" class="td"><p id="p-1ay-azh-h1a">月</p></td><td data-tag="td" id="td-0lu-8w4-ztc" class="td"><p id="p-trw-x07-kdm"><code data-tag="code" class="code">MONTHS</code></p></td></tr><tr data-tag="tr" id="tr-dbu-d4o-5sa" class="tr"><td data-tag="td" id="td-cxf-3nh-mbs" class="td"><p id="p-uqs-fq4-ayn"><code data-tag="code" class="code">QUARTER</code></p></td><td data-tag="td" id="td-2rh-2cn-1e8" class="td"><p id="p-hwj-np6-78p">独立</p></td><td data-tag="td" id="td-tql-mg3-2el" class="td"><p id="p-fiu-0z0-c86">季度</p></td><td data-tag="td" id="td-5vd-ief-3fi" class="td"><p id="p-8ln-tye-i4q"><code data-tag="code" class="code">QUARTERS</code></p></td></tr><tr data-tag="tr" id="tr-1rs-xr5-z22" class="tr"><td data-tag="td" id="td-56h-m9u-01n" class="td"><p id="p-hjk-anp-vpv"><code data-tag="code" class="code">YEAR</code></p></td><td data-tag="td" id="td-y6c-vp3-9eb" class="td"><p id="p-307-p9g-lre">独立</p></td><td data-tag="td" id="td-hfq-m6i-pnq" class="td"><p id="p-kbd-ajh-pm0">年</p></td><td data-tag="td" id="td-9xf-0yp-spd" class="td"><p id="p-xmz-av3-zp0"><code data-tag="code" class="code">YEARS</code></p></td></tr><tr data-tag="tr" id="tr-621-wzs-42z" class="tr"><td data-tag="td" id="td-rly-q42-9c2" class="td"><p id="p-uzl-g5r-t38"><code data-tag="code" class="code">SECOND_MICROSECOND</code></p></td><td data-tag="td" id="td-3gz-t2w-3m3" class="td"><p id="p-9x1-fox-n2e">组合</p></td><td data-tag="td" id="td-3kf-23j-4fh" class="td"><p id="p-pkk-ji4-25m">秒到微秒</p></td><td data-tag="td" id="td-ame-r0b-8uz" class="td"><p id="p-pln-in9-dcw"><code data-tag="code" class="code">'SECONDS.MICROSECONDS'</code></p></td></tr><tr data-tag="tr" id="tr-jco-bfo-mgt" class="tr"><td data-tag="td" id="td-x9t-156-dgn" class="td"><p id="p-bgo-rv3-8ks"><code data-tag="code" class="code">MINUTE_MICROSECOND</code></p></td><td data-tag="td" id="td-2r6-vmy-ftp" class="td"><p id="p-32o-6uk-82l">组合</p></td><td data-tag="td" id="td-vk6-3m9-e9h" class="td"><p id="p-mvf-cg1-a4j">分钟到微秒</p></td><td data-tag="td" id="td-l9t-6g7-25s" class="td"><p id="p-ls2-eum-id3"><code data-tag="code" class="code">'MINUTES:SECONDS.MICROSECONDS'</code></p></td></tr><tr data-tag="tr" id="tr-fm0-q0e-tn8" class="tr"><td data-tag="td" id="td-gzr-9jn-zd2" class="td"><p id="p-6ox-eic-q1s"><code data-tag="code" class="code">MINUTE_SECOND</code></p></td><td data-tag="td" id="td-wg5-kj1-zr4" class="td"><p id="p-hqq-qag-2l9">组合</p></td><td data-tag="td" id="td-ukg-0p7-e3f" class="td"><p id="p-pqj-son-nc9">分钟到秒</p></td><td data-tag="td" id="td-aq2-2ud-7kh" class="td"><p id="p-y07-bg0-5gj"><code data-tag="code" class="code">'MINUTES:SECONDS'</code></p></td></tr><tr data-tag="tr" id="tr-1z9-1r5-zj6" class="tr"><td data-tag="td" id="td-ai5-tkj-qre" class="td"><p id="p-sg7-oy2-qhn"><code data-tag="code" class="code">HOUR_MICROSECOND</code></p></td><td data-tag="td" id="td-k2b-863-q0i" class="td"><p id="p-zll-hhh-plm">组合</p></td><td data-tag="td" id="td-gro-yto-rws" class="td"><p id="p-sov-0xl-024">小时到微秒</p></td><td data-tag="td" id="td-fzr-ckc-9ak" class="td"><p id="p-czq-drx-t8j"><code data-tag="code" class="code">'HOURS:MINUTES:SECONDS.MICROSECONDS'</code></p></td></tr><tr data-tag="tr" id="tr-muw-90q-a6a" class="tr"><td data-tag="td" id="td-55i-6y2-i4s" class="td"><p id="p-cqa-j5c-dtg"><code data-tag="code" class="code">HOUR_SECOND</code></p></td><td data-tag="td" id="td-dat-cro-j3s" class="td"><p id="p-cm3-hvv-r1a">组合</p></td><td data-tag="td" id="td-6kj-v5d-ua1" class="td"><p id="p-d16-8j9-s22">小时到秒</p></td><td data-tag="td" id="td-fym-gj5-4m2" class="td"><p id="p-4fv-pc9-l52"><code data-tag="code" class="code">'HOURS:MINUTES:SECONDS'</code></p></td></tr><tr data-tag="tr" id="tr-6fn-5wx-rez" class="tr"><td data-tag="td" id="td-mzx-232-mof" class="td"><p id="p-a7r-v7t-fh6"><code data-tag="code" class="code">HOUR_MINUTE</code></p></td><td data-tag="td" id="td-4fm-qyk-p7t" class="td"><p id="p-sxv-ymz-6mk">组合</p></td><td data-tag="td" id="td-nd4-d95-6qb" class="td"><p id="p-pfg-14h-z9o">小时到分钟</p></td><td data-tag="td" id="td-9xr-6qo-awn" class="td"><p id="p-23z-28t-2wt"><code data-tag="code" class="code">'HOURS:MINUTES'</code></p></td></tr><tr data-tag="tr" id="tr-8uu-2j6-54e" class="tr"><td data-tag="td" id="td-nuh-r04-2ju" class="td"><p id="p-8lm-vm0-hw0"><code data-tag="code" class="code">DAY_SECOND</code></p></td><td data-tag="td" id="td-3zl-71o-5jy" class="td"><p id="p-o96-k9d-rxn">组合</p></td><td data-tag="td" id="td-1kl-j7t-4mf" class="td"><p id="p-3ep-6ml-9f0">天到秒</p></td><td data-tag="td" id="td-aji-mdp-66m" class="td"><p id="p-4cz-4m6-7w1"><code data-tag="code" class="code">'DAYS HOURS:MINUTES:SECONDS'</code></p></td></tr><tr data-tag="tr" id="tr-cuz-j6k-cih" class="tr"><td data-tag="td" id="td-e03-vet-hy0" class="td"><p id="p-czy-x0e-g62"><code data-tag="code" class="code">DAY_MINUTE</code></p></td><td data-tag="td" id="td-m8m-bou-xli" class="td"><p id="p-7e4-lgw-brn">组合</p></td><td data-tag="td" id="td-y7v-blk-gcc" class="td"><p id="p-k7b-kcm-1cy">天到分钟</p></td><td data-tag="td" id="td-16a-p8h-nha" class="td"><p id="p-5av-d1i-h67"><code data-tag="code" class="code">'DDAYSD HOURS:MINUTES'</code></p></td></tr><tr data-tag="tr" id="tr-aqi-n5o-byn" class="tr"><td data-tag="td" id="td-jhs-rbg-ayn" class="td"><p id="p-kzz-stc-bt3"><code data-tag="code" class="code">DAY_HOUR</code></p></td><td data-tag="td" id="td-th1-tzv-dn5" class="td"><p id="p-jsq-r0m-p9g">组合</p></td><td data-tag="td" id="td-2rl-gk5-6jc" class="td"><p id="p-7hj-0z4-55x">天到小时</p></td><td data-tag="td" id="td-zij-m52-swy" class="td"><p id="p-gli-9ps-j1m"><code data-tag="code" class="code">'DAYS HOURS'</code></p></td></tr><tr data-tag="tr" id="tr-7u0-5gn-vtp" class="tr"><td data-tag="td" id="td-ln5-1qy-lf4" class="td"><p id="p-uu0-6yy-slg"><code data-tag="code" class="code">YEAR_MONTH</code></p></td><td data-tag="td" id="td-9n5-wg3-al3" class="td"><p id="p-7xb-8u4-7jr">组合</p></td><td data-tag="td" id="td-1p3-d9g-s1b" class="td"><p id="p-c3a-6zw-bwm">年到月</p></td><td data-tag="td" id="td-4dm-ba1-8b1" class="td"><p id="p-mv9-19l-kev"><code data-tag="code" class="code">'YEARS-MONTHS'</code></p></td></tr></tbody></table>
**例子**
~~~
obclient> SELECT
-> DATE_ADD(NOW(), INTERVAL 5 DAY),
-> DATE_ADD('2014-01-10', INTERVAL 5 MICROSECOND),
-> DATE_ADD('2014-01-10', INTERVAL 5 SECOND),
-> DATE_ADD('2014-01-10', INTERVAL 5 MINUTE),
-> DATE_ADD('2014-01-10', INTERVAL 5 HOUR),
-> DATE_ADD('2014-01-10', INTERVAL 5 DAY),
-> DATE_ADD('2014-01-10', INTERVAL 5 WEEK),
-> DATE_ADD('2014-01-10', INTERVAL 5 MONTH),
-> DATE_ADD('2014-01-10', INTERVAL 5 QUARTER),
-> DATE_ADD('2014-01-10', INTERVAL 5 YEAR),
-> DATE_ADD('2014-01-10', INTERVAL '5.000005' SECOND_MICROSECOND),
-> DATE_ADD('2014-01-10', INTERVAL '05:05.000005' MINUTE_MICROSECOND),
-> DATE_ADD('2014-01-10', INTERVAL '05:05' MINUTE_SECOND),
-> DATE_ADD('2014-01-10', INTERVAL '05:05:05.000005' HOUR_MICROSECOND),
-> DATE_ADD('2014-01-10', INTERVAL '05:05:05' HOUR_SECOND),
-> DATE_ADD('2014-01-10', INTERVAL '05:05' HOUR_MINUTE),
-> DATE_ADD('2014-01-10', INTERVAL '01 05:05:05.000005' DAY_MICROSECOND),
-> DATE_ADD('2014-01-10', INTERVAL '01 05:05:05' DAY_SECOND),
-> DATE_ADD('2014-01-10', INTERVAL '01 05:05' DAY_MINUTE),
-> DATE_ADD('2014-01-10', INTERVAL '01 05' DAY_HOUR),
-> DATE_ADD('2014-01-10', INTERVAL '1-01' YEAR_MONTH)
-> \G
*************************** 1. row ***************************
DATE_ADD(NOW(), INTERVAL 5 DAY): 2018-05-10 14:54:52
DATE_ADD('2014-01-10', INTERVAL 5 MICROSECOND): 2014-01-10 00:00:00.000005
DATE_ADD('2014-01-10', INTERVAL 5 SECOND): 2014-01-10 00:00:05
DATE_ADD('2014-01-10', INTERVAL 5 MINUTE): 2014-01-10 00:05:00
DATE_ADD('2014-01-10', INTERVAL 5 HOUR): 2014-01-10 05:00:00
DATE_ADD('2014-01-10', INTERVAL 5 DAY): 2014-01-15
DATE_ADD('2014-01-10', INTERVAL 5 WEEK): 2014-02-14
DATE_ADD('2014-01-10', INTERVAL 5 MONTH): 2014-06-10
DATE_ADD('2014-01-10', INTERVAL 5 QUARTER): 2015-04-10
DATE_ADD('2014-01-10', INTERVAL 5 YEAR): 2019-01-10
DATE_ADD('2014-01-10', INTERVAL '5.000005' SECOND_MICROSECOND): 2014-01-10 00:00:05.000005
DATE_ADD('2014-01-10', INTERVAL '05:05.000005' MINUTE_MICROSECOND): 2014-01-10 00:05:05.000005
DATE_ADD('2014-01-10', INTERVAL '05:05' MINUTE_SECOND): 2014-01-10 00:05:05
DATE_ADD('2014-01-10', INTERVAL '05:05:05.000005' HOUR_MICROSECOND): 2014-01-10 05:05:05.000005
DATE_ADD('2014-01-10', INTERVAL '05:05:05' HOUR_SECOND): 2014-01-10 05:05:05
DATE_ADD('2014-01-10', INTERVAL '05:05' HOUR_MINUTE): 2014-01-10 05:05:00
DATE_ADD('2014-01-10', INTERVAL '01 05:05:05.000005' DAY_MICROSECOND): 2014-01-11 05:05:05.000005
DATE_ADD('2014-01-10', INTERVAL '01 05:05:05' DAY_SECOND): 2014-01-11 05:05:05
DATE_ADD('2014-01-10', INTERVAL '01 05:05' DAY_MINUTE): 2014-01-11 05:05:00
DATE_ADD('2014-01-10', INTERVAL '01 05' DAY_HOUR): 2014-01-11 05:00:00
DATE_ADD('2014-01-10', INTERVAL '1-01' YEAR_MONTH): 2015-02-10
1 row in set (0.01 sec)
~~~
#### DATE\_FORMAT
**声明**
~~~
DATE_FORMAT(date, format)
~~~
**说明**
将日期时间以指定格式输出。
* `date`表示日期时间。
* `format`表示输出格式。
以下为所有输出格式列表:
<table data-tag="table" id="table-9qi-eg9-itb" class="table"><colgroup span="1" width="240" data-tag="col" id="col-y7r-lza-rnc" colwidth="1*" colnum="1" colname="col1" style="width:33.33333333333333%" class="col"></colgroup><colgroup span="1" width="240" data-tag="col" id="col-r28-e9w-u9j" colwidth="1*" colnum="2" colname="col2" style="width:33.33333333333333%" class="col"></colgroup><colgroup span="1" width="240" data-tag="col" id="col-ltg-vfw-d3w" colwidth="1*" colnum="3" colname="col3" style="width:33.33333333333333%" class="col"></colgroup><thead id="thead-rrx-ci6-ymy" class="thead"><tr id="tr-ckh-s2t-yi0"><th id="td-g64-mkb-m5n"><p id="p-2lp-zif-sc0">格式符</p></th><th id="td-mvj-ojk-1zi"><p id="p-my3-ef8-hq0">含义</p></th><th id="td-4nq-seb-0ek"><p id="p-uc3-lpo-cj1">格式</p></th></tr></thead><tbody data-tag="tbody" id="tbody-y1l-723-ra5" class="tbody"><tr data-tag="tr" id="tr-9h9-hpc-f7d" class="tr"><td data-tag="td" id="td-shw-n5l-8u5" class="td"><p id="p-yux-wya-hoz"><code data-tag="code" class="code">%a</code></p></td><td data-tag="td" id="td-gc8-umf-uvm" class="td"><p id="p-141-88s-2dn">星期的英文缩写。</p></td><td data-tag="td" id="td-vfu-vcq-dva" class="td"><p id="p-91b-95p-2g2"><code data-tag="code" class="code">Sun..Sat</code></p></td></tr><tr data-tag="tr" id="tr-a0d-rtj-7i7" class="tr"><td data-tag="td" id="td-47i-dtl-ooz" class="td"><p id="p-ilu-6r1-5ar"><code data-tag="code" class="code">%b</code></p></td><td data-tag="td" id="td-3ma-tdl-ox6" class="td"><p id="p-v79-7p9-gbd">月份的英文缩写。</p></td><td data-tag="td" id="td-09b-9hw-u64" class="td"><p id="p-r48-agb-7ge"><code data-tag="code" class="code">Jan..Dec</code></p></td></tr><tr data-tag="tr" id="tr-1vm-uty-zb2" class="tr"><td data-tag="td" id="td-hc8-1kj-w0t" class="td"><p id="p-dum-dna-rop"><code data-tag="code" class="code">%c</code></p></td><td data-tag="td" id="td-49e-w7r-q1l" class="td"><p id="p-22p-7vx-0t0">月份的数字形式。</p></td><td data-tag="td" id="td-y05-nzv-wpt" class="td"><p id="p-d7t-y97-8ij"><code data-tag="code" class="code">1..12</code></p></td></tr><tr data-tag="tr" id="tr-fy1-unw-e9d" class="tr"><td data-tag="td" id="td-sbz-09f-l7m" class="td"><p id="p-yy3-6ww-385"><code data-tag="code" class="code">%D</code></p></td><td data-tag="td" id="td-sxi-c3m-deo" class="td"><p id="p-vdy-suk-ukd">日的英文缩写。</p></td><td data-tag="td" id="td-cbw-q4q-fzl" class="td"><p id="p-7bz-cwb-8le"><code data-tag="code" class="code">1st..31st</code></p></td></tr><tr data-tag="tr" id="tr-3bq-27k-ryi" class="tr"><td data-tag="td" id="td-0ll-50m-kuk" class="td"><p id="p-pzl-ml3-nvr"><code data-tag="code" class="code">%d</code></p></td><td data-tag="td" id="td-0hf-0h5-43z" class="td"><p id="p-1fb-p9f-r9t">日的数字形式。</p></td><td data-tag="td" id="td-219-iyt-gjs" class="td"><p id="p-jtv-fui-3ml"><code data-tag="code" class="code">01..31</code></p></td></tr><tr data-tag="tr" id="tr-tas-mgp-tvc" class="tr"><td data-tag="td" id="td-wge-ks6-5g5" class="td"><p id="p-5v5-wbb-sj3"><code data-tag="code" class="code">%e</code></p></td><td data-tag="td" id="td-f6z-q9i-v8f" class="td"><p id="p-pky-r2n-l1n">日的数字形式。</p></td><td data-tag="td" id="td-bzj-2mm-cf7" class="td"><p id="p-fmx-y3f-8o5"><code data-tag="code" class="code">1.. 31</code></p></td></tr><tr data-tag="tr" id="tr-5f4-o52-ak5" class="tr"><td data-tag="td" id="td-2fm-1wv-4mv" class="td"><p id="p-jzf-igw-ovh"><code data-tag="code" class="code">%f</code></p></td><td data-tag="td" id="td-97z-egh-0qr" class="td"><p id="p-ddz-k8i-cpx">微秒。</p></td><td data-tag="td" id="td-nsa-2x4-abb" class="td"><p id="p-hy3-4rh-knp"><code data-tag="code" class="code">000000..999999</code></p></td></tr><tr data-tag="tr" id="tr-qcr-val-yhr" class="tr"><td data-tag="td" id="td-6kk-jiz-xke" class="td"><p id="p-dlm-ybj-ki5"><code data-tag="code" class="code">%H</code></p></td><td data-tag="td" id="td-0ko-aql-tb6" class="td"><p id="p-oq9-iq5-vxe">小时。</p></td><td data-tag="td" id="td-bxt-h9b-nkf" class="td"><p id="p-vf2-a05-6e6"><code data-tag="code" class="code">00..23</code></p></td></tr><tr data-tag="tr" id="tr-fmy-3fh-m8f" class="tr"><td data-tag="td" id="td-dgb-had-hqu" class="td"><p id="p-m26-cyn-foe"><code data-tag="code" class="code">%h</code></p></td><td data-tag="td" id="td-b9n-czz-895" class="td"><p id="p-4c7-s6r-93p">小时。</p></td><td data-tag="td" id="td-5ir-8hj-1h3" class="td"><p id="p-9ua-t3z-gcb"><code data-tag="code" class="code">01..12</code></p></td></tr><tr data-tag="tr" id="tr-23t-gtu-a19" class="tr"><td data-tag="td" id="td-3m4-4i6-jnw" class="td"><p id="p-uif-prw-142"><code data-tag="code" class="code">%I</code></p></td><td data-tag="td" id="td-gb5-y8f-y74" class="td"><p id="p-nvi-m35-f9b">小时。</p></td><td data-tag="td" id="td-yod-v2n-vm6" class="td"><p id="p-vwp-13s-stc"><code data-tag="code" class="code">01..12</code></p></td></tr><tr data-tag="tr" id="tr-v66-1wj-lin" class="tr"><td data-tag="td" id="td-uu2-3lm-zno" class="td"><p id="p-dba-wa9-vdy"><code data-tag="code" class="code">%i</code></p></td><td data-tag="td" id="td-6x5-7i1-588" class="td"><p id="p-nmq-2kj-8lr">分钟。</p></td><td data-tag="td" id="td-zqs-003-6x8" class="td"><p id="p-d5d-mxg-iva"><code data-tag="code" class="code">00..59</code></p></td></tr><tr data-tag="tr" id="tr-4sx-5sr-i1c" class="tr"><td data-tag="td" id="td-bvx-7rm-bzm" class="td"><p id="p-wg5-9l9-96m"><code data-tag="code" class="code">%j</code></p></td><td data-tag="td" id="td-kn1-op7-oab" class="td"><p id="p-m89-aih-ss3">一年中的第几天。</p></td><td data-tag="td" id="td-17y-ikp-8qw" class="td"><p id="p-d6b-dm0-nq7"><code data-tag="code" class="code">001..366</code></p></td></tr><tr data-tag="tr" id="tr-ty8-fis-mhe" class="tr"><td data-tag="td" id="td-6dx-0jr-fve" class="td"><p id="p-252-ysb-fuy"><code data-tag="code" class="code">%k</code></p></td><td data-tag="td" id="td-q9u-67c-cb1" class="td"><p id="p-6bj-y49-30k">小时。</p></td><td data-tag="td" id="td-1zv-n5m-r28" class="td"><p id="p-07b-pif-4oh"><code data-tag="code" class="code">0..23</code></p></td></tr><tr data-tag="tr" id="tr-x0q-15i-ues" class="tr"><td data-tag="td" id="td-ea1-ccd-9qp" class="td"><p id="p-12v-mj5-786"><code data-tag="code" class="code">%l</code></p></td><td data-tag="td" id="td-3rv-ubx-5bo" class="td"><p id="p-x3t-7ur-n9z">小时。</p></td><td data-tag="td" id="td-ooe-c2p-feg" class="td"><p id="p-tb8-uny-f5k"><code data-tag="code" class="code">0..12</code></p></td></tr><tr data-tag="tr" id="tr-jsx-jhg-y80" class="tr"><td data-tag="td" id="td-fd9-v1f-xaq" class="td"><p id="p-bcg-oec-p56"><code data-tag="code" class="code">%M</code></p></td><td data-tag="td" id="td-6gd-n99-ild" class="td"><p id="p-jlb-fbb-seh">月份的英文名称。</p></td><td data-tag="td" id="td-c23-omh-79s" class="td"><p id="p-68y-y8z-cu1"><code data-tag="code" class="code">January..December</code></p></td></tr><tr data-tag="tr" id="tr-3nc-7kn-bon" class="tr"><td data-tag="td" id="td-le6-lu9-y5w" class="td"><p id="p-30e-39t-fe4"><code data-tag="code" class="code">%m</code></p></td><td data-tag="td" id="td-rq4-1jk-jck" class="td"><p id="p-7iq-e1t-kje">月份的数字形式。</p></td><td data-tag="td" id="td-nwm-owd-9at" class="td"><p id="p-th4-in1-4sb"><code data-tag="code" class="code">01..12</code></p></td></tr><tr data-tag="tr" id="tr-149-fdm-2d5" class="tr"><td data-tag="td" id="td-ncf-vkh-jnm" class="td"><p id="p-umi-fqf-r51"><code data-tag="code" class="code">%p</code></p></td><td data-tag="td" id="td-tmr-53g-f9z" class="td"><p id="p-gme-1fp-g6t">上午或下午。</p></td><td data-tag="td" id="td-o1j-1bs-bz9" class="td"><p id="p-wlc-4u8-1n3"><code data-tag="code" class="code">AM/PM</code></p></td></tr><tr data-tag="tr" id="tr-lql-98v-u9k" class="tr"><td data-tag="td" id="td-y0c-rxd-aj4" class="td"><p id="p-rwi-4r6-ivb"><code data-tag="code" class="code">%r</code></p></td><td data-tag="td" id="td-xo7-nrq-wiq" class="td"><p id="p-kza-492-7id">12小时制时间。</p></td><td data-tag="td" id="td-94k-r17-huc" class="td"><p id="p-su0-adn-76p"><code data-tag="code" class="code">hh:mm:ss AM/PM</code></p></td></tr><tr data-tag="tr" id="tr-8xv-yvl-qnu" class="tr"><td data-tag="td" id="td-0ps-lce-upz" class="td"><p id="p-8a5-t6i-ydt"><code data-tag="code" class="code">%S</code></p></td><td data-tag="td" id="td-nhr-hvu-8jl" class="td"><p id="p-avo-wnm-ju7">秒。</p></td><td data-tag="td" id="td-p1o-69z-cmr" class="td"><p id="p-mvz-0uf-1cp"><code data-tag="code" class="code">00..59</code></p></td></tr><tr data-tag="tr" id="tr-qhz-ofo-9g1" class="tr"><td data-tag="td" id="td-3o7-prl-38f" class="td"><p id="p-iyq-9ct-o5j"><code data-tag="code" class="code">%s</code></p></td><td data-tag="td" id="td-mvz-2fi-9cx" class="td"><p id="p-2gw-63a-sli">秒。</p></td><td data-tag="td" id="td-7t1-v2u-t8s" class="td"><p id="p-d5y-9go-doz"><code data-tag="code" class="code">00..59</code></p></td></tr><tr data-tag="tr" id="tr-1pz-2xn-3k1" class="tr"><td data-tag="td" id="td-zjk-1p2-vnr" class="td"><p id="p-3r7-x3k-l2f"><code data-tag="code" class="code">%T</code></p></td><td data-tag="td" id="td-wvx-oha-fs9" class="td"><p id="p-qfz-t9m-tmq">24小时制时间。</p></td><td data-tag="td" id="td-bnw-cww-f9s" class="td"><p id="p-vq1-880-snx"><code data-tag="code" class="code">hh:mm:ss</code></p></td></tr><tr data-tag="tr" id="tr-s7u-8fh-jca" class="tr"><td data-tag="td" id="td-qa8-k0w-cx9" class="td"><p id="p-iay-8aj-ya9"><code data-tag="code" class="code">%U</code></p></td><td data-tag="td" id="td-s4s-ntd-ky8" class="td"><p id="p-06a-43s-y60">一年中的第几周,周日为每周第一天。</p></td><td data-tag="td" id="td-jnq-9jb-zur" class="td"><p id="p-tyt-g74-y8r"><code data-tag="code" class="code">00..53</code></p></td></tr><tr data-tag="tr" id="tr-0yy-x1i-6i3" class="tr"><td data-tag="td" id="td-pjk-wwg-erg" class="td"><p id="p-mkr-lbl-qzl"><code data-tag="code" class="code">%u</code></p></td><td data-tag="td" id="td-6rb-9aj-qa8" class="td"><p id="p-2yv-box-7in">一年中的第几周,周一为每周第一天。</p></td><td data-tag="td" id="td-lj0-0a2-76c" class="td"><p id="p-59e-n1v-xzf"><code data-tag="code" class="code">00..53</code></p></td></tr><tr data-tag="tr" id="tr-egv-67n-8j6" class="tr"><td data-tag="td" id="td-v6c-yew-pfe" class="td"><p id="p-fij-yg6-84d"><code data-tag="code" class="code">%V</code></p></td><td data-tag="td" id="td-7ti-emq-cvn" class="td"><p id="p-igr-vq7-wvn">一年中的第几周,周日为每周第一天(和<code data-tag="code" class="code">%X</code>同时使用)。</p></td><td data-tag="td" id="td-abn-e1e-6v2" class="td"><p id="p-08s-unr-y79"><code data-tag="code" class="code">01..53</code></p></td></tr><tr data-tag="tr" id="tr-6ql-eyh-bzx" class="tr"><td data-tag="td" id="td-w4e-h1c-bdv" class="td"><p id="p-24r-ert-ly0"><code data-tag="code" class="code">%v</code></p></td><td data-tag="td" id="td-ngn-3wy-zsl" class="td"><p id="p-1up-al5-ppy">一年中的第几周,周一为每周第一天(和<code data-tag="code" class="code">%x</code>同时使用)。</p></td><td data-tag="td" id="td-zvp-yvp-8ey" class="td"><p id="p-nd9-hbk-9sd"><code data-tag="code" class="code">01..53</code></p></td></tr><tr data-tag="tr" id="tr-w5c-9lo-f9k" class="tr"><td data-tag="td" id="td-qup-8kh-wpp" class="td"><p id="p-bu9-fhy-qg5"><code data-tag="code" class="code">%W</code></p></td><td data-tag="td" id="td-ain-b8j-6fi" class="td"><p id="p-lof-ca8-eee">星期的英文名称。</p></td><td data-tag="td" id="td-n68-tl1-7va" class="td"><p id="p-oli-jp9-if7"><code data-tag="code" class="code">Sunday..Saturday</code></p></td></tr><tr data-tag="tr" id="tr-h7i-1ck-o85" class="tr"><td data-tag="td" id="td-pg8-bx4-wcl" class="td"><p id="p-6lm-tpm-uiz"><code data-tag="code" class="code">%w</code></p></td><td data-tag="td" id="td-oim-u1d-7td" class="td"><p id="p-ylc-iv5-cuq">一周中的第几天。</p></td><td data-tag="td" id="td-jlr-7vi-cuy" class="td"><p id="p-b1w-lhv-7pv"><code data-tag="code" class="code">0=Sunday..6=Saturday</code></p></td></tr><tr data-tag="tr" id="tr-3gg-2uc-sm3" class="tr"><td data-tag="td" id="td-ah4-xwk-07y" class="td"><p id="p-y1l-yg8-a3p"><code data-tag="code" class="code">%X</code></p></td><td data-tag="td" id="td-stg-xq5-68b" class="td"><p id="p-0ok-n5p-hjj">一周所属的年份,周日为每周第一天(和<code data-tag="code" class="code">%V</code>同时使用)。</p></td><td data-tag="td" id="td-nlf-npn-dum" class="td"><p id="p-kw5-eua-qy5"></p></td></tr><tr data-tag="tr" id="tr-9rf-jij-pnl" class="tr"><td data-tag="td" id="td-906-yde-c69" class="td"><p id="p-ykq-jo2-pqb"><code data-tag="code" class="code">%x</code></p></td><td data-tag="td" id="td-5yl-r1n-q6q" class="td"><p id="p-kwn-iaq-w1z">一周所属的年份,周一为每周第一天(和<code data-tag="code" class="code">%v</code>同时使用)。</p></td><td data-tag="td" id="td-s1i-dvs-0od" class="td"><p id="p-cg5-84u-hnq"></p></td></tr><tr data-tag="tr" id="tr-23i-tta-5nv" class="tr"><td data-tag="td" id="td-g12-2dr-cin" class="td"><p id="p-5hc-yqj-euz"><code data-tag="code" class="code">%Y</code></p></td><td data-tag="td" id="td-zrj-sf3-3je" class="td"><p id="p-qb0-p9s-tks">四位年份。</p></td><td data-tag="td" id="td-def-cc5-okw" class="td"><p id="p-kom-hcm-rhv"></p></td></tr><tr data-tag="tr" id="tr-8ll-5mq-fs4" class="tr"><td data-tag="td" id="td-kz2-bki-98y" class="td"><p id="p-x29-5ud-4ia"><code data-tag="code" class="code">%y</code></p></td><td data-tag="td" id="td-g6k-8ve-g45" class="td"><p id="p-b44-6q4-c84">两位年份。</p></td><td data-tag="td" id="td-xxg-lo6-dus" class="td"><p id="p-nqu-waa-4wl"></p></td></tr><tr data-tag="tr" id="tr-t4h-kx0-fpu" class="tr"><td data-tag="td" id="td-bcz-mcv-hmk" class="td"><p id="p-zfk-4uj-wk5"><code data-tag="code" class="code">%%</code></p></td><td data-tag="td" id="td-hqg-gsv-83z" class="td"><p id="p-pb6-6hg-ys3">文字字符,输出一个<code data-tag="code" class="code">%</code>。</p></td><td data-tag="td" id="td-2qj-8qa-rfn" class="td"><p data-tag="p" id="p-nhp-tbj-9zt" class="p"></p></td></tr></tbody></table>
**例子**
~~~
obclient> SELECT
-> DATE_FORMAT('2014-01-01', '%Y-%M-%d'),
-> DATE_FORMAT('2014-01-01', '%X-%V'),
-> DATE_FORMAT('2014-01-01', '%U')
-> \G
*************************** 1. row ***************************
DATE_FORMAT('2014-01-01', '%Y-%M-%d'): 2014-January-01
DATE_FORMAT('2014-01-01', '%X-%V'): 2013-52
DATE_FORMAT('2014-01-01', '%U'): 00
1 row in set (0.01 sec)
~~~
#### DATE\_SUB
**声明**
~~~
DATE_SUB(date, INTERVAL expr unit)
~~~
**说明**
日期时间的算术计算。
请参考`DATE_ADD()`。
#### DATEDIFF
**声明**
~~~
DATEDIFF(date1, date2)
~~~
**说明**
返回`date1`和`date2`之间的天数。
计算中只用到参数的日期部分,忽略时间部分。
**例子**
~~~
obclient> SELECT DATEDIFF('2015-06-19','1994-12-17');
+-------------------------------------+
| DATEDIFF('2015-06-19','1994-12-17') |
+-------------------------------------+
| 7489 |
+-------------------------------------+
1 row in set (0.01 sec)
~~~
#### EXTRACT
**声明**
~~~
EXTRACT(unit FROM date)
~~~
**说明**
以整数类型返回`date`的指定部分值。如果指定多个部分,则将所有值按顺序拼接。
`unit`请参考`DATE_ADD()`。当`unit`为`WEEK`时,请参考`DATE_FORMAT()`的`%U`说明。
**例子**
~~~
SELECT EXTRACT(WEEK FROM '2013-01-01'),
EXTRACT(WEEK FROM '2013-01-06'),
EXTRACT(YEAR_MONTH FROM '2012-03-09'),
EXTRACT(DAY FROM NOW())\G;
* 1. row *
EXTRACT(WEEK FROM '2013-01-01'): 0
EXTRACT(WEEK FROM '2013-01-06'): 1
EXTRACT(YEAR_MONTH FROM '2012-03-09'): 201203
EXTRACT(DAY FROM NOW()): 18
1 row in set (0.00 sec)
~~~
#### FROM\_DAYS
**声明**
~~~
FROM_DAYS(N)
~~~
**说明**
返回指定天数`N`对应的`DATE`值。天数指距离`0000-01-01`的天数。
**例子**
~~~
obclient> SELECT FROM_DAYS(736271), FROM_DAYS(700000);
+-------------------+-------------------+
| FROM_DAYS(736271) | FROM_DAYS(700000) |
+-------------------+-------------------+
| 2015-11-04 | 1916-07-15 |
+-------------------+-------------------+
1 row in set (0.00 sec)
~~~
#### FROM\_UNIXTIME
**声明**
~~~
FROM_UNIXTIME(unix_timestamp)
FROM_UNIXTIME(unix_timestamp, format)
~~~
**说明**
* 不指定`format`参数时,返回`DATETIME`类型值,不考虑时区。
* 指定`format`参数时,返回指定格式的日期时间字符串。
`unix_timestamp`指 UNIX 时间戳,即距离`1970-01-01 00:00:00.000000`的微秒数。
`format`支持的格式已在`DATE_FORMAT()`**说****明**中列出。
**例子**
~~~
obclient> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(), '%Y %D %M %h:%i:%s %x');
+---------------------------------------------------------+
| FROM_UNIXTIME(UNIX_TIMESTAMP(), '%Y %D %M %h:%i:%s %x') |
+---------------------------------------------------------+
| 2018 5th May 08:41:26 2018 |
+---------------------------------------------------------+
1 row in set (0.01 sec)
~~~
#### MONTH
**声明**
~~~
MONTH(date)
~~~
**说明**
返回`date`的月份信息。
**例子**
~~~
obclient> SELECT MONTH('2008-02-03');
+---------------------+
| MONTH('2008-02-03') |
+---------------------+
| 2 |
+---------------------+
1 row in set (0.01 sec)
~~~
#### NOW
**声明**
~~~
NOW([scale])
~~~
**说明**
同`CURRENT_TIMESTAMP()`。
#### PERIOD\_DIFF
**声明**
~~~
PERIOD_DIFF(p1, p2)
~~~
**说明**
以月份位单位返回两个日期之间的间隔。日期只能包含年月信息,格式只能为`YYYYMM`或`YYMM`。
**例子**
~~~
obclient> SELECT PERIOD_DIFF(200802, 200703);
+----------------------------+
| PERIOD_DIFF(200802,200703) |
+----------------------------+
| 11 |
+----------------------------+
1 row in set (0.01 sec)
~~~
#### STR\_TO\_DATE
**声明**
~~~
STR_TO_DATE(str, format)
~~~
**说明**
使用`format`将`str`转换为`DATETIME`值、`DATE`值、或`TIME`值。返回值类型取决于`format`包含日期时间的哪些部分。
`format`支持的格式已在`DATE_FORMAT()`**说****明**中列出。
**例子**
~~~
obclient> SELECT STR_TO_DATE('2014-Jan-1st 5:5:5 pm', '%Y-%b-%D %r');
+-----------------------------------------------------+
| STR_TO_DATE('2014-Jan-1st 5:5:5 pm', '%Y-%b-%D %r') |
+-----------------------------------------------------+
| 2014-01-01 05:05:05 |
+-----------------------------------------------------+
1 row in set (0.01 sec)
~~~
#### TIME
**声明**
~~~
TIME(datetime
~~~
**说明**
以`TIME`类型返回`datetime`的时间信息。
**例子**
~~~
obclient> SELECT TIME('2003-12-31 01:02:03');
+-----------------------------+
| TIME('2003-12-31 01:02:03') |
+-----------------------------+
| 01:02:03.000000 |
+-----------------------------+
1 row in set (0.01 sec)
~~~
#### TIME\_TO\_USEC
**声明**
~~~
TIME_TO_USEC(date)
~~~
**说明**
将`date`值转换为距离`1970-01-01 00:00:00.000000`的微秒数,考虑时区信息。
`date`可以表示日期,也可以表示日期时间。
**例子**
~~~
obclient> SELECT TIME_TO_USEC('2014-03-25'), TIME_TO_USEC(NOW());
+----------------------------+---------------------+
| TIME_TO_USEC('2014-03-25') | TIME_TO_USEC(NOW()) |
+----------------------------+---------------------+
| 1395676800000000 | 1525528100000000 |
+----------------------------+---------------------+
1 row in set (0.01 sec)
~~~
#### TIMEDIFF
**声明**
~~~
TIMEDIFF(date1, date2)
~~~
**说明**
以`TIME`类型返回两个日期时间的时间间隔。
**例子**
~~~
obclient> SELECT
-> TIMEDIFF('2015-06-06 12:12:12', '2014-06-05 11:11:11'),
-> TIMEDIFF('2015-06-06 12:12:12', '2015-06-05 11:11:11')
-> \G
*************************** 1. row ***************************
TIMEDIFF('2015-06-06 12:12:12', '2014-06-05 11:11:11'): 838:59:59
TIMEDIFF('2015-06-06 12:12:12', '2015-06-05 11:11:11'): 25:01:01
1 row in set (0.00 sec)
~~~
#### TIMESTAMPDIFF
**声明**
~~~
TIMESTAMPDIFF(unit, date1, date2)
~~~
**说明**
以`unit`为单位返回两个日期时间的间隔。`unit`只能为`DATE_ADD()`中的独立单位。
**例子**
~~~
obclient> SELECT
-> TIMESTAMPDIFF(SECOND, NOW(), '2011-01-01 11:11:11'),
-> TIMESTAMPDIFF(DAY, '2011-01-01 11:11:11', NOW())
-> \G
*************************** 1. row ***************************
TIMESTAMPDIFF(SECOND, NOW(), '2011-01-01 11:11:11'): -231677498
TIMESTAMPDIFF(DAY, '2011-01-01 11:11:11', NOW()): 2681
1 row in set (0.00 sec)
~~~
#### TIMESTAMPADD
**声明**
~~~
TIMESTAMPADD(unit, interval_expr, date)
~~~
**说明**
日期时间的算术计算。
同`DATE_ADD()`,但`unit`只能为独立单位。
**例子**
~~~
obclient> SELECT
-> TIMESTAMPADD(DAY, -5, '2010-01-01 00:00:00'),
-> DATE_ADD('2010-01-01 00:00:00', INTERVAL -5 DAY)
-> \G
*************************** 1. row ***************************
TIMESTAMPADD(DAY, -5, '2010-01-01 00:00:00'): 2009-12-27 00:00:00
DATE_ADD('2010-01-01 00:00:00', INTERVAL -5 DAY): 2009-12-27 00:00:00
1 row in set (0.01 sec)
~~~
#### TO\_DAYS
**声明**
~~~
TO_DAYS(date)
~~~
**说明**
返回指定`date`值对应的天数。天数指距离`0000-01-01`的天数。
**例子**
~~~
obclient> SELECT TO_DAYS('2015-11-04'), TO_DAYS('20151104');
+-----------------------+---------------------+
| TO_DAYS('2015-11-04') | TO_DAYS('20151104') |
+-----------------------+---------------------+
| 736271 | 736271 |
+-----------------------+---------------------+
1 row in set (0.01 sec)
~~~
#### USEC\_TO\_TIME
**声明**
~~~
USEC_TO_TIME(usec)
~~~
**说明**
将`usec`值转换为`TIMESTAMP`类型值。
`usec`表示距离`1970-01-01 00:00:00.000000`的微秒数,考虑时区信息。
**例子**
~~~
obclient> SELECT USEC_TO_TIME(1);
+----------------------------+
| USEC_TO_TIME(1) |
+----------------------------+
| 1970-01-01 08:00:00.000001 |
+----------------------------+
1 row in set (0.00 sec)
~~~
#### UNIX\_TIMESTAMP
**声明**
~~~
UNIX_TIMESTAMP()
UNIX_TIMESTAMP(date)
~~~
**说明**
* 不指定`date`参数时,返回当前时间距离 '1970-01-01 00:00:00' 的秒数,考虑时区。
* 指定`date`参数时,返回指定时间距离 '1970-01-01 00:00:00' 的秒数,考虑时区。
**例子**
~~~
obclient> SELECT UNIX_TIMESTAMP(), TIME_TO_USEC(NOW());
+------------------+---------------------+
| UNIX_TIMESTAMP() | TIME_TO_USEC(NOW()) |
+------------------+---------------------+
| 1525570561 | 1525570561000000 |
+------------------+---------------------+
1 row in set (0.01 sec)
obclient> SELECT UNIX_TIMESTAMP('1997-10-04 22:23:00');
+---------------------------------------+
| UNIX_TIMESTAMP('1997-10-04 22:23:00') |
+---------------------------------------+
| 875974980 |
+---------------------------------------+
1 row in set (0.01 sec)
~~~
#### UTC\_TIMESTAMP
**声明**
~~~
UTC_TIMESTAMP()
~~~
**说明**
返回当前 UTC 时间。
**例子**
~~~
obclient> SELECT UTC_TIMESTAMP();
+---------------------+
| UTC_TIMESTAMP() |
+---------------------+
| 2018-05-06 01:38:32 |
+---------------------+
1 row in set (0.01 sec)
~~~
#### YEAR
**声明**
~~~
YEAR(date)
~~~
**说明**
返回`date`值的年份信息。
**例子**
~~~
obclient> SELECT YEAR('1987-01-01');
+--------------------+
| YEAR('1987-01-01') |
+--------------------+
| 1987 |
+--------------------+
1 row in set (0.00 sec)
~~~
## 字符串函数
#### CONCAT
**声明**
~~~
CONCAT(str1, .., strN)
~~~
**说明**
把多个字符串连接成一个字符串。参数中包含`NULL`时,返回`NULL`。
**例子**
~~~
obclient> SELECT
-> CONCAT('test','obclient', '1.0'),
-> CONCAT('test','obclient', NULL)
-> \G
*************************** 1. row ***************************
CONCAT('test','obclient', '1.0'): testobclient1.0
CONCAT('test','obclient', NULL): NULL
1 row in set (0.01 sec)
~~~
#### CONCAT\_WS
**声明**
~~~
CONCAT_WS(separator, str1, .., strN)
~~~
**说明**
把多个字符串连接成一个字符串,相邻字符串间使用`separator`分隔。参数中包含`NULL`时,将忽略`NULL`。
**例子**
~~~
obclient> SELECT
-> CONCAT_WS('_', 'First', 'Second'),
-> CONCAT_WS('_', 'First', NULL, 'Second')
-> \G
*************************** 1. row ***************************
CONCAT_WS('_', 'First', 'Second'): First_Second
CONCAT_WS('_', 'First', NULL, 'Second'): First_Second
1 row in set (0.00 sec)
~~~
FORMAT
**声明**
~~~
FORMAT(X,D)
~~~
**说明**
把数字 X 格式化为“#,###,###.##”格式,四舍五入到 D 位小数,并以字符串形式返回结果(如果整数部分超过三位,会用“,”作为千分位分隔符)。如果 D 为 0,则结果没有小数点或小数部分。
**例子**
~~~
obclient>SELECT FORMAT(12332.123456, 4) from DUAL;
+-------------------------+
| format(12332.123456, 4) |
+-------------------------+
| 12,332.1235 |
+-------------------------+
1 row in set (0.00 sec)
obclient>SELECT FORMAT(12332.1, 4) from DUAL;
+--------------------+
| format(12332.1, 4) |
+--------------------+
| 12,332.1000 |
+--------------------+
1 row in set (0.01 sec)
obclient>SELECT FORMAT(12332.2, 0) from DUAL;
+--------------------+
| format(12332.2, 0) |
+--------------------+
| 12,332 |
+--------------------+
1 row in set (0.00 sec)
~~~
#### SUBSTR
**声明**
~~~
SUBSTR(str, pos)
SUBSTR(str, pos, len)
SUBSTR(str FROM pos)
SUBSTR(str FROM pos FOR len)
~~~
**说明**
返回`str`的子字符串,起始位置为`pos`,长度为`len`。参数中包含`NULL`时,返回`NULL`。
* 不指定`len`时,返回的子字符串从`pos`位置开始到`str`结尾。
* `pos`值为负数时,从`str`尾部向头部倒序确定起始位置。
* `len`小于等于 0,或`pos`指定的起始位置非法时,返回空字符串。
**例子**
~~~
obclient> SELECT
-> SUBSTR('abcdefg', 3),
-> SUBSTR('abcdefg', 3, 2),
-> SUBSTR('abcdefg', -3),
-> SUBSTR('abcdefg', 3, -2),
-> SUBSTR('abcdefg' from -4 for 2)
-> \G
*************************** 1. row ***************************
SUBSTR('abcdefg', 3): cdefg
SUBSTR('abcdefg', 3, 2): cd
SUBSTR('abcdefg', -3): efg
SUBSTR('abcdefg', 3, -2):
SUBSTR('abcdefg' from -4 for 2): de
1 row in set (0.01 sec)
~~~
#### SUBSTRING
**声明**
~~~
SUBSTRING(str, pos)
SUBSTRING(str, pos, len)
SUBSTRING(str FROM pos)
SUBSTRING(str FROM pos FOR len)
~~~
**说明**
同`SUBSTR`。
#### TRIM
**声明**
~~~
TRIM([[{BOTH | LEADING | TRAILING}] [remstr] FROM] str)
~~~
**说明**
删除字符串所有前缀和/或后缀,默认为`BOTH`。参数中包含`NULL`时,返回`NULL`。
**例子**
~~~
obclient> SELECT
-> TRIM(' bar '),
-> TRIM(LEADING 'x' FROM 'xxxbarxxx'),
-> TRIM(BOTH 'x' FROM 'xxxbarxxx'),
-> TRIM(TRAILING 'x' FROM 'xxxbarxxx')
-> \G
*************************** 1. row ***************************
TRIM(' bar '): bar
TRIM(LEADING 'x' FROM 'xxxbarxxx'): barxxx
TRIM(BOTH 'x' FROM 'xxxbarxxx'): bar
TRIM(TRAILING 'x' FROM 'xxxbarxxx'): xxxbar
1 row in set (0.01 sec)
~~~
#### LTRIM
**声明**
~~~
LTRIM(str)
~~~
**说明**
删除字符串左侧的空格。
#### RTRIM
**声明**
~~~
RTRIM(str)
~~~
**说明**
删除字符串右侧的空格。
#### ASCII
**声明**
~~~
ASCII(str)
~~~
**说明**
返回字符串最左侧字符的 ASCII 码。
#### ORD
**声明**
~~~
ORD(str)
~~~
**说明**
返回字符串最左侧字符的字符码。单字节编码如果最左侧字符是多字节编码字符,返回值计算规则如下:
~~~
(1st byte code)
+ (2nd byte code * 256)
+ (3rd byte code * 256^2) ...
~~~
**例子**
~~~
obclient> SELECT ORD('中国');
+---------------+
| ORD('中国') |
+---------------+
| 14989485 |
+---------------+
1 row in set (0.01 sec)
~~~
#### LENGTH
**声明**
~~~
LENGTH(str)
~~~
**说明**
返回`str`的字节长度。
**例子**
~~~
obclient> SELECT LENGTH('中国'), LENGTH('hello');
+------------------+-----------------+
| LENGTH('中国') | LENGTH('hello') |
+------------------+-----------------+
| 6 | 5 |
+------------------+-----------------+
1 row in set (0.01 sec)
~~~
#### CHAR\_LENGTH
**声明**
~~~
CHAR_LENGTH(str)
~~~
**说明**
返回字符串包含的字符数。
**例子**
~~~
obclient> SELECT CHAR_LENGTH('中国'), CHAR_LENGTH('hello');
+-----------------------+----------------------+
| CHAR_LENGTH('中国') | CHAR_LENGTH('hello') |
+-----------------------+----------------------+
| 2 | 5 |
+-----------------------+----------------------+
1 row in set (0.00 sec)
~~~
#### UPPER
**声明**
~~~
UPPER(str)
~~~
**说明**
将字符串中的小写字母转化为大写字母。
**例子**
~~~
obclient> SELECT UPPER('obclient您好!');
+-----------------------------+
| UPPER('obclient您好!') |
+-----------------------------+
| OCEANBASE您好! |
+-----------------------------+
1 row in set (0.01 sec)
~~~
#### LOWER
**声明**
~~~
LOWER(str)
~~~
**说明**
将字符串中的大写字母转化为小写字母。
**例子**
~~~
obclient> SELECT LOWER('obclient您好!');
+-----------------------------+
| LOWER('obclient您好!') |
+-----------------------------+
| obclient您好! |
+-----------------------------+
1 row in set (0.01 sec)
~~~
#### HEX
**声明**
~~~
HEX(str)
~~~
**说明**
将数字或字符串转化为十六进制字符串。
**例子**
~~~
obclient> SELECT HEX(255), HEX('abc');
+----------+------------+
| HEX(255) | HEX('abc') |
+----------+------------+
| FF | 616263 |
+----------+------------+
1 row in set (0.00 sec)
~~~
#### UNHEX
**声明**
~~~
UNHEX(str)
~~~
**说明**
将十六进制字符串转化为正常字符串。
**例子**
~~~
obclient> SELECT UNHEX('4f6365616e42617365');
+-----------------------------+
| UNHEX('4f6365616e42617365') |
+-----------------------------+
| obclient |
+-----------------------------+
1 row in set (0.00 sec)
~~~
#### MD5
**声明**
~~~
MD5(str)
~~~
**说明**
返回字符串的 MD5 值。
**例子**
~~~
obclient> SELECT MD5(1);
+----------------------------------+
| MD5(1) |
+----------------------------------+
| c4ca4238a0b923820dcc509a6f75849b |
+----------------------------------+
1 row in set (0.00 sec)
~~~
#### INT2IP
**声明**
~~~
INT2IP(int_value)
~~~
**说明**
将整数内码转换成 IP 地址。
**例子**
~~~
obclient> SELECT
-> INT2IP(16777216),
-> HEX(16777216),
-> INT2IP(1)
-> \G
*************************** 1. row ***************************
INT2IP(16777216): 1.0.0.0
HEX(16777216): 1000000
INT2IP(1): 0.0.0.1
1 row in set (0.01 sec)
~~~
#### IP2INT
**声明**
~~~
IP2INT('ip_addr')
~~~
**说明**
将 IP 地址转换成整数内码。
**例子**
~~~
obclient> SELECT
-> IP2INT('0.0.0.1'),
-> HEX(IP2INT('0.0.0.1')),
-> HEX(IP2INT('1.0.0.0'))
-> \G
*************************** 1. row ***************************
IP2INT('0.0.0.1'): 1
HEX(IP2INT('0.0.0.1')): 1
HEX(IP2INT('1.0.0.0')): 1000000
1 row in set (0.01 sec)
~~~
#### LIKE
**声明**
~~~
str1 [NOT] LIKE str2 [ESCAPE str3]
~~~
**说明**
字符串通配符匹配。参数中包含`NULL`时,返回`NULL`。
通配符包括:
* `%`:匹配任意长度字符串。
* `_`:匹配单个字符。
ESCAPE 用于定义转义符,如果 str2 中包含 str3,在匹配时 str3 后的字符将做为普通字符处理。
**例子**
~~~
obclient> SELECT 'ab%' LIKE 'abc%' ESCAPE 'c';
+------------------------------+
| 'ab%' LIKE 'abc%' ESCAPE 'c' |
+------------------------------+
| 1 |
+------------------------------+
1 row in set (0.01 sec)
~~~
#### REGEXP
**声明**
~~~
str [NOT] REGEXP | RLIKE pat
~~~
**说明**
正则匹配。参数中包含`NULL`时,返回`NULL`。
**例子**
~~~
obclient> SELECT
-> 1234 REGEXP 1,
-> 'hello' RLIKE 'h%'
-> \G
*************************** 1. row ***************************
1234 REGEXP 1: 1
'hello' RLIKE 'h%': 0
1 row in set (0.01 sec)
~~~
#### REPEAT
**声明**
~~~
REPEAT(str, count)
~~~
**说明**
返回`str`重复`count`次组成的字符串。`count`小于等于 0 时,返回空字符串。参数中包含`NULL`时,返回`NULL`。
**例子**
~~~
obclient> SELECT
-> REPEAT('1', -1),
-> REPEAT(null, null),
-> REPEAT('Abc', 4)
-> \G
*************************** 1. row ***************************
REPEAT('1', -1):
REPEAT(null, null): NULL
REPEAT('Abc', 4): AbcAbcAbcAbc
1 row in set (0.01 sec)
~~~
#### SPACE
**声明**
~~~
SPACE(N)
~~~
**说明**
返回包含`N`个空格的字符串。
#### SUBSTRING\_INDEX
**声明**
~~~
SUBSTRING_INDEX(str, delim, count)
~~~
**说明**
在定界符 delim 以及 count 出现前,从字符串 str 返回字符串。若 count 为正值,则返回最终定界符(从左边开始)左边的一切内容。若 count 为负值,则返回定界符(从右边开始)右边的一切内容。任意一个参数为 NULL,返回 NULL;若 str 或 delim 为空字符串,则返回空串;若 count = 0, 返回空串。
*str, delim, count 参数支持数值与字符串的隐式转换。*
**例子**
~~~
obclient>select substring_index('abcdabc', 'abc', 0), substring_index('abcdabc', 'abc', 1), substring_index('abcdabc', 'abc', 2), substring_index('abcdabc', 'abc', 3), substring_index('abcdabc', 'abc', -1), substring_index('abcdabc', 'abc', -2), substring_index('abcdabc', 'abc', -3)\G;
* 1. row *
substring_index('abcdabc', 'abc', 0):
substring_index('abcdabc', 'abc', 1):
substring_index('abcdabc', 'abc', 2): abcd
substring_index('abcdabc', 'abc', 3): abcdabc
substring_index('abcdabc', 'abc', -1):
substring_index('abcdabc', 'abc', -2): dabc
substring_index('abcdabc', 'abc', -3): abcdabc
1 row in set (0.00 sec)
~~~
#### LOCATE
**声明**
`LOCATE(substr,str) , LOCATE(substr,str,pos)`
**说明**
第一个语法返回字符串 str 中子字符串 substr 的第一个出现位置。第二个语法返回字符串 str 中子字符串 substr 的第一个出现位置, 起始位置在 pos。如若 substr 不在 str 中,则返回值为 0。
**例子**
~~~
obclient>SELECT LOCATE('bar', 'foobarbar');
-> 4
obclient>SELECT LOCATE('xbar', 'foobar');
-> 0
obclient>SELECT LOCATE('bar', 'foobarbar',5);
-> 7
~~~
#### POSITION
**声明**
`POSITION(substr IN str)`
**说明**
与 LOCATE 同义。
#### INSTR
**声明**
`INSTR(str,substr)`
**说明**
返回字符串 str 中子字符串的第一个出现位置。这和 LOCATE() 的双参数形式相同,除非参数的顺序被颠倒。
**例子**
~~~
obclient>SELECT INSTR('foobarbar', 'bar');
-> 4
obclient>SELECT INSTR('xbar', 'foobar');
-> 0
~~~
#### REPLACE
**声明**
`REPLACE(str, from_str, to_str)`
**说明**
返回字符串 str 以及所有被字符 to\_str 替代的字符串 from\_str。
**例子**
~~~
obclient>SELECT REPLACE('abc.efg.gpg.nowdew.abc.dabc.e', 'abc.', 'www');
+---------------------------------------------------------+
| REPLACE('abc.efg.gpg.nowdew.abc.dabc.e', 'abc.', 'www') |
+---------------------------------------------------------+
| wwwefg.gpg.nowdew.wwwdwwwe |
+---------------------------------------------------------+
1 row in set (0.00 sec)
~~~
#### FIELD
**声明**
`FIELD(str,str1,str2,str3,…)`
**说明**
返回参数 str 在 str1, str2, str3,… 列表中的索引位置(从 1 开始的位置)。在找不到 str 的情况下,返回值为 0。
如果所有的对于 FIELD() 的参数均为字符串,则所有参数均按照字符串进行比较。如果所有的参数均为数字,则按照数字进行比较。否则,参数均按照 double 类型进行比较。
如果 str 为 NULL,则返回值为 0,原因是 NULL 不能同任何值进行同等比较。FILED() 是 ELT() 的补数。
**例子**
~~~
obclient>select field('abc','abc1','abc2','abc','abc4','abc'), field(NULL, 'null1', NULL);
+-----------------------------------------------+----------------------------+
| field('abc','abc1','abc2','abc','abc4','abc') | field(NULL, 'null1', NULL) |
+-----------------------------------------------+----------------------------+
| 3 | 0 |
+-----------------------------------------------+----------------------------+
1 row in set (0.00 sec)
~~~
#### ELT
**声明**
`ELT(N, str1, str2, str3,…)`
**说明**
若 N=1,则返回值为 str1, 若 N=2,则返回值为 str2,以此类推。若 N 小于 1 或大于参数的数目,则返回值为NULL。ELT() 是 FIELD() 的补数。
**例子**
~~~
obclient>select elt(3, 'abc1', 'abc2', 'abc', 'abc4', 'abc'), elt(0, 'null1', NULL);
+----------------------------------------------+-----------------------+
| elt(3, 'abc1', 'abc2', 'abc', 'abc4', 'abc') | elt(0, 'null1', NULL) |
+----------------------------------------------+-----------------------+
| abc | NULL |
+----------------------------------------------+-----------------------+
1 row in set (0.00 sec)
~~~
#### INSERT
**声明**
`INSERT (str1,pos,len,str2)`
**说明**
返回字符串 str1, 字符串中起始于 pos 位置,长度为 len 的子字符串将被 str2 取代。如果 pos 超过字符串长度,则返回值为原始字符串。 假如 len 的长度大于其它字符串的长度,则从位置 pos 开始替换。若任何一个参数为 null,则返回值为 NULL。这个函数支持多字节字元。
* *str1 和 str2 必须是字符串,pos 和 len 必须是整数。任意参数为 NULL,结果总为 NULL;*
* *str1 和 str2 中的文字符被当做字节流看待;*
* *pos 值为负数或者大于 str1 长度时,返回 str1;*
* 当 len 小于 0,或大于 str 的长度时,返回结果为 str1 从开头到 pos 位置的串,和 str2 的组合串。
**例子**
~~~
obclient>select insert('Quadratic',-2,100,'What'), insert('Quadratic',7,3,'What'),
-> insert('Quadratic',-1,3,'What'), insert('Quadratic',10,3,'What'), insert('Quadratic',5,-1,''),
-> insert('Quadratic',7,-1,'What')\G;
* 1. row *
insert('Quadratic',-2,100,'What'): Quadratic
insert('Quadratic',7,3,'What'): QuadraWhat
insert('Quadratic',-1,3,'What'): Quadratic
insert('Quadratic',10,3,'What'): Quadratic
insert('Quadratic',5,-1,''): Quad
insert('Quadratic',7,-1,'What'): QuadraWhat
1 row in set (0.01 sec)
~~~
#### LPAD
**声明**
`LPAD(str, len, padstr)`
**说明**
用指定字符串 padstr,在左侧填充字符串 str 到指定长度 len。如果 str 长度大于 len,则 str 被截断。
**例子**
~~~
obclient > SELECT LPAD('hi',4,'??');
+-------------------+
| LPAD('hi',4,'??') |
+-------------------+
| ??hi |
+-------------------+
1 row in set (0.01 sec)
obclient > SELECT LPAD('hi',1,'??');
+-------------------+
| LPAD('hi',1,'??') |
+-------------------+
| h |
+-------------------+
1 row in set (0.00 sec)
~~~
#### RPAD
**声明**
`RPAD(str, len, padstr)`
**说明**
用指定字符串 padstr,在右侧填充字符串 str 到指定长度 len。如果 str 长度大于 len,则 str 被截断。
**例子**
~~~
obclient> SELECT RPAD('hi',4,'??');
+-------------------+
| RPAD('hi',4,'??') |
+-------------------+
| hi?? |
+-------------------+
1 row in set (0.00 sec)
obclient> SELECT RPAD('hi',1,'??');
+-------------------+
| RPAD('hi',1,'??') |
+-------------------+
| h |
+-------------------+
1 row in set (0.00 sec)
~~~
#### UUID
**声明**
`uuid()`
**说明**
生成一个全局唯一 ID。
**例子**
~~~
obclient> select uuid();
+--------------------------------------+
| uuid() |
+--------------------------------------+
| f756a1f6-4de6-11e8-90af-90b11c53e421 |
+--------------------------------------+
1 row in set (0.00 sec)
~~~
#### BIN
**声明**
`bin(N)`
**说明**
返回数字 N 的二进制形式。
**例子**
~~~
obclient > SELECT BIN(12);
+---------+
| BIN(12) |
+---------+
| 1100 |
+---------+
1 row in set (0.00 sec)
~~~
#### QUOTE
**声明**
`quote(str)`
**说明**
引用一个字符串以产生一个结果可以作为 SQL 语句中正确地转义数据值。返回的字符串由单引号和单引号的各个实例封闭(''),反斜线(''),ASCII NUL 和 Control-Z 前面加一个反斜杠。如果参数为 NULL,则返回值是词 'NULL' 不包围单引号。
**例子**
~~~
obclient > SELECT QUOTE('Don\'t!');
+------------------+
| QUOTE('Don\'t!') |
+------------------+
| 'Don\'t!' |
+------------------+
1 row in set (0.00 sec)
obclient > SELECT QUOTE(NULL);
+-------------+
| QUOTE(NULL) |
+-------------+
| NULL |
+-------------+
1 row in set (0.00 sec)
~~~
#### REGEXP\_SUBSTR
**声明**
`regexp_substr(str,pattern,[position[,occurrence[,match_param[,subexpr]]]])`
**说明**
在 str 中搜索匹配正则表达式 pattern 的子串,子串不存在返回 NULL。这个函数支持多字节字元。除 match\_param 外,其他任意参数为 NULL,结果为 NULL。
* str 待搜索的字符串,支持多字节字元。
* pattern 正则表达式,正则表达式规则兼容 mysql。
* position \[可选\] 搜索的开始位置。必须是大于 0 的正整数,小于等于 0 报错,输入为 NULL 返回 NULL,默认值为 1,表示从第一个字符开始搜索。
* occurrence \[可选\] 返回第几次匹配的值。必须是大于等于 0 的正整数,小于等于 0 报错,输入为 NULL 返回 NULL,默认值是 1,表示返回第一次匹配的结果。
* match\_param \[可选\] 搜索参数,字符串类型,目前仅支持两个字符 ‘i’,‘c’,i: 代表忽略大小写 c: 代表不忽略,其他字符报错。默认值根据 str 字符集的 collection 决定。 为 NULL 时使用默认值。
* subexpr \[可选\] 返回正则表达式中第几个组的值。大于等于 0 的整数,小于 0 则报错。默认值是 0,表示返回满足整个 pattern 的子串。
**例子**
~~~
obclient> select regexp_substr('I have 2 apples and 100 bucks!', '[[:blank:]][[:alnum:]]*', 1, 1) from dual;
+----------------------------------------------------------------------------------+
| regexp_substr('I have 2 apples and 100 bucks!', '[[:blank:]][[:alnum:]]*', 1, 1) |
+----------------------------------------------------------------------------------+
| have |
+----------------------------------------------------------------------------------+
1 row in set (0.00 sec)
obclient> select regexp_substr('foothebar', 'foo(.*)(bar)', 1, 1, 'c', 1) from dual;
+----------------------------------------------------------+
| regexp_substr('foothebar', 'foo(.*)(bar)', 1, 1, 'c', 1) |
+----------------------------------------------------------+
| the |
+----------------------------------------------------------+
1 row in set (0.01 sec)
~~~
## 转换函数
#### CAST
**声明**
`CAST(expr AS type)`
**说明**
将某种数据类型的表达式显式转换为另一种数据类型。
将 expr 字段值转换为 type 数据类型。
**参数说明**:
* expr:表示任何有效的 SQL 表达式。
* AS:用于分隔两个参数,在 AS 之前的是要处理的数据,在 AS 之后是要转换的数据类型。
* type:表示目标系统所提供的数据类型。可以是以下值其中的一个:
* DATE
* DATETIME
* DECIMAL
* SIGNED \[INTEGER\]
* TIME
* UNSIGNED \[INTEGER\]
在使用 CAST 函数进行数据类型转换时,在下列情况下能够被接受:
* 两个表达式的数据类型完全相同;
* 两个表达式可隐式转换;
* 必须显式转换数据类型。
如果试图进行不可能的转换,OceanBase数据库 将显示一条错误信息。
如果转换时没有指定数据类型的长度,则使用 OceanBase 数据库系统内部最大长度。如 varchar 是262,143字节,number 是 65 个 bit 位的浮动精度。
支持带符号和无符号的 64 比特值的运算。若你正在使用数字操作符 (如 +) 而其中一个操作数为无符号整数,则结果为无符号。可使用 SIGNED 和 UNSIGNED cast 操作符来覆盖它。将运算分别派给带符号或无符号 64 比特整数。
假如任意一个操作数为一个浮点值,则结果为一个浮点值。
**例子**
~~~
obclient>SELECT CAST(123 AS BOOL);
+-------------------+
| CAST(123 AS bool) |
+-------------------+
| 1 |
+-------------------+
1 row in set (0.00 sec)
obclient>select cast(1-2 as unsigned), cast(cast(1-2 as unsigned) as signed);
+-----------------------+---------------------------------------+
| cast(1-2 as unsigned) | cast(cast(1-2 as unsigned) as signed) |
+-----------------------+---------------------------------------+
| 18446744073709551615 | -1 |
+-----------------------+---------------------------------------+
1 row in set (0.00 sec)
obclient>SELECT CAST(1 AS UNSIGNED) - 2.0;
+---------------------------+
| CAST(1 AS UNSIGNED) - 2.0 |
+---------------------------+
| -1.0 |
+---------------------------+
1 row in set (0.00 sec)
obclient>select cast(0 as date);
+-----------------+
| cast(0 as date) |
+-----------------+
| 0000-00-00 |
+-----------------+
1 row in set (0.00 sec)
~~~
## 数学函数
#### ROUND
**声明**
`ROUND(X), ROUND(X,D)`
**说明**
返回一个数值,四舍五入到指定的长度或精度。
返回参数 X, 其值接近于最近似的整数。在有两个参数的情况下,返回 X,其值保留到小数点后 D 位,而第 D 位的保留方式为四舍五入。若要接保留 X 值小数点左边的 D 位,可将 D 设为负值。
返回值的类型同第一个自变量相同(假设它是一个整数、双精度数或小数)。这意味着对于一个整数参数,结果也是一个整数(无小数部分)。
* 对于准确值数字,ROUND() 使用“四舍五入” 或“舍入成最接近的数” 的规则:对于一个分数部分为 .5 或大于 .5 的值,正数则上舍入到邻近的整数值,负数则下舍入临近的整数值。(换言之, 其舍入的方向是数轴上远离零的方向)。对于一个分数部分小于 .5 的值,正数则下舍入下一个整数值,负数则下舍入邻近的整数值,而正数则上舍入邻近的整数值。
* 对于近似值数字, ROUND() 遵循银行家规则“四舍--大于五入--五取最接近的偶数”的规则: 一个带有任何小数部分的值会被舍入成最接近的偶数整数。
**例子**
~~~
obclient>select round(2.15,2);
+---------------+
| round(2.15,2) |
+---------------+
| 2.15 |
+---------------+
1 row in set (0.00 sec)
obclient>select round(2555e-2,1);
+------------------+
| round(2555e-2,1) |
+------------------+
| 25.6 |
+------------------+
1 row in set (0.01 sec)
obclient>select round(25e-1), round(25.3e-1),round(35e-1);
+--------------+----------------+--------------+
| round(25e-1) | round(25.3e-1) | round(35e-1) |
+--------------+----------------+--------------+
| 3 | 3 | 4 |
+--------------+----------------+--------------+
1 row in set (0.00 sec)
~~~
#### CEIL
**声明**
`CEIL(expr)`
**说明**
返回大于或者等于指定表达式的最小整数。
还支持比较运算,结果为 BOOL 值,被转化为数字类型处理,产生的结果为 1(TRUE)、0 (FALSE);
如果输入 NULL,返回值为 NULL。
如果输入纯数字的字符串,支持自动转换成数字类型。
返回值会被转化为一个 BIGINT。
**例子**
~~~
obclient>select ceil(1.2), ceil(-1.2), ceil(1+1.5), ceil(1=1),ceil(1<1),ceil(null);
+-----------+------------+-------------+-----------+-----------+------------+
| ceil(1.2) | ceil(-1.2) | ceil(1+1.5) | ceil(1=1) | ceil(1<1) | ceil(null) |
+-----------+------------+-------------+-----------+-----------+------------+
| 2 | -1 | 3 | 1 | 0 | NULL |
+-----------+------------+-------------+-----------+-----------+------------+
1 row in set (0.00 sec)
obclient>select ceil(name);
ERROR 1166 (42703): Unkown column name 'name'
obclient>select ceil('2');
+-----------+
| ceil('2') |
+-----------+
| 2 |
+-----------+
1 row in set (0.00 sec)
~~~
#### FLOOR
**声明**
`FLOOR(expr)`
**说明**
和 CEIL(expr) 函数功能类似,返回小于或者等于指定表达式的最大整数。
还支持比较运算,结果为 BOOL 值,被转化为数字类型处理,产生的结果为 1(TRUE)、0 (FALSE);
如果输入 NULL,返回值为 NULL。
如果输入纯数字的字符串,支持自动转换成数字类型。
返回值会被转化为一个 BIGINT。
**例子**
~~~
obclient>select floor(1.2), floor(-1.2), floor(1+1.5), floor(1=1),floor(1<1),floor(null);
+------------+-------------+--------------+------------+------------+-------------+
| floor(1.2) | floor(-1.2) | floor(1+1.5) | floor(1=1) | floor(1<1) | floor(null) |
+------------+-------------+--------------+------------+------------+-------------+
| 1 | -2 | 2 | 1 | 0 | NULL |
+------------+-------------+--------------+------------+------------+-------------+
1 row in set (0.00 sec)
obclient>select floor(name);
ERROR 1166 (42703): Unkown column name 'name'
obclient>select floor('2');
+------------+
| floor('2') |
+------------+
| 2 |
+------------+
1 row in set (0.00 sec)
~~~
#### ABS
**声明**
`ABS(expr)`
**说明**
绝对值函数,求表达式绝对值,函数返回值类型与数值表达式的数据类型相同。
还支持比较运算,结果为 BOOL 值,被转化为数字类型处理,产生的结果为 1(TRUE)、0 (FALSE);
如果输入 NULL,返回值为 NULL。
如果输入纯数字的字符串,支持自动转换成数字类型。
返回值会被转化为一个 BIGINT。
**例子**
~~~
obclient>select abs(5), abs(-5.777), abs(0), abs(1/2), abs(1-5);
+--------+-------------+--------+----------+----------+
| abs(5) | abs(-5.777) | abs(0) | abs(1/2) | abs(1-5) |
+--------+-------------+--------+----------+----------+
| 5 | 5.777 | 0 | 0.5000 | 4 |
+--------+-------------+--------+----------+----------+
1 row in set (0.00 sec)
~~~
#### NEG
**声明**
`NEG(expr)`
**说明**
求补函数,对操作数执行求补运算:用零减去操作数,然后结果返回操作数。
支持比较运算,结果为 BOOL 值,被转化为数字类型处理,产生的结果为 1(TRUE)、0 (FALSE),再对结果求补。
**例子**
~~~
obclient>select neg(1), neg(1+1), neg(2*3), neg(1=1), neg(5<1);
+--------+----------+----------+----------+----------+
| neg(1) | neg(1+1) | neg(2*3) | neg(1=1) | neg(5<1) |
+--------+----------+----------+----------+----------+
| -1 | -2 | -6 | -1 | 0 |
+--------+----------+----------+----------+----------+
1 row in set (0.01 sec)
~~~
#### SIGN
**声明**
`SIGN(X)`
**说明**
SIGN(X) 返回参数作为 -1、 0 或 1 的符号,该符号取决于 X 的值为负、零或正。
支持比较运算,结果为 BOOL 值,被转化为数字类型处理,产生的结果为 1(TRUE)、0 (FALSE);
如果输入 NULL,返回值为 NULL。
支持浮点数、十六进制数。
**例子**
~~~
obclient>SELECT SIGN(-32), SIGN(0), SIGN(234);
+-----------+---------+-----------+
| SIGN(-32) | SIGN(0) | SIGN(234) |
+-----------+---------+-----------+
| -1 | 0 | 1 |
+-----------+---------+-----------+
1 row in set (0.01 sec)
obclient>select sign(null),sign(false),sign(0x01);
+------------+-------------+------------+
| sign(null) | sign(false) | sign(0x01) |
+------------+-------------+------------+
| NULL | 0 | 1 |
+------------+-------------+------------+
1 row in set (0.00 sec)
~~~
#### CONV
**声明**
`CONV(N, from_base, to_base)`
**说明**
不同数基间转换数字。返回值为一个字符串,由 from\_base 基转化为 to\_base 基。输入参数 N 可以是一个整数或字符串。最小基数为 2,而最大基数则为 36。如果 to\_base 是一个负数,则 N 被看作一个带符号数。否则,N 被看作无符号数。from\_base 如果是负数,则被当作整数处理,符号被忽略。N 参数仅支持 int 类型和字符串类型输入;from\_base 和 to\_base 参数仅支持十进制 int 类型输入,且取值范围为 \[-36, -2\] U \[2, 36\]。
非法输入将导致报错,其中非法输入包括以下情况:
* *from\_base 或者 to\_base 不是一个合法的十进制int类型输入;*
* *from\_base 或者 to\_base 超出 \[-36,-2\] U \[2,36\] 的取值范围;*
* N 不是一个合法的数字表示,例如取值超出 0~9,a~z,A~Z 的字符范围;
* N 超出了 from\_base 基的取值范围,例如 from\_base 为 2,而 N 取值为 3;
* N 的取值超出了 int64 的最大表示范围,即 \[-9223372036854775807, 9223372036854775807\]。
**例子**
~~~
obclient>select conv(9223372036854775807,10,2);
+-----------------------------------------------------------------+
| conv(9223372036854775807,10,2) |
+-----------------------------------------------------------------+
| 111111111111111111111111111111111111111111111111111111111111111 |
+-----------------------------------------------------------------+
1 row in set (0.00 sec)
obclient>select conv('-acc',21,-7);
+--------------------+
| conv('-acc',21,-7) |
+--------------------+
| -16425 |
+--------------------+
1 row in set (0.00 sec)
~~~
#### MOD
**声明**
`MOD(N,M)`
**说明**
取余函数。MOD(N,M), N % M, N MOD M 三种形式是等效的。
MOD() 对于带有小数部分的数值也起作用,它返回除法运算后的精确余数。
N,M 中任何一个参数为 NULL,返回值都为 NULL。M 为 0 时,也返回 NULL。
**例子**
~~~
obclient>select mod(29,19), 29 mod 19, 29 % 19;
+------------+-----------+---------+
| mod(29,19) | 29 mod 19 | 29 % 19 |
+------------+-----------+---------+
| 10 | 10 | 10 |
+------------+-----------+---------+
1 row in set (0.00 sec)
~~~
#### POW
**声明**
`POW(X,Y)`
**说明**
返回 X 的 Y 次方。
X 与 Y 中任何一个参数为 NULL,返回值都为 NULL。
**例子**
~~~
obclient>select pow(4,2), pow(4,-2), pow(1,null);
+----------+-----------+-------------+
| pow(4,2) | pow(4,-2) | pow(1,null) |
+----------+-----------+-------------+
| 16 | 0.0625 | NULL |
+----------+-----------+-------------+
1 row in set (0.00 sec)
~~~
#### POWER
**声明**
`POWER(X,Y)`
**说明**
POWER(X,Y) 和 POW(X,Y) 是同义函数。
#### RAND
**声明**
`rand([N])`
**说明**
RAND(\[N\]) 函数接受 0 个或者 1 个参数(N 被称为随机数种子),返回一个范围是 \[0,1.0) 的随机浮点数。如果想获得一个范围在 \[i, j) 的随机整数,可以使用表达式 FLOOR(I + RAND() \* (j - i))。
如果参数 N 不指定,那么在执行之前会使用随机种子初始化,之后 RAND() 会根据这个初始化值来生成随机数,所以 RAND() 每次会生成不同的随机数序列。
如果参数 N 指定,那么 N 会作为随机数种子来生成随机数。根据 N 是否是常量,分成以下两种情况:
* 如果 N 是常量,那么 N 在执行之前会被当成随机种子初始化,之后 RAND(N) 会根据这个初始化值来生成随机数。相同的 N 值会生成相同的随机数序列。
* 如果 N 是变量(比如 N 是一个列值),那么 N 会在每次执行的时候作为随机数种子来生成随机数。相同的 N 值会生成相同的随机数。
除了出现在 Select 语句中,RAND(\[N\]) 也可以出现在 where,order by 和 group by 语句中,它的执行方式还是按照上述规则执行。比如,如果想随机的对一个表进行排序,可以使用如下 SQL:select from t1 order by rand()。如果想随机取样一个表的 100 行,可以使用如下 SQL:select from t1 order by rand() limit 100。
**例子**
~~~
obclient> select a, b, rand() from t3;
+------+------+---------------------+
| a | b | rand() |
+------+------+---------------------+
| 1 | 1 | 0.641815407799385 |
| 2 | 2 | 0.16825051248841966 |
| 3 | 3 | 0.9158063697775886 |
+------+------+---------------------+
3 rows in set (0.00 sec)
obclient> select a, b, rand() from t3;
+------+------+---------------------+
| a | b | rand() |
+------+------+---------------------+
| 1 | 1 | 0.07428034215632857 |
| 2 | 2 | 0.6239826321825224 |
| 3 | 3 | 0.897072165177271 |
+------+------+---------------------+
3 rows in set (0.00 sec)
obclient> select a, b, rand(3) from t3;
+------+------+---------------------+
| a | b | rand(3) |
+------+------+---------------------+
| 1 | 1 | 0.9057697559760601 |
| 2 | 2 | 0.37307905813034536 |
| 3 | 3 | 0.14808605345719125 |
+------+------+---------------------+
3 rows in set (0.00 sec)
obclient> select a, b, rand(3) from t3;
+------+------+---------------------+
| a | b | rand(3) |
+------+------+---------------------+
| 1 | 1 | 0.9057697559760601 |
| 2 | 2 | 0.37307905813034536 |
| 3 | 3 | 0.14808605345719125 |
+------+------+---------------------+
3 rows in set (0.00 sec)
obclient> select a, b, rand(a), rand(b) from t3;
+------+------+---------------------+---------------------+
| a | b | rand(a) | rand(b) |
+------+------+---------------------+---------------------+
| 1 | 1 | 0.40540353712197724 | 0.40540353712197724 |
| 2 | 2 | 0.6555866465490187 | 0.6555866465490187 |
| 3 | 3 | 0.9057697559760601 | 0.9057697559760601 |
+------+------+---------------------+---------------------+
3 rows in set (0.00 sec)
~~~
## 比较函数
#### GREATEST
**声明**
`GREATEST(value1, ...)`
**说明**
返回参数的最大值,和函数 LEAST() 相对。
参数至少为两个(一个参数将会报错);如果参数中有 NULL, 返回值为 NULL。
当参数中同时存在数值和字符时,把字符隐式转换为数值类型处理,不能转换的报错。
**例子**
~~~
obclient>select greatest(2,1), greatest('2',1,0), greatest('a','b','c'), greatest('a', NULL, 'c'), greatest('2014-05-15','2014-06-01')\G
* 1. row *
greatest(2,1): 2
greatest('2',1,0): 2
greatest('a','b','c'): c
greatest('a', NULL, 'c'): NULL
greatest('2014-05-15','2014-06-01'): 2014-06-01
1 row in set (0.01 sec)
obclient>select greatest(2);
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'greatest'
~~~
#### LEAST
**声明**
`LEAST(value1, ...)`
**说明**
返回参数的最小值,和函数 GREATEST() 相对。
参数至少为两个;如果参数中有 NULL,返回值为 NULL。
当参数中同时存在数值和字符时,把字符隐式转换为数值类型处理,不能转换的报错。
**例子**
~~~
obclient>select least(2, null), least('2',4,9), least('a','b','c'), least('a',NULL,'c'), least('2014-05-15','2014-06-01')\G;
* 1. row *
least(2, null): NULL
least('2',4,9): 2
least('a','b','c'): a
least('a',NULL,'c'): NULL
least('2014-05-15','2014-06-01'): 2014-05-15
1 row in set (0.01 sec)
obclient>select least(2);
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'least'
~~~
#### ISNULL
**声明**
`ISNULL(expr)`
**说明**
如果参数 expr 为 NULL,那么 ISNULL() 的返回值为 1,否则范围值为 0。
ISNULL() 函数可以用来替代针对 NULL 的等值(=)比较。(使用 = 的 NULL 值比较通常都是错误的。)ISNULL() 函数同 IS NULL 比较操作符具有一些相同的特性。
**例子**
~~~
obclient>SELECT ISNULL(null), ISNULL('test'), ISNULL(123.456), ISNULL('10:00');
+--------------+----------------+-----------------+-----------------+
| ISNULL(null) | ISNULL('test') | ISNULL(123.456) | ISNULL('10:00') |
+--------------+----------------+-----------------+-----------------+
| 1 | 0 | 0 | 0 |
+--------------+----------------+-----------------+-----------------+
1 row in set (0.01 sec)
obclient>SELECT ISNULL(null+1);
+----------------+
| ISNULL(null+1) |
+----------------+
| 1 |
+----------------+
1 row in set (0.00 sec)
~~~
## 流程控制函数
#### CASE
**声明**
~~~
CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END
OR
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
~~~
**说明**
在第一个方案的返回结果中,value = compare-value。而第二个方案的返回结果是第一种条件为真。如果没有匹配的结果值,则返回结果为 ELSE 后的结果,如果没有 ELSE 部分,则返回值为 NULL。
**例子**
~~~
obclient>select CASE 'b' when 'a' then 1 when 'b' then 2 END;
+----------------------------------------------+
| CASE 'b' when 'a' then 1 when 'b' then 2 END |
+----------------------------------------------+
| 2 |
+----------------------------------------------+
1 row in set (0.01 sec)
obclient>select CASE concat('a','b') when concat('ab','') then 'a' when 'b' then 'b' end;
+--------------------------------------------------------------------------+
| CASE concat('a','b') when concat('ab','') then 'a' when 'b' then 'b' end |
+--------------------------------------------------------------------------+
| a |
+--------------------------------------------------------------------------+
1 row in set (0.01 sec)
obclient>select case when 1>0 then 'true' else 'false' end;
+--------------------------------------------+
| case when 1>0 then 'true' else 'false' end |
+--------------------------------------------+
| true |
+--------------------------------------------+
1 row in set (0.00 sec)
~~~
#### IF
**声明**
`IF(expr1,expr2,expr3)`
**说明**
如果 expr1 的值为 TRUE(即:expr1NULL),返回结果为 expr2; 否则返回结果为 expr3。
IF() 返回结果可以是数值或字符串类型,它取决于使用的内容。
如果 expr2, expr3 中只有一个明确是 NULL,则 IF() 函数的结果类型为非 NULL 表达式的结果类型。
**例子**
~~~
obclient>select if(5>6, 'T','F'), if (5>6, 1, 0), if(null, 'True', 'False'), if(0, 'True', 'False')\G
* 1. row *
if(5>6, 'T','F'): F
if (5>6, 1, 0): 0
if(null, 'True', 'False'): False
if(0, 'True', 'False'): False
1 row in set (0.01 sec)
~~~
#### IFNULL
**声明**
`IFNULL(expr1, expr2)`
**说明**
假设 expr1 不为 NULL,则 IFNULL() 的返回值为 expr1; 否则其返回值为 expr2。IFNULL() 的返回值是数值或字符串,具体情况取决于其所使用的语境。
IF() 的默认返回值类型按照以下方式计算:
<table data-tag="table" id="table-tn4-2t9-vxa" class="table"><colgroup span="1" width="360" data-tag="col" id="col-0mp-e6m-5yw" colwidth="1*" colnum="1" colname="col1" style="width:50%" class="col"></colgroup><colgroup span="1" width="360" data-tag="col" id="col-3gl-yqx-e5z" colwidth="1*" colnum="2" colname="col2" style="width:50%" class="col"></colgroup><thead id="thead-chx-3d7-y7f" class="thead"><tr id="tr-f3v-4c5-hjn"><th id="td-qiy-5or-jcg"><p id="p-wua-4wp-9f0">表达式</p></th><th id="td-zan-hna-z9c"><p id="p-66s-1gi-xef">返回值</p></th></tr></thead><tbody data-tag="tbody" id="tbody-246-6dj-nny" class="tbody"><tr data-tag="tr" id="tr-4pg-e09-f2a" class="tr"><td data-tag="td" id="td-8i9-a0l-q46" class="td"><p id="p-i97-lbr-jid">expr1 或 expr2 返回值为一个字符串。</p></td><td data-tag="td" id="td-0a3-jfc-shg" class="td"><p id="p-oui-npj-5vl">字符串</p></td></tr><tr data-tag="tr" id="tr-3la-lya-nbh" class="tr"><td data-tag="td" id="td-9sf-grq-xcc" class="td"><p id="p-1hs-11v-9kk">expr1 或 expr2 返回值为一个浮点值。</p></td><td data-tag="td" id="td-s1y-c9x-k0k" class="td"><p id="p-i6u-bf2-s7j">浮点</p></td></tr><tr data-tag="tr" id="tr-env-jj1-le7" class="tr"><td data-tag="td" id="td-spx-7e3-zeo" class="td"><p id="p-12d-tdc-mhk">expr1 或 expr2 返回值为一个整数。</p></td><td data-tag="td" id="td-nfd-6n6-2dg" class="td"><p id="p-l6h-shs-zkj">整数</p></td></tr></tbody></table>
假如 expr1 和 expr2 都是字符串,且其中任何一个字符串区分大小写,则返回结果是区分大小写。
**例子**
~~~
obclient>SELECT IFNULL('abc', null), IFNULL(NULL+1, NULL+2), IFNULL(1/0, 0/1);
+---------------------+------------------------+------------------+
| IFNULL('abc', null) | IFNULL(NULL+1, NULL+2) | IFNULL(1/0, 0/1) |
+---------------------+------------------------+------------------+
| abc | NULL | 0.0000 |
+---------------------+------------------------+------------------+
1 row in set (0.01 sec)
~~~
#### NULLIF
**声明**
`NULLIF(expr1, expr2)`
**说明**
如果 expr1 = expr2 成立,那么返回值为 NULL,否则返回值为 expr1。这和 CASE WHEN
*expr1 = expr2 THEN NULL ELSE expr1 END 相同。注意,如果参数不相等,则两次求得的值为 expr1。*
**例子**
~~~
obclient>SELECT NULLIF('ABC', 123), NULLIF('123',123), NULLIF(NULL, 'abc');
+--------------------+-------------------+---------------------+
| NULLIF('ABC', 123) | NULLIF('123',123) | NULLIF(NULL, 'abc') |
+--------------------+-------------------+---------------------+
| ABC | NULL | NULL |
+--------------------+-------------------+---------------------+
1 row in set, 1 warning (0.01 sec)
~~~
#### ORA\_DECODE
**声明**
`ora_decode(条件, 值1, 返回值1, 值2, 返回值2, ... 值n, 返回值n, 缺省值)`
**说明**
ORA\_DECODE() 函数功能等同于 Oracle 的 DECODE() 函数功能。
该函数的含义如下:
~~~
IF 条件=值1
THEN RETURN(返回值1)
ELSIF 条件=值2
THEN RETURN(返回值2)
......
ELSIF 条件=值n
THEN RETURN(返回值n)
ELSE RETURN(缺省值)
END IF
~~~
- 前言
- 1.说明
- 2.文档更新说明
- docker
- 01.docker安装
- 02.docker加速器
- 03.docker基本使用
- 04.docker 镜像与容器
- 05.Dockerfile
- 06.docker阿里镜像仓库
- 07.docker私有镜像仓库harbor
- 08.docker网络
- 09.docker项目实战01
- 10.docker项目实战02
- 11.docker componse
- 12.docker-compose常用命令
- 13.docker compose 案例
- 14.docker swarm集群
- 15.docker swarm常用命令
- 16.docker swarm 案例
- 17.volume
- 18.network
- 19.idea中部署项目到docker
- 20.docker目录方式挂载sqlite
- 21.docker常用命令补充
- 22.nginx容器代理静态文件403解决
- 23.docker集群管理平台
- k8s
- 01.Kubernetes介绍
- 02.K8s基本概念
- 03.K8s架构图
- 04.Minikube单节点环境搭建
- 05.kubeadm集群安装1.14.0
- 06.虚拟机静态网络配置
- 07.kubeadm高可用集群安装1.14.0
- 08 高可用VIP配置(keepalived+haproxy)
- 09.高可用免密登录
- 10.kubeadm init流程
- 11.k8s体验
- 12.网络插件
- 13.Ingress
- 14.Ingress分类
- 15.Dashboard
- 16.存储
- 01.Volumes
- 02.nfs
- 03.PV PVC
- 04.StorageClass
- 17.基础组件
- 01.Pod
- 02.Service
- 03.ReplicaSet(RS)
- 04.Deployment
- 06.Namespace
- 02.DaemonSet
- 03.StatefulSet
- 04.ReplicationController(RC)
- 06.Job
- 09.PetSet
- 10.StatefulSets
- 11.Federation
- 12.Secret
- 05.Resources
- 13.UserAccount/ServiceAccount
- 14.RBAC
- 18.核心组件
- Master组件
- 01.kube-apiserver
- 02.etcd
- 03.kube-controller-manager
- 04.cloud-controller-manager
- 05.kube-scheduler
- 06.DNS
- Node组件
- 01.kubelet
- 02.kube-proxy
- 03.docker
- 04.RKT
- 05.supervisord
- 06.fluentd
- kubectl
- 19.K8S服务更新部署
- 20.CI/CD
- 01.java安装
- 02.maven安装
- 03.gitlab安装
- 04.git安装
- 05.jenkins安装
- 06.k8s集群
- 07.DockerHub
- 08.实战
- 21.日志
- 01.不同组件日志
- 02.LogPilot+ES+Kibana
- 22.监控
- 23.k8s部署ocp项目[mysql]
- 01.ocp介绍
- 02.环境准备
- 03.镜像准备
- 04.部署说明
- 05.eureka-server
- 06.mysql
- 07.redis
- 08.auth-server
- 09.user-center
- 10.new-api-gateway
- 11.back-center
- 飞致云kubeoperator
- 01.kubeoperator介绍
- 02.kubeoperator安装
- 飞致云DataEase
- 项目介绍
- 系统架构
- 安装部署
- 在线安装
- 离线安装
- 用户手册
- 通用功能
- 数据源
- 数据集
- 视图
- 仪表板
- 系统管理
- 用户管理
- 飞致云JumpServer
- TIDB
- 网络
- 交换机
- ISO/OSI协议模型详解
- 交换CCNP
- RSTP快速生成树协议
- MST多生成树协议
- 以太网信道【应用广泛】
- 广播和多播抑制
- 多层交换
- ARP地址解析协议抑制
- VLAN间路由
- 热备份路由协议HSRP【思科私有】
- 虚拟路由器冗余协议VRRP
- linux
- 01.时间同步
- linux时间不能同步
- Linux挂载磁盘
- 安装ftp
- linux环境ftp账号
- HTTP状态码
- 宝塔
- Centos安装vsftp
- nginx ssl 配置
- datax
- 1.geom类型迁移扩展
- python安装
- 消息中间件
- 1.RocketMQ
- 1.RocketMQ单机环境安装
- 前端
- node踩坑之npm
- 数据库
- Mysql安装
- ClickHouse
- OceanBase数据库
- OceanBase介绍
- OceanBase数据库整体架构
- 快速入门
- 资源准备
- 安装 OBD部署 OceanBase 数据库
- 基本操作
- 数据库操作
- 表操作
- 索引操作
- 插入数据
- 删除数据
- 更新数据
- 提交事务
- 回滚事务
- 安装部署
- 使用 RPM 包安装 OceanBase 数据库
- 使用源码构建 OceanBase 数据库
- 设置无密码 SSH 登录
- 配置时钟源
- 数据分布
- 集群管理
- 租户与资源管理
- 数据分布1
- 数据副本与服务
- 数据均衡
- 数据模型
- 多租户架构
- 系统租户
- 普通租户
- 表格和表组
- 二级索引
- 无主键表
- 视图
- 高可用
- 高可用方案
- 部署模式
- redo 日志管理控制
- 事务管理
- 隔离级别
- 并发控制
- 全局时间戳服务
- 本地事务
- 分布式事务
- 分布式查询
- 存储架构
- LSM Tree 架构
- 内存表 MemTable
- 块存储 SSTable
- 转储和合并
- 缓存机制
- 读写流程
- DDL
- SQL 引擎
- SQL 请求执行流程
- 查询改写
- 基于规则的查询改写
- 基于代价的查询改写
- 查询优化
- 访问路径
- 基于规则的路径选择
- 基于代价的路径选择
- 联接算法
- 联接算法
- 联接顺序
- SQL 执行计划
- 执行计划算子
- TABLE SCAN
- TABLE LOOKUP
- JOIN
- COUNT
- GROUP BY
- WINDOW FUNCTION
- SUBPLAN FILTER
- DISTINCT
- SEQUENCE
- MATERIAL
- SORT
- LIMIT
- FOR UPDATE
- SELECT INTO
- SUBPLAN SCAN
- UNION
- INTERSECT
- EXCEPT/MINUS
- INSERT
- DELETE
- UPDATE
- MERGE
- EXCHANGE
- GI
- 执行计划缓存
- 快速参数化
- 实时执行计划展示
- 分布式执行计划
- 分布式执行和并行查询
- 分布式计划的生成
- 分布式执行计划调度
- 分布式执行计划管理
- 并行查询的执行
- 并行查询的参数调优
- 备份与恢复
- 备份架构
- 恢复架构
- Backup Set
- Archive Log Round
- 管理员指南
- 数据库基础组件介绍
- 数据库管理工具介绍
- OceanBase 客户端
- MySQL 客户端
- 数据库基础管理
- OceanBase 集群管理
- 集群参数管理
- 查询集群参数
- 修改集群参数
- Zone 管理
- 增加或删除 Zone
- 启动或停止 Zone
- 修改 Zone
- OBServer 管理
- 查看 OBServer 状态
- 停止 OBServer
- 启动 OBServer
- 管理 OBServer 节点状态
- 资源管理
- 创建资源单元
- 查看资源单元
- 修改资源单元
- 删除资源单元
- 创建资源池
- 查看资源配置
- 修改资源池
- 删除资源池
- 租户管理
- 创建用户租户
- 新建租户
- 查看租户
- 修改租户
- 删除租户
- 查看租户会话
- 终止租户会话
- 租户管理变量
- 内存管理
- OceanBase 内存结构
- OceanBase 数据库内存上限
- 系统内部内存管理
- 租户内部内存管理
- 执行计划缓存
- 常见内存问题
- 数据库对象管理
- 管理表
- 关于表
- 创建表
- 定义自增列
- 定义列的约束类型
- 查看表的定义
- 更改表
- 清空表
- 删除表
- 管理表组
- 关于表组
- 表组管理命令
- 管理索引
- 关于索引
- 创建索引
- 查看索引
- 删除索引
- 视图和同义词管理
- 管理视图
- 管理同义词
- 数据分布和链路管理
- 分区表和分区索引管理
- 关于分区
- 分区策略
- 创建分区表
- 一级分区表
- 二级分区表
- 维护分区表
- 一级分区表
- 二级分区表
- 分区裁剪
- 分区命名与查询
- 在分区表上建立索引
- 局部索引
- 全局索引
- 使用索引
- 副本管理
- 表级副本的使用
- Locality 管理
- 修改租户的 Locality
- 事务管理
- 提交事务
- 回滚事务
- 事务隔离级别
- 用户权限管理
- 创建用户
- 修改用户权限
- 查看白名单
- 锁定和解锁用户
- 删除用户
- 数据高可用
- 回收站管理
- 回收站支持的对象
- 数据库、表和索引级回收站
- 租户级回收站
- 物理备份与恢复管理
- 部署 NFS
- 备份数据
- 通过命令行备份
- 查看备份进度
- 停止备份
- 删除过期的备份
- 清理备份数据
- 取消清理备份数据
- 恢复数据
- 执行恢复
- 查看恢复进度和结果
- 备份维护
- 开发者指南
- 关于OceanBase数据库
- OceanBase 集群简介
- OceanBase 租户简介
- MySQL 租户数据库对象
- MySQL 客户端
- OceanBase 客户端(obclient)
- 关于结构化查询语言
- Java 数据库连接驱动(JDBC)
- 连接OceanBase数据库
- 通过 MySQL 客户端连接 OceanBase 租户
- 通过 obclient 连接 OceanBase 租户
- 创建 OceanBase 示例数据库 TPCC
- 通过 obclient 探索 OceanBase MySQL 租户
- 查询表数据
- 关于查询语句
- 查询表里符合特定搜索条件的数据
- 对查询的结果进行排序
- 从多个表里查询数据
- 在查询中使用操作符和函数
- 查看查询执行计划
- 在查询中使用 SQL Hint
- 关于查询超时设计
- 关于 DML 语句和事务
- 关于 DML 语句
- 关于 INSERT 语句
- 关于 UPDATE 语句
- 关于 DELETE 语句
- 关于 REPLACE INTO 语句
- 关于事务控制语句
- 提交事务
- 回滚事务
- 事务保存点
- 关于事务超时
- 创建和管理数据库对象
- 关于 DDL 语句
- 创建数据库
- 创建和管理表
- 关于 SQL 数据类型
- 创建表
- 关于自增列
- 关于列的约束类型
- 关于表的索引
- 闪回被删除的表
- 创建和管理分区表
- 分区路由
- 分区策略
- 分区表的索引
- 分区表使用建议
- 创建和管理表组
- 关于表组
- 创建表时指定表组
- 查看表组信息
- 向表组中增加表
- 删除表组
- 创建和管理视图
- 创建视图
- 修改视图
- 删除视图
- 向 OceanBase 迁移数据
- DataX
- 不同数据源的 DataX 读写插件示例
- OceanBase 数据加载技术
- 附录
- OceanBase 常用参数和变量
- OceanBase 常用 SQL
- SQL参考
- 基本元素
- 运算符
- 函数
- 函数
- 聚集函数
- 分析函数
- 信息函数
- 其它函数
- 查询和子查询
- 连接
- 集合
- SQL语句
- 通用语法
- ALTER DATABASE
- ALTER OUTLINE
- ALTER RESOURCE POOL
- ALTER RESOURCE UNIT
- ALTER SYSTEM
- ALTER TABLE
- ALTER TABLEGROUP
- ALTER TENANT
- ALTER USER
- CREATE DATABASE
- CREATE INDEX
- CREATE OUTLINE
- CREATE RESOURCE POOL
- CREATE RESOURCE UNIT
- CREATE RESTORE POINT
- CREATE SYNONYM
- CREATE TABLE
- CREATE TABLEGROUP
- CREATE TENANT
- CREATE USER
- CREATE VIEW
- DELETE
- DROP DATABASE
- DROP INDEX
- DROP OUTLINE
- DROP RESOURCE POOL
- DROP RESOURCE UNIT
- DROP RESTORE POINT
- DROP TABLE
- DROP TABLEGROUP
- DROP TENANT
- DROP SYNONYM
- DROP USER
- DROP VIEW
- EXPLAIN
- FLASHBACK DATABASE
- FLASHBACK TABLE
- FLASHBACK TENANT
- GRANT
- INSERT
- KILL
- PURGE DATABASE
- PURGE INDEX
- PURGE RECYCLEBIN
- PURGE TABLE
- PURGE TENANT
- RENAME TABLE
- RENAME USER
- REPLACE
- REVOKE
- SAVEPOINT
- SCHEMA
- SELECT
- SESSION
- SET PASSWORD
- SHOW GRANTS
- SHOW RECYCLEBIN
- TRANSACTION
- TRUNCATE TABLE
- UPDATE
- SQL调优指南
- SQL请求执行流程
- SQL 执行计划
- SQL 执行计划简介
- 执行计划算子
- TABLE SCAN
- TABLE LOOKUP
- JOIN
- COUNT
- GROUP BY
- WINDOW FUNCTION
- SUBPLAN FILTER
- DISTINCT
- SEQUENCE
- MATERIAL
- SORT
- LIMIT
- FOR UPDATE
- SELECT INTO
- SUBPLAN SCAN
- UNION
- INTERSECT
- EXCEPT/MINUS
- INSERT
- DELETE
- UPDATE
- MERGE
- EXCHANGE
- GI
- 执行计划缓存
- 快速参数化
- 实时执行计划展示
- 分布式执行计划
- 分布式执行和并行查询
- 分布式计划的生成
- 分布式执行计划调度
- 分布式执行计划管理
- 并行查询的执行
- 并行查询的参数调优
- 参考指南
- 系统视图
- 概述
- 字典视图
- mysql.help_topic
- mysql.help_category
- mysql.help_keyword
- mysql.help_relation
- mysql.db
- mysql.proc
- mysql.time_zone
- mysql.time_zone_name
- mysql.time_zone_transition
- mysql.time_zone_transition_type
- mysql.user
- information_schema.CHARACTER_SETS
- information_schema.COLLATIONS
- information_schema.COLLATION_CHARACTER_SET_APPLICABILITY
- information_schema.COLUMNS
- information_schema.DBA_OUTLINES
- information_schema.ENGINES
- information_schema.GLOBAL_STATUS
- information_schema.GLOBAL_VARIABLES
- information_schema.KEY_COLUMN_USAGE
- information_schema.PARAMETERS
- information_schema.PARTITIONS
- information_schema.PROCESSLIST
- information_schema.REFERENTIAL_CONSTRAINTS
- information_schema.ROUTINES
- information_schema.SCHEMATA
- information_schema.SCHEMA_PRIVILEGES
- information_schema.SESSION_STATUS
- information_schema.SESSION_VARIABLES
- information_schema.STATISTICS
- information_schema.TABLES
- information_schema.TABLE_CONSTRAINTS
- information_schema.TABLE_PRIVILEGES
- information_schema.USER_PRIVILEGES
- information_schema.USER_RECYCLEBIN
- information_schema.VIEWS
- oceanbase.CDB_OB_BACKUP_ARCHIVELOG_SUMMARY
- oceanbase.CDB_OB_BACKUP_JOB_DETAILS
- oceanbase.CDB_OB_BACKUP_SET_DETAILS
- oceanbase.CDB_OB_BACKUP_PROGRESS
- oceanbase.CDB_OB_BACKUP_SET_EXPIRED
- oceanbase.CDB_OB_BACKUP_ARCHIVELOG_PROGRESS
- oceanbase.CDB_OB_BACKUP_CLEAN_HISTORY
- oceanbase.CDB_OB_BACKUP_TASK_CLEAN_HISTORY
- oceanbase.CDB_OB_RESTORE_PROGRESS
- oceanbase.CDB_OB_RESTORE_HISTORY
- oceanbase.CDB_CKPT_HISTORY
- oceanbase.CDB_OB_BACKUP_VALIDATION_JOB
- oceanbase.CDB_OB_BACKUP_VALIDATION_JOB_HISTORY
- oceanbase.CDB_OB_TENANT_BACKUP_VALIDATION_TASK
- oceanbase.CDB_OB_BACKUP_VALIDATION_TASK_HISTORY
- oceanbase.CDB_OB_BACKUP_BACKUP_ARCHIVELOG_SUMMARY
- oceanbase.CDB_OB_BACKUP_BACKUPSET_TASK_HISTORY
- oceanbase.CDB_OB_BACKUP_BACKUPSET_TASK
- oceanbase.CDB_OB_BACKUP_BACKUPSET_JOB_HISTORY
- oceanbase.CDB_OB_BACKUP_BACKUPSET_JOB
- oceanbase.CDB_OB_BACKUP_SET_OBSOLETE
- 性能视图
- gv$plan_cache_stat
- gv$plan_cache_plan_stat
- gv$session_event
- gv$session_wait
- gv$session_wait_history
- gv$system_event
- gv$sesstat
- gv$sysstat
- gv$sql_audit
- gv$latch
- gv$memory
- gv$memstore
- gv$memstore_info
- gv$plan_cache_plan_explain
- gv$obrpc_outgoing
- gv$obrpc_incoming
- gv$sql
- gv$sql_plan_monitor
- gv$outline
- gv$concurrent_limit_sql
- gv$sql_plan_statistics
- gv$server_memstore
- gv$unit_load_balance_event_history
- gv$tenant
- gv$database
- gv$table
- gv$unit
- gv$partition
- gv$lock_wait_stat
- gv$session_longops
- gv$tenant_memstore_allocator_info
- gv$minor_merge_info
- gv$tenant_px_worker_stat
- gv$partition_audit
- gv$ps_stat
- gv$ps_item_info
- gv$sql_workarea
- gv$sql_workarea_histogram
- gv$ob_sql_workarea_memory_info
- gv$server_schema_info
- gv$merge_info
- gv$lock
- gv$sstable
- gv$ob_trans_table_status
- v$statname
- v$event_name
- v$session_event
- v$session_wait
- v$session_wait_history
- v$sesstat
- v$sysstat
- v$system_event
- v$memory
- v$memstore
- v$memstore_info
- v$plan_cache_stat
- v$plan_cache_plan_stat
- v$plan_cache_plan_explain
- v$sql_audit
- v$obrpc_outgoing
- v$obrpc_incoming
- v$sql
- v$sql_monitor
- v$sql_plan_monitor
- v$sql_plan_statistics
- v$unit
- v$partition
- v$lock_wait_stat
- v$session_longops
- v$latch
- v$tenant_memstore_allocator_info
- v$tenant_px_worker_stat
- v$partition_audit
- v$ob_cluster
- v$ob_standby_status
- v$ob_cluster_stats
- v$ob_cluster_event_history
- v$ps_stat
- v$ps_item_info
- v$sql_workarea
- v$sql_workarea_active
- v$sql_workarea_histogram
- v$ob_sql_workarea_memory_info
- v$ob_timestamp_service
- v$server_schema_info
- v$merge_info
- v$lock
- v$sql_monitor_statname
- v$restore_point
- v$ob_cluster_failover_info
- v$encrypted_tables
- v$encrypted_tablespaces
- v$sstable
- v$ob_trans_table_status
- 系统变量
- 系统变量概述
- auto_increment_increment
- auto_increment_offset
- autocommit
- character_set_client
- character_set_connection
- character_set_database
- character_set_results
- character_set_server
- character_set_system
- collation_connection
- collation_database
- collation_server
- interactive_timeout
- last_insert_id
- max_allowed_packet
- sql_mode
- time_zone
- tx_isolation
- version_comment
- wait_timeout
- binlog_row_image
- character_set_filesystem
- connect_timeout
- datadir
- debug_sync
- div_precision_increment
- explicit_defaults_for_timestamp
- group_concat_max_len
- identity
- lower_case_table_names
- net_read_timeout
- net_write_timeout
- read_only
- sql_auto_is_null
- sql_select_limit
- timestamp
- tx_read_only
- version
- sql_warnings
- max_user_connections
- init_connect
- license
- net_buffer_length
- system_time_zone
- query_cache_size
- query_cache_type
- sql_quote_show_create
- max_sp_recursion_depth
- sql_safe_updates
- ob_proxy_partition_hit
- ob_log_level
- ob_max_parallel_degree
- ob_query_timeout
- ob_read_consistency
- ob_enable_transformation
- ob_trx_timeout
- ob_enable_plan_cache
- ob_enable_index_direct_select
- ob_proxy_set_trx_executed
- ob_enable_aggregation_pushdown
- ob_last_schema_version
- ob_global_debug_sync
- ob_proxy_global_variables_version
- ob_enable_trace_log
- ob_enable_hash_group_by
- ob_enable_blk_nestedloop_join
- ob_bnl_join_cache_size
- ob_org_cluster_id
- ob_plan_cache_percentage
- ob_plan_cache_evict_high_percentage
- ob_plan_cache_evict_low_percentage
- recyclebin
- ob_capability_flag
- ob_stmt_parallel_degree
- is_result_accurate
- error_on_overlap_time
- ob_compatibility_mode
- ob_create_table_strict_mode
- ob_sql_work_area_percentage
- ob_route_policy
- ob_enable_transmission_checksum
- foreign_key_checks
- ob_enable_truncate_flashback
- ob_tcp_invited_nodes
- sql_throttle_current_priority
- sql_throttle_priority
- sql_throttle_rt
- sql_throttle_network
- auto_increment_cache_size
- ob_enable_jit
- ob_timestamp_service
- plugin_dir
- undo_retention
- ob_sql_audit_percentage
- ob_enable_sql_audit
- optimizer_use_sql_plan_baselines
- optimizer_capture_sql_plan_baselines
- parallel_max_servers
- parallel_servers_target
- ob_trx_idle_timeout
- block_encryption_mode
- ob_reserved_meta_memory_percentage
- ob_check_sys_variable
- tracefile_identifier
- transaction_isolation
- ob_trx_lock_timeout
- validate_password_check_user_name
- validate_password_length
- validate_password_mixed_case_count
- validate_password_number_count
- validate_password_policy
- validate_password_special_char_count
- default_password_lifetime
- ob_trace_info
- secure_file_priv
- ob_pl_block_timeout
- performance_schema
- transaction_read_only
- resource_manager_plan
- 系统配置项
- 系统配置项概述
- auto_leader_switch_interval
- auto_delete_expired_backup
- autoinc_cache_refresh_interval
- audit_sys_operations
- audit_trail
- balancer_idle_time
- balancer_log_interval
- balancer_timeout_check_interval
- balancer_task_timeout
- balancer_tolerance_percentage
- balancer_emergency_percentage
- balance_blacklist_failure_threshold
- balance_blacklist_retry_interval
- backup_concurrency
- backup_dest
- backup_net_limit
- backup_recovery_window
- backup_region
- builtin_db_data_verify_cycle
- bf_cache_miss_count_threshold
- bf_cache_priority
- cache_wash_threshold
- clog_cache_priority
- clog_sync_time_warn_threshold
- clog_disk_usage_limit_percentage
- clog_transport_compress_all
- clog_transport_compress_func
- clog_persistence_compress_func
- clog_max_unconfirmed_log_count
- cluster
- cluster_id
- cpu_count
- cpu_quota_concurrency
- cpu_reserved
- config_additional_dir
- data_copy_concurrency
- data_dir
- datafile_disk_percentage
- dtl_buffer_size
- datafile_size
- debug_sync_timeout
- default_compress_func
- default_compress
- default_progressive_merge_num
- default_row_format
- devname
- data_disk_usage_limit_percentage
- disk_io_thread_count
- dead_socket_detection_timeout
- enable_clog_persistence_compress
- election_cpu_quota
- enable_one_phase_commit
- enable_sys_unit_standalone
- enable_pg
- enable_smooth_leader_switch
- election_blacklist_interval
- enable_election_group
- enable_auto_leader_switch
- enable_global_freeze_trigger
- enable_manual_merge
- enable_merge_by_turn
- enable_perf_event
- enable_rebalance
- enable_record_trace_log
- enable_record_trace_id
- enable_early_lock_release
- enable_rereplication
- enable_rich_error_msg
- enable_rootservice_standalone
- enable_sql_audit
- enable_sql_operator_dump
- enable_async_syslog
- enable_syslog_recycle
- enable_syslog_wf
- enable_upgrade_mode
- enable_separate_sys_clog
- enable_ddl
- enable_major_freeze
- enable_rebuild_on_purpose
- enable_log_archive
- enable_monotonic_weak_read
- external_kms_info
- freeze_trigger_percentage
- flush_log_at_trx_commit
- fuse_row_cache_priority
- force_refresh_location_cache_interval
- force_refresh_location_cache_threshold
- get_leader_candidate_rpc_timeout
- global_major_freeze_residual_memory
- global_write_halt_residual_memory
- ignore_replay_checksum_error
- global_index_build_single_replica_timeout
- high_priority_net_thread_count
- ignore_replica_checksum_error
- ignore_replay_checksum_error
- index_cache_priority
- index_clog_cache_priority
- index_info_block_cache_priority
- internal_sql_execute_timeout
- large_query_worker_percentage
- large_query_threshold
- leak_mod_to_check
- lease_time
- location_cache_cpu_quota
- location_cache_expire_time
- location_cache_priority
- location_cache_refresh_min_interval
- location_fetch_concurrency
- location_refresh_thread_count
- log_archive_checkpoint_interval
- log_archive_concurrency
- log_restore_concurrency
- major_freeze_duty_time
- max_kept_major_version_number
- max_string_print_length
- max_syslog_file_count
- merge_stat_sampling_ratio
- major_compact_trigger
- memory_chunk_cache_size
- memory_limit
- memory_limit_percentage
- memory_reserved
- merge_thread_count
- merger_check_interval
- merger_completion_percentage
- merger_switch_leader_duration_time
- merger_warm_up_duration_time
- max_px_worker_count
- migration_disable_time
- min_observer_version
- minor_deferred_gc_time
- minor_freeze_times
- minor_warm_up_duration_time
- mysql_port
- minor_merge_concurrency
- multiblock_read_gap_size
- multiblock_read_size
- micro_block_merge_verify_level
- migrate_concurrency
- minor_compact_trigger
- memstore_limit_percentage
- net_thread_count
- obconfig_url
- ob_enable_batched_multi_statement
- partition_table_check_interval
- partition_table_scan_batch_count
- plan_cache_evict_interval
- px_task_size
- px_workers_per_cpu_quota
- replica_safe_remove_time
- resource_hard_limit
- resource_soft_limit
- rootservice_async_task_queue_size
- rootservice_async_task_thread_count
- rootservice_list
- rootservice_ready_check_interval
- row_compaction_update_limit
- row_purge_thread_count
- rpc_port
- rpc_timeout
- restore_concurrency
- rootservice_memory_limit
- rebuild_replica_data_lag_threshold
- schema_history_expire_time
- ssl_client_authentication
- server_check_interval
- server_data_copy_in_concurrency
- server_data_copy_out_concurrency
- server_permanent_offline_time
- stack_size
- server_balance_critical_disk_waterlevel
- server_balance_disk_tolerance_percent
- system_memory
- server_balance_cpu_mem_tolerance_percent
- server_cpu_quota_max
- server_cpu_quota_min
- sql_audit_memory_limit
- sys_bkgd_io_high_percentage
- sys_bkgd_io_low_percentage
- sys_bkgd_io_timeout
- sys_bkgd_net_percentage
- sys_bkgd_migration_change_member_list_timeout
- sys_bkgd_migration_retry_num
- syslog_level
- switchover_process_thread_count
- system_cpu_quota
- sys_cpu_limit_trigger
- syslog_io_bandwidth_limit
- tablet_size
- tableapi_transport_compress_func
- tenant_task_queue_size
- tenant_groups
- trace_log_slow_query_watermark
- trace_log_sampling_interval
- trx_2pc_retry_interval
- trx_force_kill_threshold
- tde_method
- token_reserved_percentage
- unit_balance_resource_weight
- user_block_cache_priority
- user_row_cache_priority
- user_tab_col_stat_cache_priority
- user_iort_up_percentage
- use_large_pages
- virtual_table_location_cache_expire_time
- workers_per_cpu_quota
- wait_leader_batch_count
- writing_throttling_maximum_duration
- writing_throttling_trigger_percentage
- weak_read_version_refresh_interval
- workarea_size_policy
- zone
- zone_merge_concurrency
- zone_merge_order
- zone_merge_timeout
- ob_ssl_invited_common_names
- ssl_external_kms_info
- ob_event_history_recycle_interval
- backup_log_archive_checkpoint_interval
- plsql_ccflags
- plsql_code_type
- plsql_debug
- plsql_optimize_level
- plsql_v2_compatibility
- plsql_warnings
- recyclebin_object_expire_time
- log_archive_batch_buffer_limit
- clog_disk_utilization_threshold
- backup_backup_archive_log_batch_count
- backup_backup_archivelog_retry_interval
- backup_backupset_batch_count
- backup_backupset_retry_interval
- open_cursors
- fast_recovery_concurrency
- 预留关键字
- 部署实践
- 设置无密码 SSH 登录
- 单机安装
- 本地安装
- 分布式安装
- 创建租户
- OceanBaseDeploy(OBD)常用命令
- 大数据
- 数据仓库分层
- 数据仓库分层实践
- hive安装
- hive命令
- hadoop安装
- jdk安装
- 应龙inlong
- 网关
- apisix
- apisix2.7源码安装
- apisix rpm2.6安装
- apisix-dashboard2.7 rpm安装
- apisix-dashboard使用
- apisix-dashboard进阶