一、日期函式
日期函式用於處理date型別的資料,兩個日期相減返回日期之間相差的天數。日期不允許做加法運算,無意義。
常見代表符號:yyyy 年,mm 月,dd 日,hh 小時,mi 分鐘,ss 秒,day 星期以下是日期函式的一些例子及效果圖:預設情況下日期格式是dd-mon-yy即12-3月-19
(1)sysdate: 該函式返回系統時間
(2)months_between(m,n)日期m和日期n相差多少月數
(3)add_months(d,n)在日期d上增加n個月數
(4)next_day(d, '星期*') 指定日期d下乙個星期*對應的日期
(5)last_day(d):返回指定日期d所在月份的最後一天
(6)extract(month from d)從日期d上提取月份數
(7)round(d,time)日期的四捨五入
(8)trunc(d,time)日期的截斷
各種情況例子:
months_between select months_between('01-9月-95','11-1月-94') from dual; --19.6774193548387eg:查詢已經入職8個月多的員工add_months select add_months('11-2月-18',6) from dual; --2018/8/11
next_day select next_day('11-2月-18','星期六') from dual; --2018/2/17
last_day select last_day('11-2月-18') from dual; --2018/2/28
round 四捨五入月份 25-7月-18 select round(to_date('25-7月-2018'), 'month') from dual; --2018/8/1
round 四捨五入年份 25-7月-18 select round(to_date('25-7月-2018』), 'year') from dual; --2019/1/1
trunc 截斷月份 25-7月-18 select trunc(to_date('25-7月-2018'), 'month') from dual; --2018/7/1
trunc 截斷年份 25-7月-18 select trunc(to_date('25-7月-2018'), 'year') from dual; --2018/1/1
eg:顯示滿10年服務年限的員工的姓名和受僱日期。
eg:對於每個員工,顯示其加入公司的天數。
或者sql>select trunc(sysdate-hiredate),ename from emp;
eg:找出各月倒數第3天受僱的所有員工。
二、轉換函式
轉換函式用於將資料型別從一種轉為另外一種。在某些情況下,oracle server允許值的資料型別和實際的不一樣,這時oracle server會隱含的轉化資料型別
我們要說的是儘管oracle可以進行隱含的資料型別的轉換,但是它並不適應所有的情況,為了提高程式的可靠性,我們應該使用轉換函式進行轉換。
(1)to_char函式
格式: to_char(date,『format』)
1、必須包含在單引號中而且大小寫敏感。
2、可以包含任意的有效的日期格式。
3、日期之間用逗號隔開。
eg:日期是否可以顯示 時/分/秒
eg:薪水是否可以顯示指定的貨幣符號
yy:兩位數字的年份2004–>04
yyyy:四位數字的年份 2023年
mm:兩位數字的月份 8月–>08
dd:兩位數字的天 30號–>30
hh24: 8點–>20
hh12:8點–>08
mi、ss–>顯示分鐘/秒
9:顯示數字,並忽略前面0
0:顯示數字,如位數不足,則用0補齊
.:(小數點)在指定位置顯示小數點
,:(千位符)在指定位置顯示逗號
$:(美元符)在數字前加美元
l:(本地貨幣符)在數字前面加本地貨幣符號
c:(國際貨幣符)在數字前面加國際貨幣符號
eg:顯示薪水的時候,把本地貨幣單位加在前面
eg:顯示2023年入職的所有員工
eg:顯示所有12月份入職的員工
sql> select * from emp where to_char(hiredate, 'mm')=12;
這裡的12和1980是數字,可以加 』 』 也可以不加,因為oracle會自動轉換,但是最好加。
eg:顯示姓名、hiredate和雇員開始工作日是星期幾
sql> select ename,hiredate,to_char(hiredate,'day') from emp;
(2)to_date函式
格式:to_date(string,『format』)
函式to_date用於將字串轉換成date型別的資料。
eg:把字串2015-03-18 13:13:13轉換成日期格式,
sql> select to_date('2015-03-18 13:13:13','yyyy-mm-dd hh24:mi:ss') from dual;
(3)to_number函式
格式:to_number(char,『format』)
使用to_number函式將字元轉換成日期。
sql> select to_number('¥1,234,567,890.00','l999,999,999,999.99') from dual;
oracle的日期轉換函式
oracle的日期轉換函式是to date var1,format 第乙個引數是字元型日期,後面是其當前格式,此函式用於將指定格式的日期字串轉換為日期。假如var1是 20101130131230 由年月日時分秒組成的日期字串,則對應的format就應該是 yyyymmddhh24miss 如果va...
Oracle日期字元轉換函式
1.oracle日期轉字元 2.oracle字元轉日期 只能字串轉日期 為指定元素而截去的日期值。格式 trunc date fmt 使用 select trunc sysdate from dual 2011 3 18 今天的日期為2011 3 18 select trunc sysdate,mm...
MySQL和Oracle常用日期轉換函式
mysql date time to str 日期 時間轉換為字串 函式 date format date,format time format time,format 日期轉字串 select date format jzksrq,y c d h i s 日期 from healthtest.mb...