MySQL內置函數(8)

文章目錄

  • 前言
  • 一、日期函數
  • 二、字符串函數
  • 三、數學函數
  • 四、其它函數
  • 總結


前言

??其實在之前的幾篇中我們也用到了內置函數,現在我們再來系統學習一下它!


一、日期函數

函數名稱描述
current_date()獲取當前日期
current_time()獲取當前時間
current_timestamp()獲取當前時間戳
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 now();

在這里插入圖片描述

  • 截斷當前時間,只獲得日期部分
SELECT date(now());
  • 在日期的基礎上加日期
SELECT date_add(now(), interval 10 year);
  • 在日期的基礎上減去時間
SELECT date_sub(now(), interval 10 minute);
  • 計算兩個日期之間相差多少天
SELECT datediff(now(), '1949-10-01');

在這里插入圖片描述
??學了以上函數總得來個實際案例來試驗一下

??創建一張記錄生日的表

CREATE TABLE tmp(id INT PRIMARY KEY AUTO_INCREMENT,birthday DATE NOT NULL
);

??雖然 current_time() 這里顯示的是時分秒,實際上插入的時候也能插入,所有的時間在獲取的時候都是 年-月-日,時:分:秒,只不過顯示時是不一樣的。

在這里插入圖片描述

??創建一個留言表

CREATE TABLE msg(							id INT PRIMARY KEY AUTO_INCREMENT,content VARCHAR(100) NOT NULL,sendtime DATETIME
);

??顯示所有留言信息,發布日期只顯示日期

SELECT content, date(sendtime) FROM msg;

在這里插入圖片描述
??然后我們查看2分鐘內發的貼子

SELECT * FROM msg WHERE date_add(sendtime, interval 2 minute) > now();

在這里插入圖片描述

二、字符串函數

