MySQL資料庫學習筆記 五

2023-02-05 21:15:02 字數 4605 閱讀 7041

mysql資料庫學習筆記(五)----mysql字串函式、日期時間函式

一、常見字串函式:

1、char_length 獲取長度(字元為單位)

2、format 格式化

3、insert 替換的方式插入

4、instr 獲取位置

5、left/right 取左、取右

6、length 獲取長度(位元組為單位)

7、ltrim/rtrim/trim 去空格(左/右/自定義)

8、strcmp 字串比較

9、concat 字串拼接

10、substring 字串擷取

1、char_length:獲取長度(字元為單位)

char_length(str)

解釋:返回值為字串str的長度,計算的單位為字元(乙個中文也算乙個字元)

舉例:如果是查詢已知**裡的字段長度,可以這樣寫:

2、format:

format(x,d)

解釋:將數字x的格式寫為以四捨五入的方式保留小數點後d位,並將結果以字串的形式返回。若d為0, 則返回結果不帶有小數點,或不含小數部分。

舉例:3、insert:替換的方式插入

insert (str,pos,len,newstr)

解釋:返回字串str,從原str的pos位置開始,用字串newstr來替換,替換的長度為len。

如果pos超過字串長度,則返回值為原始字串。假如len的長度超過後面字串的長度,則從位置pos開始替換到字串的結尾即可。

四個引數中若任何乙個引數為的值為null,則整個函式的返回值為null。

舉例:將smyh001替換為smyh002

4、instr:查詢子字串的位置

instr(str,substr)

解釋:返回字串str中首次出現子字串substr的位置。

舉例:5、left/right:字串擷取

左擷取:

left(str,len)

解釋:返回字串str中,從左邊開始算起的,前len個字元。

右擷取:

right(str,len)

解釋:返回字串str中,從右邊開始算起的,前len個字元。

6、length:求字串長度(以位元組為單位)

length(str)

解釋:返回值為字串str的長度,單位為位元組。乙個多位元組字元算作多位元組。

這意味著對於乙個包含五個2位元組字元的字串,length()的返回值為10,而char_length()的返回值則為5。

注: gbk 編碼中,乙個中文字元是2個位元組。

utf-8編碼中,乙個中文字元是3個位元組,乙個英文本元是2個位元組。

7、ltrim/rtrim/trim 去空格(左/右/自定義):

去掉左邊的空格:

ltrim(str)

解釋:返回字串str,其引導空格字元被刪除。

去掉中間的空格:

rtrim(str)

解釋:返回字串str,其結尾空格字元被刪除。

自定義去空格:

trim([ [remstr] from] str)

注:大括號和中括號裡面的引數為可選項,如果全部都加上的話,預設為引數both。

解釋:將原字串str去掉空格返回。只去開頭(leading)的空格,只去結尾(trailng)的空格,或者同時去掉(both)開頭和結尾的空格都行。

若分類符both、leadin或trailing中沒有乙個是給定的,則假設為both。

trim([remstr from] str)

解釋:remstr關鍵字的作用是去掉指定字元。 即所有包含remstr的字首和/或字尾將被刪除。未指定情況下,即刪除空格。

官方文件的舉例:

8、strcmp:判斷字串是否相等

strcmp(expr1,expr2)

解釋:判斷兩個字串是否相等。若所有的字串均相同,則返回0;若根據當前分類次序,第乙個引數小於第二個,則返回-1;其它情況返回1。功能和比較器類似。

注:字串的大小是按照ansi編碼來比較的。

舉例:9、concat:字串拼接

concat(str1,str2,...)

解釋:返回結果為連將str1、str2···拼接之後產生的字串。如有任何乙個引數為null ,則返回值為 null。括號裡可能有乙個或多個引數。

如果所有引數均為非二進位制字串,則結果為非二進位制字串。如果自變數中含有任意乙個二進位制字串,則結果為乙個二進位制字串。乙個數字引數將自動轉化為與之相等的二進位制字串格式。

若要避免這種情況二進位制的情況出現,可使用顯式型別 cast(str),將二進位制的字串轉換為非二進位制字串。例如:select concat(cast(int_col as char), char_col)

舉例:(n**icat編輯器會自動將二進位制字串轉換為非二進位制字串)

10、substring:字串擷取

substring(str,pos)

substring(str from pos)

substring(str,pos,len)

substring(str from pos for len)

解釋:不帶有len 引數的格式從字串str返回乙個子字串,起始於位置 pos。帶有len引數的格式從字串str返回乙個長度同len字元相同的子字串,起始於位置 pos。

