IFNULL()函数、CONCAT()函数、IF()函数、YEAR()函数、DATE_FORMAT()函数、LENGTH()函数、NOW()函数、CURDATE()函数、CURTIME()函数基本使用
生活随笔
收集整理的這篇文章主要介紹了
IFNULL()函数、CONCAT()函数、IF()函数、YEAR()函数、DATE_FORMAT()函数、LENGTH()函数、NOW()函数、CURDATE()函数、CURTIME()函数基本使用
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1. IFNULL函數(shù)
作用:IFNULL() 函數(shù)用于判斷第一個表達式是否為 NULL,如果為 NULL 則返回第二個參數(shù)的值,如果不為 NULL 則返回第一個參數(shù)的值。
格式:IFNULL(expression, alt_value) expression,alt_value:必須
SELECT IFNULL(NULL, "RUNOOB"); -- RUNOOBSELECT IFNULL("Hello", "RUNOOB"); -- Hello2.CONCAT()函數(shù)
作用:CONCAT() 用于進行字符串的拼接
格式:CONCAT(str1,str2,…) 注:CONCAT()函數(shù)參數(shù)如果存在NIULL值則返回空
SELECT CONCAT("test1","====","test2") -- test1====test2SELECT CONCAT(NULL,"====","test2") -- NULLSELECT CONCAT(IFNULL(NULL,""),"===",IFNULL("test","")) -- ===test3.IF()函數(shù)
作用:IF()既可以作為表達式用,也可在存儲過程中作為流程控制語句使用
格式:IF(expr,v1,v2) 注:如果表達式 expr 成立,返回結(jié)果 v1;否則,返回結(jié)果 v2。
select if(sva=1,"男","女") -- sva=1"男" sva !=1 "女"4.YEAR()函數(shù)
作用:返回日期時間的年份
格式:YEAR(d)
SELECT YEAR("2021-11-22 19:37:14"); -- 2021SELECT YEAR("2021-11-22"); -- 2021SELECT YEAR(CURDATE()); -- 獲取當前年份-- 比較某個人的工齡 SELECT YEAR(CURDATE()) - YEAR("2018-01-14 11:02:26"); -- 45.NOW(),CURDATE(),CURTIME()函數(shù)
作用:NOW() 返回當前的日期和時間,CURDATE()返回當前的日期,CURTIME()返回當前的時間
注:建表時datetime字段默認值給相應的日期函數(shù),向表中插入行時,當前日期和時間自動插入列中。
SELECT NOW(),CURDATE(),CURTIME() -- 2022-01-14 11:14:30 2022-01-14 11:14:30INSERT INTO Orders (ProductName) VALUES ('Jarlsberg Cheese') -- Jarlsberg Cheese 2022-01-14 11:14:306.DATE_FORMAT()函數(shù)
作用:用于以不同的格式顯示日期/時間數(shù)據(jù)。
格式:DATE_FORMAT(date,format) 注:date 參數(shù)是合法的日期。format 規(guī)定日期/時間的輸出格式。
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d') -- 2022-01-19SELECT DATE_FORMAT(NOW(),'%Y-%M-%D') -- 2022-January-19th7.LENGTH()函數(shù)與CHAR_LENGTH()函數(shù)
作用:獲取長度
LENGTH(): 單位是字節(jié),utf8編碼下,一個漢字三個字節(jié),一個數(shù)字或字母一個字節(jié)。gbk編碼下,一個漢字兩個字節(jié),一個數(shù)字或字母一個字節(jié)。
CHAR_LENGTH():單位為字符,不管漢字還是數(shù)字或者是字母都算是一個字符。
SELECT LENGTH("我愛中國11") -- 14SELECT CHAR_LENGTH('我愛中國11') -- 6-- length()<>char_length() 可以檢驗某個字段是否含有中文(<>等同與!=) select length("1111")<>char_length("1111") -- 0select length("我愛中國")<>char_length("我愛中國") -- 18.RIGHT()與LEFT()函數(shù)
作用:從最右側(cè)開始截取或最左側(cè)開始截取
SELECT RIGHT(DATE_FORMAT('2022-11-22','%Y-%m-%d'),5) -- 11-22SELECT (RIGHT(DATE_FORMAT('2022-11-22','%Y-%m-%d'),5)>RIGHT(DATE_FORMAT(now(),'%Y-%m-%d'),5)) -- 1-- 精確比較某個人的工齡 SELECT (YEAR(NOW()) - YEAR('2020-11-22')) - (RIGHT(DATE_FORMAT('2021-11-22','%Y-%m-%d'),5)>RIGHT(DATE_FORMAT(now(),'%Y-%m-%d'),5)) -- 1-- 去掉某人手機號為:'+8615262130749' 的前三位 SELECT RIGHT('+8615262130749',LENGTH('+8615262130749')-3) -- 15262130749上述函數(shù)聯(lián)合使用查詢某人的工齡和工資范圍:
SELECTt1.id as user_id,t1.user_name,t1.age,t1.avatar,t1.job_status,(CASE WHEN ( YEAR ( CURDATE( ) ) - YEAR ( t1.work_time ) ) -((RIGHT(work_time,5))>RIGHT(CURDATE(),5) ) =0 THEN 1ELSE( (YEAR ( CURDATE( ) ) - YEAR ( t1.work_time )) -((RIGHT(work_time,5))>RIGHT(CURDATE(),5) ) )END) work_years,t2.post_name,-- 查詢最高最新薪資字段,如果為null則返回空 9000-10000KIF(CONCAT(IFNULL(t2.preferred_salary_max,""),"-",IFNULL(t2.preferred_salary_min,""))="-","",CONCAT( IFNULL(t2.preferred_salary_min,""),"-",IFNULL(t2.preferred_salary_max,""),"K"))as expect_salaryFROM t_user t1LEFT JOIN t_user_intention_position t2ON t1.id = t2.user_idWHERE t1.id='12226'ORDER BY t2.create_time DESCLIMIT 1總結(jié)
以上是生活随笔為你收集整理的IFNULL()函数、CONCAT()函数、IF()函数、YEAR()函数、DATE_FORMAT()函数、LENGTH()函数、NOW()函数、CURDATE()函数、CURTIME()函数基本使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 腾讯联合国家天文台启动探星计划
- 下一篇: 编程找出四位整数abcd 中满足下述关系