【半夜學習MySQL】內置函數(含日期、字符串、數學等函數常用用法介紹及示例詳解)

在這里插入圖片描述

🏠關于專欄:半夜學習MySQL專欄用于記錄MySQL數據相關內容。
🎯每天努力一點點,技術變化看得見

文章目錄

  • 日期函數
  • 字符串函數
  • 數學函數
  • 其他函數


日期函數

函數名稱描述
current_date()當前日期
current_time()當前時間
current_time()當前時間戳
date(datetime)返回datetime參數的日期
date_add(date, interval d_value_type)在date中添加日期或事件,interval后的數值單位可以是year、minute、second、day
date_sub(date, interval d_value_type在date中減去日期或事件,interval后的數值單位可以是year、minute、second、day
datediff(date1, date2)兩個日期的差,單位是天
now()當前日期事件

使用示例:
●獲取年月日

select current_date();

在這里插入圖片描述

●獲取時分秒

select current_time();

在這里插入圖片描述

●獲取時間戳

select current_timestamp();

在這里插入圖片描述

●在日期的基礎上加上時間

select date_add('2024-1-1', interval 10 day);

在這里插入圖片描述

●在日期的基礎上減去時間

select date_sub('2024-1-15', interval 10 day);

在這里插入圖片描述

●計算兩個日期之間相差多少天

select datediff('2024-1-15', '2024-1-1');

在這里插入圖片描述
案例1: 創建一張表,用于記錄會員編號和會員注冊日期
●創建一張會員表

create table vip(
id int unsigned primary key auto_increment,
sign_date date not null
);

在這里插入圖片描述
●插入數據

insert into vip(sign_date) values(current_date());
insert into vip(sign_date) values(current_time());
insert into vip(sign_date) values(current_timestamp());
select * from vip;

在這里插入圖片描述
★ps:雖然current_date()、current_time()、current_timestamp()均可時間日期的插入,但這里推薦使用current_date()。

案例2: 創建一個留言板
●創建一個留言表

create table msg(
id int unsigned primary key auto_increment,
content varchar(50) not null,
sendtime datetime
);

在這里插入圖片描述
●插入數據

insert into msg(content, sendtime) values('沸羊羊', now());
insert into msg(content, sendtime) values('雙面龜', now());
select * from msg;

在這里插入圖片描述
●顯式所有留言信息,只顯式日期,不顯示時間

select id, content, date(sendtime) from msg;

在這里插入圖片描述
●查詢5分鐘內發布的貼子

#方法1
select * from msg where date_add(sendtime, interval 5 minute) > now();
#方法2
select * from msg where date_sub(now(), interval 5 minute) < sendtime;

在這里插入圖片描述

字符串函數

函數名稱描述
charset(str)返回字符串字符集
concat(str [, …])連接字符串
instr(str, substr)返回substr在str中出現的位置, 沒有則返回0
ucase(str)轉換為大寫
lcase(str)轉換為小寫
left(str, len),從str中左邊起取len個字符
length(str)str的長度
replace(str, search_str, replace_str)在str中用replace_str替換search_str
strcmp(str1, str2)逐字符比較兩字符串大小
substring(str, position [,length]從str的position位置開始,取length個字符
ltrim(str) / rtrim(str ) / trim(str)去除前空格/后空格/前后空格

案例1: 獲取emp表的ename列的字符集

select charset(ename) from emp;

在這里插入圖片描述
案例2: 顯式emp表中的信息,顯示格式:“員工號為:XXX,姓名為:XXX的員工,崗位為XXX”

select concat('員工號為:', empno, ',姓名為:', ename, '的員工,崗位為', job) from emp;

在這里插入圖片描述
案例3: 顯示員工姓名作戰的字節數

select length(ename), ename from emp;

在這里插入圖片描述
★ps:length函數返回字符串所占的字節數。字母、數字算一個字符,而其他字符,如中文,需要使用多個字符表示(具體與字符集編碼有關)。

案例4: 將emp表中所有姓名中有S的替換為“Jammingpro”

select replace(ename, 'S', 'Jammingpro'), ename from emp;

在這里插入圖片描述
★ps:replace函數對數據的修改僅停留在顯示層面,并不會修改表中數據。

案例5: 截取emp表中ename字段的第二個到第三個字符

select substring(ename, 2, 2), ename from emp;

在這里插入圖片描述
案例6: 以首字母大寫的方式,余下字母小寫顯示所有員工的姓名

select concat(ucase(substring(ename, 1, 1)), lcase(substring(ename, 2))) from emp;

在這里插入圖片描述

數學函數

函數名稱描述
abs(num)絕對值函數
bin(decimal_num)十進制轉換二進制
hex(decimal_num)十進制轉換為十六進制
cov(num, from_base, to_base)進制轉換
ceiling(num)向上取整
floor(num)向下取整
format(num, decimal_places)格式化,保留小數位數
rand()返回隨機浮點數,范圍[0.0, 1.0]
mod(num, denominator)取模,求余

使用示例:
●絕對值

select abs(-100.12);
select abs(2000.88);

在這里插入圖片描述

●向上取整

select ceiling(10.1);
select ceiling(10.9);
select ceiling(-4.1);
select ceiling(-4.9);

在這里插入圖片描述

●向下取整

select floor(10.1);
select floor(10.9);
select floor(-4.1);
select floor(-4.9);

在這里插入圖片描述
★ps:取整分為零向取整、向上(向下)的整數取整、四舍五入。其中零向取整,10.1、10.9均向更靠近0的數字10取整,-4.1、-4.9向更偏向0的整數4取整。向上取整,10.1、10.9向大于該數的整數11取整,-4.1、-4.9向大于該數的整數-4取整。向下取整,10.1、10.9向小于該數的整數10取整,-4.1、-4.9向小于該數的整數-5取整。ceiling函數采用向上取整,floor函數采用向下取整。四舍五入取整方式這里不再贅述。
在這里插入圖片描述

●保留2位小數(小數四舍五入)

select format(10.256, 2);
select format(12.123, 2);

在這里插入圖片描述

●產生隨機數

select rand();
select rand();
select rand();

在這里插入圖片描述

★ps:rand函數用于生產[0,1)間的隨機數,rand函數生成的隨機數是浮點數。

●模運算

select mod(10, 3);

在這里插入圖片描述

其他函數

●user()查詢當前登陸用戶

select user();

在這里插入圖片描述

●md5(str)對一個字符串進行md5摘要,摘要后得到一個32位字符串

select md5('jammmingpro');
select md5('a');
select md5('');

在這里插入圖片描述

●database()顯示當前正在使用的數據庫名稱

select database();

在這里插入圖片描述

●pwssword()函數用于對用戶密碼做加密,但該函數于MySQL5.7.6開始已經被棄用,因為它使用的哈希算法(DOUBLE SHA1)被認為較弱,不再適合用于密碼存儲。

select password('jammingpro');

在這里插入圖片描述

●ifnull(val1, val2),如果val1為null,返回val2,否則返回val1的值

select ifnull('xiaoming', 'jammingpro');
select ifnull(null, 'jammingpro');

在這里插入圖片描述

🎈歡迎進入半夜學習MySQL專欄,查看更多文章。
如果上述內容有任何問題,歡迎在下方留言區指正b( ̄▽ ̄)d

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/12726.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/12726.shtml
英文地址,請注明出處:http://en.pswp.cn/web/12726.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php8.2使用laravel V11.0

報錯&#xff1a;You must enable the openssl extension in your php.ini to load information from https://mirrors.aliyun.com/composer 1、搜索&#xff1a;extension_dir去掉;號 2、搜索&#xff1a;extensionopenssl去掉;號

幻獸帕魯Palworld服務器手動部署

目錄 帕魯官方文檔手動安裝steamcmd通過steamcmd安裝帕魯后端客戶端連接附錄&#xff1a;PalServer.sh的啟動項附錄&#xff1a;配置文件 帕魯官方文檔 https://tech.palworldgame.com/ 手動安裝steamcmd 創建steam用戶 sudo useradd -m steam sudo passwd steam下載steamc…

你寫HTML的時候,會注重語義化嗎?

其實說到語義化&#xff0c;多年前端開發經驗的老手估計也不會太在意&#xff0c;有時候工期太緊&#xff0c;有時候自己疏忽&#xff0c;也就不那么在意了&#xff0c;直接DIVCSS一把梭下去了。 目錄 什么是HTML 什么是HTML語義化 HTML語義化所帶來的好處 我把CSS樣式引入…

_pickle.UnpicklingError: STACK_GLOBAL requires str

導致這個報錯的原因是我跑yolo的時候修改數據集了&#xff0c;里面的label.cache沒有刪除&#xff0c;咱只要刪除掉緩存就行&#xff01;&#xff01; 我這里是已經刪除掉了&#xff0c;所以圖片里面沒有&#xff0c;一般就是在箭頭所示位置有.cache文件的

Vue3知識總結-4

Vue3知識總結-4 文章目錄 Vue3知識總結-4插槽Slots渲染作用域默認內容具名插槽插槽中的數據傳遞具名插槽傳遞數據 組件聲明周期聲明周期示意圖 組件生命周期的應用動態組件組件保持存活組件被卸載 異步組件依賴注入 插槽Slots 在某些場景中&#xff0c;可能想要為子組件傳遞一…

xxljob分片廣播+多線程實現高效定時同步elasticsearch索引庫

需求&#xff1a;為了利用elasticsearch實現高效搜索&#xff0c;需要將mysql中的數據查出來&#xff0c;再定時同步到es里&#xff0c;同時在同步過程中通過分片廣播多線程提高同步數據的效率。 1. 添加映射 使用kibana添加映射 PUT /app_info_article {"mappings&quo…

HL7協議

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 1.介紹2.傳輸協議規范2.1. MLLP2.1.1. 數據頭定義2.1.2. 轉義字符集 2.2. 規范說明2.3. 消息格式說明 3.HL7結構介紹3.1. 患者建檔&#xff08;ADT^A28&#xff09;…

linux c++獲取當前程序的運行路徑

比如我的程序名為:aaa 存放路徑是:/homo/code/ 我在/home/ccc 目錄執行shell文件。shell文件的內容為 #!/bin/bash /homo/code/aaa我希望獲取的路徑是 /homo/code/ 而不是腳本的路徑 給出完整接口代碼 #include <iostream> #include <string> #include <stri…

人工智能領域向量化技術加速多模態大模型訓練與應用

目錄 前言1、TextIn文檔解析技術1.1、文檔解析技術1.2、目前存在的問題1.2.1、不規則的文檔信息示例 1.3、合合信息的文檔解析1.3.1、合合信息的TextIn文檔解析技術架構1.3.2、版面分析關鍵技術 Layout-engine1.3.3、文檔樹提取關鍵技術 Catalog-engine1.3.4、雙欄1.3.5、非對稱…

matlab實現馬爾科夫鏈

在MATLAB中實現馬爾科夫鏈算法通常涉及定義狀態轉移矩陣、初始化狀態向量以及迭代狀態轉移過程。以下是一個簡單的步驟和示例代碼&#xff0c;用于演示如何在MATLAB中實現馬爾科夫鏈。 步驟 定義狀態轉移矩陣&#xff1a;狀態轉移矩陣P描述了從一個狀態轉移到另一個狀態的概率…

注冊海外公司為什么?

注冊海外公司通常是為了實現以下目標之一&#xff1a; 國際化業務擴張&#xff1a; 一些企業可能希望在海外注冊子公司&#xff0c;以便在國際市場上開展業務。這樣的公司可能是跨國企業&#xff0c;已經在多個國家有業務&#xff0c;或者是希望進入新的國際市場的企業。 稅收…

計算機服務器中了locked勒索病毒怎么解決,locked勒索病毒解密恢復工具

在網絡技術飛速發展的時代&#xff0c;通過網絡開展各項工作業務成為眾多企業的首選&#xff0c;網絡也為企業的生產運營提供了極大便利&#xff0c;大大提升了企業辦公效率&#xff0c;但是利用網絡避免不了網絡威脅的存在&#xff0c;數據安全問題一直是企業關心的主要話題。…

不知道代理IP怎么挑?一文帶你了解挑選的關鍵點!

IP代理在如今的網絡環境中扮演者至關重要的角色。通過使用代理IP&#xff0c;可以增強用戶個人信息和網絡的安全。但想要挑選到適合自己的代理IP&#xff0c;并非是一件易事。今天就為大家帶來挑選代理IP的關鍵注意點&#xff0c;幫你輕松篩選出最佳的選擇。 穩定性與速度&…

TikTok機房ip好還是住宅ip好?

住宅ip比較好&#xff0c;機房數據中心IP高效、低價&#xff0c;所以使用的人多且用處復雜&#xff0c;這類ip極大可能存在濫用的黑歷史&#xff0c;通過此類ip訪問tiktok&#xff0c;被禁止的可能性更高&#xff0c;更容易被拉入黑名單。所以我們推薦tiktok獨享原生ip搭建節點…

CC工具箱使用指南:【界線導出Excel(一橫)】

一、簡介 群友定制工具。 這個工具的目的是將面要素的邊界線的屬性導出Excel。 給定的Excel模板如下&#xff1a; 結果需要輸出每一段界一的起點、終點的坐標&#xff0c;這里以度分秒的方法表達。 每段界線的方位角以及方向&#xff0c;方向按16位方位角描述&#xff1a; …

高通QCS6490開發(六):連接使用攝像頭

本文將會介紹如何在FV01開發板上連接攝像頭和顯示預覽。 所用硬件有&#xff1a; 1. FV01開發板 2.Raspberry 攝像頭 操作步驟如下&#xff1a; 通過FPC線和杜邦線將FV01板和攝像頭連接起來&#xff0c;接線如下&#xff1a; 1、Camera設備連接&#xff0c;通過22pin轉15pi…

togaf培訓簡介2

1.定義 2.ADM 業務下降期不要瞎折騰&#xff0c;上升期配合業務做一些改革&#xff1f; 項目交付物不能是聊天記錄、PPT什么的&#xff0c;最起碼是郵件。 3.架構內容框架 或者叫&#xff1a;企業統一體。 包括&#xff1a;企業連續性和解決方案連續性 方案和工具的解耦很大程…

【回溯】1255. 得分最高的單詞集合

本文涉及知識點 回溯 力扣難道&#xff1a;1881 LeetCode1255. 得分最高的單詞集合 你將會得到一份單詞表 words&#xff0c;一個字母表 letters &#xff08;可能會有重復字母&#xff09;&#xff0c;以及每個字母對應的得分情況表 score。 請你幫忙計算玩家在單詞拼寫游戲…

Mysql常見數據類型探索

Mysql常見數據類型探索 數值類型 MySQL 支持所有標準 SQL 數值數據類型。 這些類型包括嚴格數值數據類型(INTEGER、SMALLINT、DECIMAL 和 NUMERIC)&#xff0c;以及近似數值數據類型(FLOAT、REAL 和 DOUBLE PRECISION)。 關鍵字INT是INTEGER的同義詞&#xff0c;關鍵字DEC是…

K8s 二進制部署 上篇

一 K8S按裝部署方式&#xff1a; ① Minikube Minikube是一個工具&#xff0c;可以在本地快速運行一個單節點微型K8S&#xff0c;僅用于學習、預覽K8S的一些特 性使用。 部署地址&#xff1a;https://kubernetes.io/docs/setup/minikube ② Kubeadmin Kubeadmin也是一個工…