MySQL單行函數

来源:https://www.cnblogs.com/DebugTheWorld/archive/2018/11/04/9903626.html
-Advertisement-
Play Games

1、CONCAT(str1,str2,...) 返回來自於參數連結的字元串。如果任何參數是NULL,返回NULL。可以有超過2個的參數。一個數字參數被變換為等價的字元串形式。 select CONCAT('My', 'S', 'QL');--'MySQL' select CONCAT('My', N ...


1、CONCAT(str1,str2,...)
返回來自於參數連結的字元串。如果任何參數是NULL,返回NULL。可以有超過2個的參數。一個數字參數被變換為等價的字元串形式。

 select CONCAT('My', 'S', 'QL');--'MySQL'

 select CONCAT('My', NULL, 'QL'); -> NULL


2、 LENGTH(str) 返回字元串str的長度。
 
  select LENGTH('text'); -> 4

3 、LOCATE(substr,str)  和 POSITION(substr IN str)
 
  返回子串substr在字元串str第一個出現的位置,如果substr不是在str裡面,返回0.

  select LOCATE('bar', 'foobarbar'); -> 4
  select LOCATE('xbar', 'foobar'); -> 0

  LOCATE(substr,str,pos)
  返回子串substr在字元串str第一個出現的位置,從位置pos開始。如果substr不是在str裡面,返回0。
  select LOCATE('bar', 'foobarbar',5); -> 7

4 、INSTR(str,substr)
  返回子串substr在字元串str中的第一個出現的位置。這與有2個參數形式的LOCATE()相同,除了參數  被顛倒。
  select INSTR('foobarbar', 'bar');  -> 4
  select INSTR('xbar', 'foobar');-> 0



5 、LPAD(str,len,padstr)
返回字元串str,左面用字元串padstr填補直到str是len個字元長。
mysql> select LPAD('hi',4,'??');
    -> '??hi'

6、 RPAD(str,len,padstr)
返回字元串str,右面用字元串padstr填補直到str是len個字元長。
mysql> select RPAD('hi',5,'?');
    -> 'hi???'


7、 LEFT(str,len)
返回字元串str的最左面len個字元。
mysql> select LEFT('foobarbar', 5);
    -> 'fooba'

8、 RIGHT(str,len)
返回字元串str的最右面len個字元。
mysql> select RIGHT('foobarbar', 4);
    -> 'rbar'


9、 SUBSTRING(str,pos,len)
從字元串str返回一個len個字元的子串,從位置pos開始。使用FROM的變種形式是ANSI SQL92語法。
mysql> select SUBSTRING('Quadratically',5,6);
    -> 'ratica'


10、 LTRIM(str)
返回刪除了其前置空格字元的字元串str。
mysql> select LTRIM(' barbar');
    -> 'barbar'

11、 RTRIM(str)
返回刪除了其拖後空格字元的字元串str。
mysql> select RTRIM('barbar   ');
    -> 'barbar'

12 、TRIM(str)
mysql> select TRIM(' bar   ');
    -> 'bar'

13、 SPACE(N)
返回由N個空格字元組成的一個字元串。
mysql> select SPACE(6);
    -> '      '

14、 REPLACE(str,from_str,to_str)
返回字元串str,其字元串from_str的所有出現由字元串to_str代替。
mysql> select REPLACE('www.mysql.com', 'w', 'x');
    -> 'xxx.mysql.com'


15、 REPEAT(str,count)
返回由重覆countTimes次的字元串str組成的一個字元串。如果count <= 0,返回一個空字元串。如果str或count是NULL,返回NULL。
mysql> select REPEAT('MySQL', 3);
    -> 'MySQLMySQLMySQL'


16、 REVERSE(str)
返回顛倒字元順序的字元串str。
mysql> select REVERSE('abc');
    -> 'cba'


17 、INSERT(str,pos,len,newstr)
返回字元串str,在位置pos起始的子串且len個字元長得子串由字元串newstr代替。
mysql> select INSERT('Quadratic', 3, 4, 'What');
    -> 'QuWhattic


18 、ELT(N,str1,str2,str3,...)
如果N= 1,返回str1,如果N= 2,返回str2,等等。如果N小於1或大於參數個數,返回NULL。
mysql> select ELT(1, 'ej', 'Heja', 'hej', 'foo');
    -> 'ej'
mysql> select ELT(4, 'ej', 'Heja', 'hej', 'foo');
    -> 'foo'


19、 FIELD(str,str1,str2,str3,...)
返回str在str1, str2, str3, ...清單的索引。如果str沒找到,返回0。FIELD()是ELT()反運算。
mysql> select FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');
    -> 2
mysql> select FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo');
    -> 0


20 、LOWER(str)
返回字元串str,根據當前字元集映射(預設是ISO-8859-1 Latin1)把所有的字元改變成小寫。該函數對多位元組是可靠的。
mysql> select LCASE('QUADRATICALLY');
    -> 'quadratically'

 
21 、UPPER(str)
返回字元串str,根據當前字元集映射(預設是ISO-8859-1 Latin1)把所有的字元改變成大寫。該函數對多位元組是可靠的。
mysql> select UCASE('Hej');
    -> 'HEJ'


---------------------------------------------------------------------------------------------------------------------------------------------------

 mysql 時間函數:


1、 DAYOFWEEK(date)  
  返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。這些索引值對應於ODBC標準。  
  mysql> select DAYOFWEEK('1998-02-03');  
  -> 3

2、 WEEKDAY(date)  
  返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。  
  mysql> select WEEKDAY('1997-10-04 22:23:00');  
  -> 5  


3 、DAYOFMONTH(date)  
  返回date的月份中日期,在1到31範圍內。  
  mysql> select DAYOFMONTH('1998-02-03');  
  -> 3

4 、DAYOFYEAR(date)  
  返回date在一年中的日數, 在1到366範圍內。  
  mysql> select DAYOFYEAR('1998-02-03');  
  -> 34


5 、MONTH(date)  
  返回date的月份,範圍1到12。  
  mysql> select MONTH('1998-02-03');  
  -> 2

6 、DAYNAME(date)  
  返回date的星期名字。  
  mysql> select DAYNAME("1998-02-05");  
  -> 'Thursday'

7 、MONTHNAME(date)  
  返回date的月份名字。  
  mysql> select MONTHNAME("1998-02-05");  
  -> 'February'

8 、QUARTER(date)  
  返回date一年中的季度,範圍1到4。  
  mysql> select QUARTER('98-04-01');  
  -> 2

9 、WEEK(date)  
     
10 、WEEK(date,first)  
  對於星期天是一周的第一天的地方,有一個單個參數,返回date的周數,範圍在0到52。2個參數形式WEEK()允許你指定星期是否開始於星期天或星期一。如果第二個參數是0,星期從星期天開始,如果第二個參數是1,從星期一開始。  
  mysql> select WEEK('1998-02-20');  
  -> 7  
  mysql> select WEEK('1998-02-20',0);  
  -> 7  
  mysql> select WEEK('1998-02-20',1);  
  -> 8

11 、YEAR(date)  
  返回date的年份,範圍在1000到9999。  
  mysql> select YEAR('98-02-03');  
  -> 1998

12、 HOUR(time)  
  返回time的小時,範圍是0到23。  
  mysql> select HOUR('10:05:03');  
  -> 10

13 、MINUTE(time)  
  返回time的分鐘,範圍是0到59。  
  mysql> select MINUTE('98-02-03 10:05:03');  
  -> 5

14、 SECOND(time)  
  回來time的秒數,範圍是0到59。  
  mysql> select SECOND('10:05:03');  
  -> 3

15、PERIOD_ADD(P,N)  
  增加N個月到階段P(以格式YYMM或YYYYMM)。以格式YYYYMM返回值。註意階段參數P不是日期值。  
  mysql> select PERIOD_ADD(9801,2);  
  -> 199803

16、 PERIOD_DIFF(P1,P2)  
  返回在時期P1和P2之間月數,P1和P2應該以格式YYMM或YYYYMM。註意,時期參數P1和P2不是日期值。  
  mysql> select PERIOD_DIFF(9802,199703);  
  -> 11
17 、DATE_ADD(date,INTERVAL expr type)  
     
18 、DATE_SUB(date,INTERVAL expr type)  
     
19、 ADDDATE(date,INTERVAL expr type)  
     
20、 SUBDATE(date,INTERVAL expr type)

    SECOND 秒 SECONDS  
  MINUTE 分鐘 MINUTES  
  HOUR 時間 HOURS  
  DAY 天 DAYS  
  MONTH 月 MONTHS  
  YEAR 年 YEARS  
  MINUTE_SECOND 分鐘和秒 "MINUTES:SECONDS"  
  HOUR_MINUTE 小時和分鐘 "HOURS:MINUTES"  
  DAY_HOUR 天和小時 "DAYS HOURS"  
  YEAR_MONTH 年和月 "YEARS-MONTHS"  
  HOUR_SECOND 小時, 分鐘, "HOURS:MINUTES:SECONDS"  
  DAY_MINUTE 天, 小時, 分鐘 "DAYS HOURS:MINUTES"  
  DAY_SECOND 天, 小時, 分鐘, 秒 "DAYS HOURS:MINUTES:SECONDS"

例如:  select adddate('1997-12-31',interval 1 month);
        select date_add('1997-12-31',interval 1 month);


21、TO_DAYS(date)  
  給出一個日期date,返回一個天數(從0年的天數)。   0000
  mysql> select TO_DAYS('1997-10-07');  
  -> 729669

22 、FROM_DAYS(N)  
  給出一個天數N,返回一個DATE值。  
  mysql> select FROM_DAYS(729669);  
  -> '1997-10-07'

23 、DATE_FORMAT(date,format)  
  根據format字元串格式化date值。下列修飾符可以被用在format字元串中: %M 月名字(January……December)  
  %W 星期名字(Sunday……Saturday)  
  %D 有英語首碼的月份的日期(1st, 2nd, 3rd, 等等。)  
  %Y 年, 數字, 4 位  
  %y 年, 數字, 2 位  
  %a 縮寫的星期名字(Sun……Sat)  
  %d 月份中的天數, 數字(00……31)  
  %e 月份中的天數, 數字(0……31)  
  %m 月, 數字(01……12)  
  %c 月, 數字(1……12)  
  %b 縮寫的月份名字(Jan……Dec)  
  %j 一年中的天數(001……366)  
  %H 小時(00……23)  
  %k 小時(0……23)  
  %h 小時(01……12)  
  %I 小時(01……12)  
  %l 小時(1……12)  
  %i 分鐘, 數字(00……59)  
  %r 時間,12 小時(hh:mm:ss [AP]M)  
  %T 時間,24 小時(hh:mm:ss)  
  %S 秒(00……59)  
  %s 秒(00……59)  
  %p AM或PM  
  %w 一個星期中的天數(0=Sunday ……6=Saturday )  
  %U 星期(0……52), 這裡星期天是星期的第一天  
  %u 星期(0……52), 這裡星期一是星期的第一天  
  %% 一個文字“%”。

  所有的其他字元不做解釋被覆制到結果中。

  mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');  
  -> 'Saturday October 1997'  
  mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');  
  -> '22:23:00'  
  mysql> select DATE_FORMAT('1997-10-04 22:23:00',  
  '%D %y %a %d %m %b %j');  
  -> '4th 97 Sat 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'  
  MySQL3.23中,在格式修飾符字元前需要%。在MySQL更早的版本中,%是可選的。

24 、TIME_FORMAT(time,format)  
  這象上面的DATE_FORMAT()函數一樣使用,但是format字元串只能包含處理小時、分鐘和秒的那些格式修飾符。其他修飾符產生一個NULL值或0

25、 Mysql取系統函數:

   Select curtime();

   Select curdate():

   Select sysdate():
   select now();


------------------------------------------------------------------------------------------------------------------------------------------------------------------
流程式控制制函數:

1、   IFNULL(expr1,expr2)   

如果 expr1 為非 NULL 的,IFNULL() 返回 expr1,否則返回 expr2。


2、   NULLIF(expr1,expr2)  

 如果 expr1 = expr2 為真,返回 NULL,否則返回 expr1


3、  IF(expr1,expr2,expr3)   如果 expr1 為真(expr1 <> 0 以及 expr1 <> NULL),那麼 IF() 返回 expr2,否則返回 expr3




您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、關於安裝 SQL Server 資料庫的安裝,經過自己的安裝,總體還是比較容易,沒有太多難度,安裝包在網上也有很多,在此,就跳過安裝的這一步。 二、初次啟動SQL Server 安裝完成資料庫後,如果不啟動SQL Server的服務,是登錄不了資料庫的。啟動服務有三種方式啟動,具體如下。 1、“ ...
  • 關於SQL Server 2008 想起關於SQL Server 2008的故事,曾經在大一的時候跟著視頻學習過一段時間,那時因為想多學習一些技術,才去學,遺憾的是,曾經是三分熱度,沒學多久就被扔掉了,如今再次撿起來,重新學習,並且想要樹立長久的學習態度,在今後的學習中,要及時的把學習的內容更新到這 ...
  • 1、儘可能的早做選擇和投影,可使中間結果變小,節省幾個數量級的時間 2、把選擇和投影串接起來,一元運算序列可以一起執行,只需對整個關係掃描一遍 3、把投影與其前或後的二元運算結合起來,在第一次用關係時去掉一些屬性,可以避免多次掃描整個關係 4、把某些選擇與其前的笛卡兒積合併成一個連接,當R*S有選擇 ...
  • 一、 使用create關鍵字創建表 --(1)創建新表use 資料庫(在那個資料庫中建表)create table 表名(欄位名1(列名) 數據類型 列的特征,欄位名2(列名) 數據類型 列的特征(NOT NULL),......)--(2)創建帶有主鍵約束的表語法create table 表名(字 ...
  • 2018-11-04 19:35:12 開始寫 刷新後就可以看見導入的資料庫了(按F5刷新) 謝謝、Thank you、Salamat Do(撒拉瑪特朵)、あリがCám o*n(嘉蒙)とゥ(阿裡嘎都)、감사합니다 (勘三哈咪瘩)、terima Kasih(得力馬卡系)、kob-khun(寇布庫恩)、 ...
  • 資料庫 1. 資料庫伺服器:運行資料庫管理軟體的電腦 2. 資料庫管理軟體:mysql,oracle,db2,sqlserver 3. 庫:文件夾 4. 表:文件 5. 記錄:食物一系列典型的特征 6. 數據:描述事物特征的符號 資料庫的分類: 關係型:sqllite,db2,oracle,acc ...
  • 一. 概述 字典又稱符號表(symbol table),關聯數組(associative array), 映射(map),是一種用於保存鍵值對(key-value pair)的抽象數據結構。在字典中,一個key和一個value進行關聯稱為鍵值對。在字典中每個鍵都是唯一的,程式可以在字典中根據鍵查找關 ...
  • 有很多學習大數據的朋友,在初期學習時,通常會對如何學習而感到迷茫。我經常收到零基礎的朋友關於如何入門、如何規劃學習大數據、大數據的學習流程是什麼的一些問題。今天我就粗淺的總結幾點學習大數據方法。 一、興趣建立 興趣是可以讓一個人持續關註一個事物的核心動力,那麼興趣的培養就非常重要了。如果你把寫程式單 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...