Mysql-7-mysql函數

来源:http://www.cnblogs.com/caicairui/archive/2017/08/08/7308260.html
-Advertisement-
Play Games

1.數學函數 用來處理數值數據方面的運算,主要的數學函數有:絕對值函數,三角函數,對數函數,隨機函數。使用數學函數過程中,如果有錯誤產生,該函數會返回null值。 數學函數 功能介紹 組合鍵 abs(x) 返回x的絕對值 整數本身 pi() 返回圓周率 返回pa的值,預設顯示6位 sqrt(x) 返 ...


1.數學函數

  用來處理數值數據方面的運算,主要的數學函數有:絕對值函數,三角函數,對數函數,隨機函數。使用數學函數過程中,如果有錯誤產生,該函數會返回null值。

數學函數

功能介紹

組合鍵

abs(x)

返回x的絕對值

整數本身

pi()

返回圓周率

返回pa的值,預設顯示6

sqrtx

返回非負數x的二次方根

如為負數,返回null

mod(x,y)

返回x/y的模,即相除餘數

 

ceil(x)ceiling(x)

先這兩個函數功能相同,返回不小於x的最小整數值

註意正負數及小數和整數的區別

floorx

返回不大於x的最大整數值

 

rand()

返回一個隨機浮點值v,0<=v<=1

 

rand(x)

返回一個隨機浮點值v,0<=v<=1,參數x為整數,被用作種子值,用來產生重覆序列

 

roundx

返回最接近參數x的整數,對x進行四捨五入

此函數返回值為整數

round(x,y)

返回最接近參數x的值,此值保留到小數點後面y

如果參數取負值,則將小數點保留左邊y

truncate(x,y)

返回截去小數點後y位的數值x

 

signx

返回參數x的符號

x值為負,返回-1;0 0 ;正,返回1.

powx,y

返回xy次乘方的結果值

 

expx

返回ex次方後的值

 

logx

返回x的自然對數,x相對於基數e的對數

 

