自學書籍.MySQL必知必會 - 使用數據處理函數

文本處理類函數:mysql

mysql> SELECT UPPER('Hej');
        -> 'HEJ'

說明:轉換爲大寫算法

mysql> SELECT LEFT('foobarbar', 5);
        -> 'fooba'

說明:從左取字串sql

mysql> SELECT LENGTH('text');
        -> 4

說明:返回串的長度函數

mysql> SELECT LOCATE('bar', 'foobarbar');
        -> 4
mysql> SELECT LOCATE('xbar', 'foobar');
        -> 0
mysql> SELECT LOCATE('bar', 'foobarbar', 5);
        -> 7

說明:查找字串位置code

mysql> SELECT LOWER('QUADRATICALLY');
        -> 'quadratically'

說明:轉換串爲小寫字符串

mysql> SELECT LTRIM('  barbar');
        -> 'barbar'

說明:清除串左邊空白class

mysql> SELECT RTRIM('barbar   ');
        -> 'barbar'

說明:清除串右邊空白隨機數

mysql> SELECT TRIM('  bar   ');
        -> 'bar'
mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');
        -> 'barxxx'
mysql> SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');
        -> 'bar'
mysql> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');
        -> 'barx'

說明:清除兩邊指定字符call

mysql> SELECT RIGHT('foobarbar', 4);
        -> 'rbar'

說明:從右取字串文本處理

1.SOUNDEX將任何文本串轉換爲描述其語音表示的字母數字模式的算法,能對串進行發音匹配

mysql> SELECT SOUNDEX('LILIE');
        -> 'L000'
mysql> SELECT SOUNDEX('LILEE');
        -> 'L000'

說明:對串進行發音匹配

mysql> SELECT SUBSTRING('Quadratically',5);
        -> 'ratically'
mysql> SELECT SUBSTRING('foobarbar' FROM 4);
        -> 'barbar'
mysql> SELECT SUBSTRING('Quadratically',5,6);
        -> 'ratica'
mysql> SELECT SUBSTRING('Sakila', -3);
        -> 'ila'
mysql> SELECT SUBSTRING('Sakila', -5, 3);
        -> 'aki'
mysql> SELECT SUBSTRING('Sakila' FROM -4 FOR 2);
        -> 'ki'

說明:返回串的子串

  

算術操做類函數:

mysql> SELECT ABS(2);
        -> 2
mysql> SELECT ABS(-32);
        -> 32

說明:返回一個數的絕對值

mysql> SELECT COS(PI());
        -> -1

說明:返回一個角度的餘弦

mysql> SELECT EXP(2);
        -> 7.3890560989307
mysql> SELECT EXP(-2);
        -> 0.13533528323661
mysql> SELECT EXP(0);
        -> 1

說明:返回一個數的指數值

mysql> SELECT MOD(234, 10);
        -> 4
mysql> SELECT 253 % 7;
        -> 1
mysql> SELECT MOD(29,9);
        -> 2
mysql> SELECT 29 MOD 9;
        -> 2

說明:返回除操做數的餘數

mysql> SELECT PI();
        -> 3.141593
mysql> SELECT PI()+0.000000000000000000;
        -> 3.141592653589793116

說明:返回圓周率

mysql> SELECT RAND();
        -> 0.35877890638893

說明:返回一個0~1之間的隨機數

mysql> SELECT SIN(PI());
        -> 1.2246063538224e-16
mysql> SELECT ROUND(SIN(PI()));
        -> 0

說明:返回一個角度的正弦

mysql> SELECT SQRT(4);
        -> 2
mysql> SELECT SQRT(20);
        -> 4.4721359549996
mysql> SELECT SQRT(-16);
        -> NULL

說明:返回一個數的平方根

mysql> SELECT TAN(PI());
        -> -1.2246063538224e-16
mysql> SELECT TAN(PI()+1);
        -> 1.5574077246549

說明:返回一個角度的正切


日期時間類函數:

mysql> SELECT ADDDATE('2008-01-02', 31);
        -> '2008-02-02'

說明:增長一個日期(天,周等)

mysql> SELECT ADDTIME('2007-12-31 23:59:59.999999', '1 1:1:1.000002');
        -> '2008-01-02 01:01:01.000001'
mysql> SELECT ADDTIME('01:00:00.999999', '02:00:00.999998');
        -> '03:00:01.999997'

說明:增長一個時間(時,分等)