使用from的格式為標準sql語法。

也可能對pos使用乙個負值。假若這樣,則子字串的位置起始於字串結尾的pos字元(也就是說,pos為正時,從左邊算起;pos為負時,從右邊算起)。

官方文件舉例如下:

二、常見日期時間函式:

1、dayofweek、 dayofyear、dayofmonth

2、weekday

3、year、quarter、month、

4、hour、minute、second

5、to days、from days

6、curdate、curtime、now 獲取當前時間

1、dayofweek、 dayofyear、dayofmonth

求星期幾:(一周中的第幾天)

dayofweek(date)

解釋:返回date(1=週日,2=周一, ...,7=週六)對應的工作日索引。即:date對應的範圍是1至7。

求一年中的某天是第幾天:(一年中的第幾天)

dayofyear(date)

返回date對應的一年中的天數,範圍是從1到366。

求乙個月中的某天是第幾天:(乙個月的第幾天)

dayofmonth(date)

返回date對應的該月日期,範圍是從1到31。注:day(date) 和dayofmonth(date)的含義相同。

舉例:2、weekday:

求星期幾:(一周的第幾天)

weekday(date)

解釋:返回date(0 = 周一, 1 = 周二, ... 6 = 週日)對應的工作日索引。即:date對應的範圍是0至6。

注:dayofweek(date)和weekday(date)的功能相同,唯一的區別在於date對應的取值範圍。

3、 year、quarter、month

求年份:

year(date)

解釋:返回date對應的年份,範圍是從1000到9999。

求季度:

quarter(date)

解釋:返回date對應的一年中的季度值,範圍是從1到4。

求月份:(該月是一年當中的第幾個月)

month(date)

解釋:返回date 對應的月份,範圍是從1到12。

舉例:4、hour、minute、second

求小時:

hour(time)

解釋:返回time 對應的小時數。對於日時值的返回值範圍是從0到23 。

求分鐘:

minute(time)

解釋:返回time對應的分鐘數,範圍是從0到59。

求秒數:

second(time)

解釋:返回time對應的秒數,範圍是從0到59。

舉例:5、to_days、from_days

求某日期,一共經歷了多少天:(歷史長河中)

to_days(date)

解釋:給定乙個日期date, 返回乙個天數 (從年份0開始的天數 )。

求歷史長河中的第某天,的日期:

from_days(n)

解釋:給定乙個天數 n, 返回乙個date值。

使用from_days()處理古老日期時,務必謹慎,他不用於處理陽曆出現前的天數(1582)。

6、curdate、curtime、now

求當前的年月日:

curdate()

解釋:將當前日期按照'yyyy-mm-dd'或yyyymmdd格式的值返回,具體格式根據函式用在字串或是數字語境中而定。

舉例: 求當前的時分秒:

curtime()

解釋:將當前時間以'hh:mm:ss'或hhmmss的格式返回,具體格式根據函式用在字串或是數字語境中而定。

舉例: 求當前的年月日、時分秒:

now()

舉例:注:如果now是放在語句當中,要看具體欄位的格式要求。比如說,如果是放在date欄位中,則只顯示年月日;如果是放在datetime欄位中,則同時顯示年月日和時分秒。

SYBASE資料庫學習筆記

sybase菜鳥學習筆記 sybase版本 ase 12.5.4 中文版 1 無法load資料庫,提示can t open a connection to site syb backup 問題產生原因 1 sybase資料庫備份伺服器沒有啟動 2 當使用backup server做dump load...

01 MySql資料庫安裝

pos 2.0系列使用者手冊 拿到的安裝程式包內容應該如下圖所示由三部分組成 但是 非必須部分 不是必須的 為了使用者資料的安全,一般來講不要在c盤存放使用者的銷售資料,所以我們在d盤建立了名為pos的資料夾用來存放使用者的銷售資料。一 安裝資料庫伺服器 雙擊 開始進行mysql資料庫伺服器的安裝。...

SQL server資料庫總結筆記

建表的兩種方式 一 兒子,爸爸,爺爺式 包含式,屬於式 至少需要兩個表。經典案例 學校 班級 學生 建表訣竅 1 乙個物件 實體 乙個表 2 小表裡面有大表 主鍵 下級的小表包含上一級大表的主鍵,比如學生表裡面包含班級表的主鍵,班級表包含學校表的主鍵,學生表裡面沒有必要包含學校表的主鍵,不是不行,而...