函數名稱描述
charset(str)返回字符串字符集(編碼集)
concat(string [,…])連接字符串
instr(string, substring)返回子字符串在字符串中的位置,無則返回0(mysql 起始從 1 開始
ucase(string)轉換成大寫
lcase(string)轉換成小寫
left(string, length)從字符串左邊起取 length 個字符
right(string, length)從字符串右邊起取 length 個字符
length(string)字符串長度
replace(str, search_str, replace_str)在字符串中用 replace_str 替換 search_str
strcmp(string1, string2)逐字符比較兩個字符串大小
substring(str, position [,length])從字符串的 position 開始,取 length 個字符
ltrim(string), rtrim(string), trim(string)去除前后空格
  • 獲取 emp 表的 ename 列的字符集
SELECT charset(ename) FROM emp;
  • 連接字符串
SELECT concat(name, '的語文是', chinese, '分,', '數學', math, '分,', '英語', english, '分') FROM exam_result;

在這里插入圖片描述

  • 求學生表中學生姓名占用的字節數
select length(name) from exam_result;

??以前說過 mysql 的字符真的就是一個字符,utf8中一個漢字占3個字節。

??length函數返回字符串長度,以字節為單位。如果是多字節字符則計算多個字節數;如果是單字節字符則算作一個字節。比如:字母,數字算作一個字節,中文表示多個字節數(與字符集編碼有關)
在這里插入圖片描述

  • 截取 emp 表中 ename 字段的第二個到第三個字符
SELECT ename, substring(ename, 2, 2) FROM emp;

在這里插入圖片描述

  • 以首字母小寫的方式顯示所有員工的姓名
SELECT ename, concat(lcase(substring(ename, 1, 1)), substring(ename, 2)) FROM emp;

在這里插入圖片描述
??substring(ename, 1, 1) 從第一個開始,截一個字符

三、數學函數

函數名稱描述
abs(number)絕對值函數
bin(decimal_number)十進制轉二進制
hex(decimalNumber)轉換成十六進制
conv(number, from_base, to_base)進制轉換
ceiling(number)向上去整(數據變大
floor(number)向下去整
format(number, decimal_places)格式化,保留小數位數
rand()返回隨機浮點數,范圍 [0.0, 1.0)
mod(number, denominator)取模,求余
  • ceiling(number) 向上去整
  • floor(number) 向下去整

??一般我進行取整的時候是進行 四舍五入 取整,但是除了 四舍五入 還有其他的取整方式。我們把丟棄小數部分的取整方式稱為向0取整,以前我們在 C 學的 9 / 2 = 4 就是向0取整,還有向大的方向取的向上取整、向小的方向取的向下取整

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

四、其它函數

??查詢當前用戶

SELECT user();

??顯示當前正在使用的數據庫

SELECT database();

在這里插入圖片描述
??一個字符串進行md5摘要,摘要后得到一個32位字符串

select md5(string);

在這里插入圖片描述
??如果 val1 為null,返回 val2 ,否則返回 val1 的值

IFNULL(val1, val2) -- 如果 `val1` 為 `NULL`,返回 `val2`,否則返回 `val1` 的值

在這里插入圖片描述


總結

??以上函數提供了豐富的操作能力,使得在處理數據時更加靈活和方便,因此我們需要好好掌握!!!

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

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

相關文章

蒼穹外賣項目日記(day04)

蒼穹外賣|項目日記(day04) 前言: 今天主要是接口開發, 涉及的新東西不多, 需要注意的只有多表聯查和修改的邏輯,今日難點: 1.菜品的停起售狀態設置 2.套餐的停起售狀態設置 3.動態sql中的 useGeneratedKeys 與 keyProperty 兩個參數 一. 菜品的停起售狀態設置 ? 在菜品的停售中…

React之旅-05 List Key

每個React的初學者,在調試程序時,都會遇到這樣的警告:Warning: Each child in a list should have a unique "key" prop. 如下面的代碼: const list [Learn React, Learn GraphQL];const ListWithoutKey () > (&l…

[特殊字符] 人工智能技術全景:從基礎理論到前沿應用的深度解析

🚀 人工智能技術全景:從基礎理論到前沿應用的深度解析 在這個AI驅動的時代,理解人工智能的核心技術和應用場景已成為技術人員的必備技能。本文將帶你深入探索AI的發展脈絡、核心技術差異以及在各行業的創新應用。 文章目錄🚀 人工…

Go語言教程-環境搭建

前言 Go(又稱 Golang)是由 Google 開發的一種 開源、靜態類型、編譯型 編程語言,于 2009 年正式發布。它旨在解決現代軟件開發中的高并發、高性能和可維護性問題,尤其適合 云計算、微服務、分布式系統 等領域。 Go 語言國際官網…

windows指定某node及npm版本下載

下載并安裝 nvm-windowshttps://github.com/coreybutler/nvm-windows/releases(選擇 nvm-setup.zip)。打開命令提示符(管理員權限),安裝 Node.js v16.15.0: nvm install 16.15.0 nvm use 16.15.0 驗證node版…

每天一個前端小知識 Day 28 - Web Workers / 多線程模型在前端中的應用實踐

Web Workers / 多線程模型在前端中的應用實踐🧠 一、為什么前端需要多線程? 單線程 JS 的瓶頸:瀏覽器主線程不僅負責執行 JS,還要負責: UI 渲染(DOM/CSS)用戶事件處理(點擊、輸入&am…

python:ImportError: cannot import name ‘ParameterSource‘ from ‘click.core‘

瀏覽器訪問網站拋錯:ImportError: cannot import name ParameterSource from click.core (E:\environment\python\Lib\site-packages\click\core.py)問題分析:1. click 版本問題ParameterSource 可能是在某個特定版本的 click 庫中引入的,而你…

flink 去重

LOCALTIMESTAMP as time_stamp ts as case when time is null then CURRENT_TIMESTAMP else TO_TIMESTAMP_LTZ(time, 0) end , watermark for ts as ts - interval ‘60’ second PARTITION BY 的都有回撤流 group by 的沒有回撤流 因為算的是指標 開窗又慢 SELECT * FROM (…

【音視頻】TS協議解析

參考博客:https://blog.csdn.net/rell336/article/details/38109621?utm_mediumdistribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_sourcedistribute.pc_relevant_t0.none-task-blog-BlogCommendFromMac…

uniapp 日期組件可選擇年月

month-picker 月份選擇器組件 組件介紹 month-picker 是一個用于選擇年月的自定義組件,基于 uni-app 開發,提供了簡潔的月份選擇功能。 解決彈框底部出現底部頁面區域 safe-area屬性設為true時,即可解決這個問題效果如圖功能特點 支持選擇年份…

從真人到數字分身:3D人臉掃描設備在高校數字人建模教學中的應用

在影視、動漫、游戲等數字創意產業蓬勃發展的當下,超寫實虛擬數字人憑借其高度逼真的形象,成為行業關注的焦點。無論是影視特效中栩栩如生的角色,還是游戲里精致的NPC,超寫實虛擬數字人的制作都離不開先進的技術支撐。而3D人臉掃描…

你以為大數據只是存?其實真正的“寶藏”藏在這招里——數據挖掘!

你以為大數據只是存?其實真正的“寶藏”藏在這招里——數據挖掘! 曾經我也天真地以為,搞大數據就是會寫幾個SQL、部署個Hadoop集群,結果真到項目現場,甲方爸爸一句:“給我挖掘一下用戶的購買意圖”&#xf…

LeetCode經典題解:128、最長連續序列

“最長連續序列”是一道極具代表性的數組處理問題, 本文將帶你從直觀思路出發,逐步推導出最優解法,并通過場景化記憶技巧掌握核心邏輯。 一、題目描述 題目:給定一個未排序的整數數組 nums,找出數字連續的最長序列&…

電力分析儀的“雙語對話”:CCLinkIE與Modbus TCP的無縫連接

在工業自動化領域,協議兼容性問題如同“方言壁壘”,讓不同品牌、不同系統的設備難以高效協同。對于電力分析儀這類關鍵設備而言,如何打破CCLinkIE與Modbus TCP協議的“語言障礙”,已成為工程師優化系統集成的核心課題。 為何需要協…

暑假復習篇之文本編譯器

一、知識點補充【在此次示例代碼上顯示的關鍵用法】知識點1、JMenuBar:菜單欄的容器,通常添加到JFrame的頂部。關鍵用法:add: 添加菜單到菜單欄2、JMenu:菜單條目(“文件” “編輯” 等)&#x…

Linux自動化構建工具(一)

🎁個人主頁:工藤新一 🔍系列專欄:C面向對象(類和對象篇) 🌟心中的天空之城,終會照亮我前方的路 🎉歡迎大家點贊👍評論📝收藏?文章 文章目錄Li…

目標檢測流程圖繪制

目標檢測流程圖繪制作為一個長期科研的苦命人,我一般采用Processon。 一、目標檢測流程圖繪制的 “量身定制” 體驗 Processon 的繪圖元素庫對目標檢測領域極度友好,從基礎模塊到復雜結構都能精準匹配: ??核心組件一鍵調用:在右…

GitHub 趨勢日報 (2025年07月09日)

📊 由 TrendForge 系統生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日報中的項目描述已自動翻譯為中文 📈 今日獲星趨勢圖 今日獲星趨勢圖970genai-toolbox780WebAgent650rustfs451prompt-eng-interactive-tutorial246ai-a…

多云環境下的成本管理挑戰與對策 ——資源碎片化治理與華為CloudMatrix破局之道

一、危機:多云成本失控已成企業“隱形殺手”成本超支概率激增據Gartner 2024報告,采用多云策略的企業成本超支概率比單云企業高47%,主因資源碎片化導致的閑置浪費和管控失效。觸目驚心的數據:73%企業云成本占營收超20%&#xff0c…

Linux的基礎I/O

目錄 1、理解“文件” 1.1 狹義理解 1.2 廣義理解 1.3 文件操作的歸類認知 1.4 系統角度 2、回顧C文件接口 2.1 文件的打開與關閉 2.2 文件的讀寫函數 2.3 stdin & stdout & stderr 3、系統文件I/O 3.1 一種傳標志位的方式 3.2 文件的系統調用接口 3.2.1 o…