mysql> SELECT CURDATE();
        -> '2008-06-13'
mysql> SELECT CURDATE() + 0;
        -> 20080613

說明:返回當前日期,字符串+0返回一個數值型

mysql> SELECT CURTIME();
        -> '23:50:26'
mysql> SELECT CURTIME() + 0;
        -> 235026.000000

說明:返回當前時間,字符串+0返回一個浮點型

mysql> SELECT DATE('2016-01-01 12:12:12');
        -> 2016-01-01

說明:返回日期時間中的日期部分

mysql> SELECT DATEDIFF('2007-12-31 23:59:59','2007-12-30');
        -> 1
mysql> SELECT DATEDIFF('2010-11-30 23:59:59','2010-12-31');
        -> -31

說明:計算兩個日期之差

mysql> SELECT '2008-12-31 23:59:59' + INTERVAL 1 SECOND;
        -> '2009-01-01 00:00:00'
mysql> SELECT INTERVAL 1 DAY + '2008-12-31';
        -> '2009-01-01'
mysql> SELECT '2005-01-01' - INTERVAL 1 SECOND;
        -> '2004-12-31 23:59:59'
mysql> SELECT DATE_ADD('2000-12-31 23:59:59',
    ->                 INTERVAL 1 SECOND);
        -> '2001-01-01 00:00:00'
mysql> SELECT DATE_ADD('2010-12-31 23:59:59',
    ->                 INTERVAL 1 DAY);
        -> '2011-01-01 23:59:59'
mysql> SELECT DATE_ADD('2100-12-31 23:59:59',
    ->                 INTERVAL '1:1' MINUTE_SECOND);
        -> '2101-01-01 00:01:00'
mysql> SELECT DATE_SUB('2005-01-01 00:00:00',
    ->                 INTERVAL '1 1:1:1' DAY_SECOND);
        -> '2004-12-30 22:58:59'
mysql> SELECT DATE_ADD('1900-01-01 00:00:00',
    ->                 INTERVAL '-1 10' DAY_HOUR);
        -> '1899-12-30 14:00:00'
mysql> SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY);
        -> '1997-12-02'
mysql> SELECT DATE_ADD('1992-12-31 23:59:59.000002',
    ->            INTERVAL '1.999999' SECOND_MICROSECOND);
        -> '1993-01-01 00:00:01.000001'

說明:高度靈活的日期運算函數

mysql> SELECT DATE_FORMAT('2009-10-04 22:23:00', '%W %M %Y');
        -> 'Sunday October 2009'
mysql> SELECT DATE_FORMAT('2007-10-04 22:23:00', '%H:%i:%s');
        -> '22:23:00'
mysql> SELECT DATE_FORMAT('1900-10-04 22:23:00',
    ->                 '%D %y %a %d %m %b %j');
        -> '4th 00 Thu 04 10 Oct 277'
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00',
    ->                 '%H %k %I %r %T %S %w');
        -> '22 22 10 10:23:00 PM 22:23:00 00 6'
mysql> SELECT DATE_FORMAT('1999-01-01', '%X %V');
        -> '1998 52'
mysql> SELECT DATE_FORMAT('2006-06-00', '%d');
        -> '00'

說明:返回一個格式化的日期或時間串

mysql> SELECT DAY('2016-12-12 12:12:12')
        -> 12

說明:返回一個日期中的天數部分

mysql> SELECT DAYOFWEEK('2007-02-03');
        -> 7

說明:返回對應日期的星期幾

mysql> HOUR ('2016-12-12 12:12:12')
        -> 12

說明:返回日期時間中的小時部分

mysql> SELECT MINUTE ('2016-12-12 12:12:12')
        -> 12

說明:返回日期時間中的分鐘部分

mysql> SELECT MONTH ('2016-12-12 12:12:12')
        -> 12

說明:返回日期時間中的月數部分

mysql> SELECT NOW();
        -> '2007-12-15 23:50:26'
mysql> SELECT NOW() + 0;
        -> 20071215235026.000000

說明:返回當前日期和時間

mysql> SELECT SECOND ('2016-12-12 12:12:12')
        -> 12

說明:返回日期時間中的秒數部分

mysql> SELECT TIME ('2016-12-12 12:12:12')
        -> 12:12:12

說明:返回日期時間中的時間部分

mysql> SELECT YEAR ('2016-12-12 12:12:12')
        -> 2016

說明:返回一個日期時間的年份部分

相關文章
相關標籤/搜索