log10(x

返回x的基礎為10的對數

 

radians

返回參數x由角轉化為弧度的值

 

degreesx

返回參數x由弧度轉化為角度的值

 

sinx

返回參數x的正玄值

 

asinx

返回參數x的反正玄

 

cosx

返回參數x的餘弦值

 

acos

 

 

tanx

 

 

atanx

 

 

cotx

返回參數x的餘切值

 
例:mysql> select mod(25,6),mod(9,3);
+-----------+----------+
| mod(25,6) | mod(9,3) |
+-----------+----------+
|         1 |        0 |
+-----------+----------+
1 row in set (0.00 sec)

 

2.字元串函數

  處理字元串數據,字元串函數主要有:計算字元串長度函數、字元串合併函數、字元串轉換函數、字元串比較函數、查找指定字元串位置函數。

ASCII(char)        返回字元的ASCII碼值

BIT_LENGTH(str)      返回字元串的比特長度

CONCAT(s1,s2,sn)      將s1,s2,sn連接成字元串

CONCAT_WS(sep,s1,s2,sn)  將s1,s2,sn連接成字元串,並用sep字元間隔

INSERT(str,x,y,instr)    將字元串str從第x位置開始,y個字元長的子串替換為字元串instr,返回結果

FIND_IN_SET(str,list)   分析逗號分隔的list列表,如果發現str,返回strlist中的位置

LCASE(str)LOWER(str)   返回將字元串str中所有字元改變為小寫後的結果

LEFT(str,x)        返回字元串str中最左邊的x個字元

LENGTH(s)         返回字元串str中的字元數

LTRIM(str)         從字元串str中切掉開頭的空格

POSITION(substr,str)    返回子串substr在字元串str中第一次出現的位置

QUOTE(str)         用反斜杠轉義str中的單引號

REPEAT(str,srchstr,rplcstr)返回字元串str重覆x次的結果

REVERSE(str)        返回顛倒字元串str的結果

RIGHT(str,x)        返回字元串str中最右邊的x個字元

RTRIM(str)         返回字元串str尾部的空格

STRCMP(s1,s2)       比較字元串s1s2

TRIM(str)         去除字元串首部和尾部的所有空格

UCASE(str)UPPER(str)   返回將字元串str中所有字元轉變為大寫後的結果

例:mysql> select length('test'),length('測試');
+----------------+------------------+
| length('test') | length('測試') |
+----------------+------------------+
|              4 |                6 |
+----------------+------------------+

 

3.日期和時間函數

  主要處理日期和時間值,一般的日期函數除使用date類型的參數外,也可以使用datetime或timestamp類型的參數。

(1)日期時間函數

時間轉化秒函數:time_to_sec
MySQL> select time_to_sec('01:01:01');
+-------------------------+
| time_to_sec('01:01:01') |
+-------------------------+
| 3661 | 
+-------------------------+
1 row in set (0.00 sec)
秒轉化時間函數:sec_to_time
mysql> select sec_to_time(3661);
+-------------------+
| sec_to_time(3661) |
+-------------------+
| 01:01:01 | 
+-------------------+
1 row in set (0.00 sec)
日期轉為天數函數:to_days
mysql> select to_days('0000-00-00');
+-----------------------+
| to_days('0000-00-00') |
+-----------------------+
| NULL | 
+-----------------------+
1 row in set, 1 warning (0.01 sec)
mysql> select to_days('0001-01-01');
+-----------------------+
| to_days('0001-01-01') |
+-----------------------+
| 366 | 
+-----------------------+
1 row in set (0.00 sec)
天數轉化日期函數:from_days
mysql> select from_days(0);
+--------------+
| from_days(0) |
+--------------+
| 0000-00-00 | 
+--------------+
1 row in set (0.00 sec)
mysql> select from_days(366);
+----------------+
| from_days(366) |
+----------------+
| 0001-01-01 | 
+----------------+
1 row in set (0.00 sec)
字元串轉換為日期函數:str_to_date
mysql> select str_to_date('2013-01-01 01:21:01','%Y-%m-%d %H:%i:%s');
+--------------------------------------------------------+
| str_to_date('2013-01-01 01:21:01','%Y-%m-%d %H:%i:%s') |
+--------------------------------------------------------+
| 2013-01-01 01:21:01 | 
+--------------------------------------------------------+
1 row in set (0.00 sec)
日期轉換為字元串函數:date_format
mysql> select date_format('2013-01-01 01:21:01','%Y%m%d %H%i%s');
+----------------------------------------------------+
| date_format('2013-01-01 01:21:01','%Y%m%d %H%i%s') |
+----------------------------------------------------+
| 20130101 012101 | 
+----------------------------------------------------+
1 row in set (0.00 sec)
時間轉換為字元串函數:time_format
mysql> select time_format('01:21:01','%H%i%s');
+----------------------------------+
| time_format('01:21:01','%H%i%s') |
+----------------------------------+
| 012101 | 
+----------------------------------+
1 row in set (0.00 sec)

說明:

日期時間格式參數如下:

%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 AMPM

%w 一個星期中的天數(0=Sunday ……6=Saturday

%U 星期(0……52), 這裡星期天是星期的第一天

%u 星期(0……52), 這裡星期一是星期的第一天

%% 一個文字“%”。

 

提取表達式的日期部分
mysql> select date(now());
+-------------+
| date(now()) |
+-------------+
| 2013-05-16 | 
+-------------+
1 row in set (0.00 sec)
返回表達式的星期索引(0=星期一,1=星期二, ……6= 星期天)。
mysql> select weekday(now());
+----------------+
| weekday(now()) |
+----------------+
| 3 | 
+----------------+
1 row in set (0.00 sec)
返回表達式是一年的第幾周
mysql> select week(now());
+-------------+
| week(now()) |
+-------------+
| 19 | 
+-------------+
1 row in set (0.00 sec)
WEEK()允許指定星期是否開始於星期天或星期一。如果第二個參數是0,星期從星期天開始,如果第二個參數是1, 從星期一開始,如下所示:
mysql> select week(now(),0);
+---------------+
| week(now(),0) |
+---------------+
| 19 | 
+---------------+
1 row in set (0.00 sec)
mysql> select week(now(),1);
+---------------+
| week(now(),1) |
+---------------+
| 20 | 
+---------------+
1 row in set (0.00 sec)
返回表達式一年中季度
mysql> select quarter(now());
+----------------+
| quarter(now()) |
+----------------+
| 2 | 
+----------------+
1 row in set (0.00 sec)
返回表達式一周的第一天
mysql> select dayofweek(now());
+------------------+
| dayofweek(now()) |
+------------------+
| 5 | 
+------------------+
1 row in set (0.00 sec)
返回表達式一個月的第幾天
mysql> select dayofmonth(now());
+-------------------+
| dayofmonth(now()) |
+-------------------+
| 16 | 
+-------------------+
1 row in set (0.00 sec)
返回表達式一年的第幾天
mysql> select dayofyear(now());
+------------------+
| dayofyear(now()) |
+------------------+
| 136 | 
+------------------+
1 row in set (0.00 sec)
返回表達式的星期名字
mysql> select dayname(now());
+----------------+
| dayname(now()) |
+----------------+
| Thursday | 
+----------------+
1 row in set (0.00 sec)
返回表達式月份的名字
mysql> select monthname(now());
+------------------+
| monthname(now()) |
+------------------+
| May | 
+------------------+
1 row in set (0.00 sec)
mysql>
提取表達式的年份
mysql> select year(now());
+-------------+
| year(now()) |
+-------------+
| 2013 | 
+-------------+
1 row in set (0.00 sec)
提取表達式的月份
mysql> select month(now());
+--------------+
| month(now()) |
+--------------+
| 5 | 
+--------------+
1 row in set (0.01 sec)
提取表達式的天數
mysql> select day(now());
+------------+
| day(now()) |
+------------+
| 16 | 
+------------+
1 row in set (0.00 sec)
提取表達式的小時
mysql> select hour(now());
+-------------+
| hour(now()) |
+-------------+
| 16 | 
+-------------+
1 row in set (0.00 sec)
提取表達式的分鐘
mysql> select minute(now());
+---------------+
| minute(now()) |
+---------------+
| 31 | 
+---------------+
1 row in set (0.00 sec)
提取表達式的秒數
mysql> select second(now());
+---------------+
| second(now()) |
+---------------+
| 34 | 
+---------------+
1 row in set (0.00 sec)

 

將當前日期按照'YYYY-MM-DD' 或YYYYMMDD 格式的值返回,具體格式根據函數用在字元串或是數字語境中而定。
mysql> select curdate();
+------------+
| curdate() |
+------------+
| 2013-05-16 | 
+------------+
1 row in set (0.00 sec)
mysql> select curdate()+1;
+-------------+
| curdate()+1 |
+-------------+
| 20130517 | 
+-------------+
1 row in set (0.00 sec)
將當前時間以'HH:MM:SS'或 HHMMSS的格式返回,具體格式根據函數用在字元串或是數字語境中而定。 
mysql> select curtime();
+-----------+
| curtime() |
+-----------+
| 16:43:10 | 
+-----------+
1 row in set (0.00 sec)
mysql> select curtime()+1;
+---------------+
| curtime()+1 |
+---------------+
| 164420.000000 | 
+---------------+
1 row in set (0.00 sec)
獲取當前日期時間:sysdate(),now()
mysql> select sysdate(),sleep(2),sysdate();
+---------------------+----------+---------------------+
| sysdate() | sleep(2) | sysdate() |
+---------------------+----------+---------------------+
| 2013-05-16 17:16:04 | 0 | 2013-05-16 17:16:06 | 
+---------------------+----------+---------------------+
1 row in set (2.00 sec)
mysql> select now(),sleep(2),now();
+---------------------+----------+---------------------+
| now() | sleep(2) | now() |
+---------------------+----------+---------------------+
| 2013-05-16 17:16:18 
              
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • iOS 使用矢量圖 iOS 圖標通常用 PNG 格式的圖片。PNG 圖片放大到超過自身的大小就會模糊。可以使用 PDF 格式的矢量圖,優點是任意改變圖片大小並且保持清晰度。 簡單使用 與 PNG 格式的圖片一樣,在 Xcode 中把 PDF 格式的矢量圖拖進 \ .xcassets (預設是 Ass ...
  • 1. 給一個 UIView 加約束,希望它顯示在 UITableView 的底部,但是它不顯示,它會出現在 UITableView 的頂部。 錯誤代碼: 如圖: 原因可能是因為 UITableView 的滾動導致的,與 UIScrollView 有一致的地方。 解決: 可以顯示在 self.view ...
  • 背景 為了監控好生產環境下各個資料庫伺服器上DDL操作日誌,便於運維工程師管控好風險,我們有必要關註當前實例下的所有的DDL操作。 測試環境 Microsoft SQL Server 2012 - 11.0.2218.0 (X64) Jun 12 2012 13:05:25 Copyright (c ...
  • redis redis命令: 1、字元串: set key value//設置 get key //獲取 incr key //原子增長(一次增長1)屬於原子性 incrby key 50 //增長的值自定義 一次設置和檢索多個值 mset key1 value1 key2 value2,..., ...
  • 當收到告警信息ORA-01652: unable to extend temp segment by 128 in tablespace xxxx 時,如何Troubleshooting ORA-1652這樣的問題呢? 當然一般xxx是臨時表空間,也有可能是用戶表空間。 我們先來模擬一下這個情況,在... ...
  • 前言 在網站的用戶達到一定規模後,資料庫因為負載壓力過高而成為網站的瓶頸。幸運的是目前大部分的主流資料庫都提供主從熱備功能,通過配置兩台資料庫主從關係,可以將一臺資料庫的數據更新同步到另一臺伺服器上。網站利用資料庫的這一功能,實現資料庫讀寫分離,從而改善資料庫負載壓力。如下圖所示: 應用伺服器在寫數 ...
  • 記憶體映射處理大文件 運行環境: linux 實現語言: C++ 文件大小: 大於10G 1、為什麼要用記憶體映射 a、一般讀寫大文件操作會帶來較多的磁碟IO開銷 b、數據流一次性寫入大量數據到記憶體容易達到記憶體限制 c、效率問題 2、基本概念 2.1 記憶體映射 簡單定義: 一個文件到一塊記憶體的映射。 解 ...
  • 1.資料庫的備份 備份=拷貝加管理,防止數據的丟失同時記錄用戶的操作記錄。其中最有效的備份是對IT架構進行備份。 原則: (1)資料庫要定期備份,備份的周期應當根據應用數據系統可承受的恢復時間,而且定期備份的時間應當在系統負荷最低的時候進行。對於重要的數據,要保證在極端情況下的損失都可以正常恢復。 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...