mysql中的轉換函式(講義)
阿新 • • 發佈:2018-12-18
--轉換函式: --to_number(數值型別的字元):將字元轉換為數值 --to_char(數值或者是日期):將數值或者日期轉換為字元 --to_date(日期格式的字元):將字元轉換為日期 ----------------數值和字元的互轉----------------------- --字元轉換為數字char---->number select to_number('123')+2 from dual --數字轉換字元number--->char --指定顯示格式: --9表示位置佔位,例如999,999,999會將數字按照三個一組使用逗號隔開。 --L表示人民幣符號,$表示美元符號 --0可以進行佔位分組,但是如果真實資料位數不足,會使用0進行補位。 select to_char(12345,'$999,999,999') from dual select to_char(12345,'L999,999,999') from dual select to_char(12345678,'000,000,000,000.000') from dual --查詢工資大於2000的員工資訊 --數值和字元之間的轉換可以隱式轉換。to_number可以省略不寫. select * from emp where sal>'2000'; select * from emp where sal>to_number('2000'); ---------------日期和字元的互轉--------------------------- --一般使用方式:新增資料使用to_date(),查詢資料使用to_char() --字元轉換為日期 char--->date --使用to_date('要轉換的字元',日期格式)函式將字元轉換為日期 --注意1:字元必須符合日期格式 --注意2:oralce預設的轉換格式為日月年,例如'01-1月-2018' oracle認為是一個日期 --常用日期格式: -- yyyy-mm-dd -- yyyy/mm/dd --查詢員工入職日期在82年後的資訊 select * from emp where hiredate >to_date('1982-01-01','yyyy-mm-dd') select * from emp where hiredate >to_date('1982/01/01','yyyy/mm/dd') select * from emp where to_char(hiredate,'yyyy-mm-dd') >'1982-01-01' --日期轉換為字元 date--->char --使用to_char('要轉換的日期',轉換格式) --注意1:如果不指名轉換格式,則使用預設格式,日月年例如:'01-1月-81' --常用轉換格式: -- yyyy-mm-dd -- yyyy/mm/dd --'yyyy"年"mm"月"dd"日"' select to_char(hiredate) from emp--使用預設格式將日期轉換為字元 select to_char(hiredate,'yyyy-mm-dd') from emp--使用指定格式 yyyy-mm-dd select to_char(hiredate,'yyyy/mm/dd') from emp--使用指定格式 yyyy/mmm/dd select to_char(hiredate,'yyyy"年"mm"月"dd"日"') from emp--使用指定格式 'yyyy"年"mm"月"dd"日"' ----------------------------------------------------------------------------------------------------- --其他函式: --nvl():nvl(欄位名,新的值) --如果欄位值不為null,則返回該欄位的值。如果為null則返回新的值 --nvl2():nvl2(欄位名,處理1,處理2) --如果欄位值不為null,則執行處理1,為null執行處理2 --decode():decode(欄位名,值1,處理1,值2,處理2,值3,處理3,...,公共處理) --如果欄位的值和decode中的條件值相同則執行物件的處理。如果都沒有則執行公共處理 ---查詢員工的工資資訊 select ename,job,sal from emp --查詢員工的薪水資訊 select ename,job,sal+nvl(comm,0),sal+comm,sal from emp select ename,job,nvl2(comm,sal+comm,sal) from emp --顯示員工的職稱 select ename,job,decode(job,'MANAGER','經理','PRESIDENT','董事長','SALESMAN','銷售','普通員工') from emp