時間型別及格式轉換
SELECT SYSTIMESTAMP FROM DUAL;查詢出來的結果是預設的,timestamp預設精確到秒後6位
2016/12/31 10:49:51.263720 +08:00
SELECT SYSTIMESTAMP+0 FROM DUAL;查詢處理的結果當天,預設為sysdate
2016/12/31 10:49:51
SELECT SYSTIMESTAMP+1 FROM DUAL;查詢處理的結果當天,預設為sysdate+1
2017/1/1 10:49:51
select last_day(sysdate) from dual;返回當月最後一天
TO_CHAR函式將日期轉為字元
TO_CHAR(date,’格式’);
select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;//mi是分鐘
select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;//mm欄位的結果顯示為月,而不是顯示為分鐘
select to_char(sysdate,'yyyy') as nowYear from dual; //獲取時間的年
select to_char(sysdate,'mm') as nowMonth from dual; //獲取時間的月
select to_char(sysdate,'dd') as nowDay from dual; //獲取時間的日
select to_char(sysdate,'hh24') as nowHour from dual; //獲取時間的時
select to_char(sysdate,'mi') as nowMinute from dual; //獲取時間的分
select to_char(sysdate,'ss') as nowSecond from dual; //獲取時間的秒
select to_char(sysdate) s1, --返回當前日期,無時分秒
to_char(sysdate,'yyyy-mm-dd') s2, --返回當前日期,無時分秒
to_char(sysdate,'yyyy') s3, --返回當前年份
to_char(sysdate,'yyyy-mm-dd hh12:mi:ss') s4, --返回當前日期時間
to_char(sysdate, 'hh24:mi:ss') s5, --返回當前24小時制時間
to_char(sysdate,'DAY') s6 --返回當前星期
from dual;
select sysdate S1,
trunc(sysdate) S2, --返回當前日期,無時分秒
trunc(sysdate,'year') YEAR, --返回當前年的1月1日,無時分秒
trunc(sysdate,'month') MONTH , --返回當前月的1日,無時分秒
trunc(sysdate,'day') DAY --返回當前星期的星期天,無時分秒
from dual
TO_DATE函式將字元轉換為日期
TO_DATE(char[, '格式'])
SELECT TO_DATE('2006-05-01 19:25:34', 'YYYY-MM-DD HH24:MI:SS') FROM DUAL
SELECT TO_DATE('2006-05-01 19:25', 'YYYY-MM-DD HH24:MI') FROM DUAL
SELECT TO_DATE('2006-05-01 19', 'YYYY-MM-DD HH24') FROM DUAL
SELECT TO_DATE('2006-05-01', 'YYYY-MM-DD') FROM DUAL
SELECT TO_DATE('2006-05', 'YYYY-MM') FROM DUAL
SELECT TO_DATE('2006', 'YYYY') FROM DUAL
select to_date(substr('2016-07-22 08:31:26.672',1,19),'yyyy-mm-dd hh24:mi:ss') from dual
2016/7/22 8:31:26
to_timestamp函式將字元轉換為日期
to_timestamp(char[, '格式'])
select to_timestamp('2016-07-22 08:31:26.672','yyyy-mm-dd hh24:mi:ss.ff3') from dual
2016/7/22 8:31:26.672000000
當前時間+1天的方法有四種如下
select sysdate,sysdate+1 as res from dual;
SELECT SYSTIMESTAMP,SYSTIMESTAMP+1 FROM DUAL;
select sysdate,sysdate+numtodsinterval(1,'day') as res from dual;
select systimestamp,systimestamp+numtodsinterval(1,'day') as res from dual;
當前時間+1年的方法如下
select sysdate,sysdate+numtoyminterval(1,'year') as res from dual;
numtodsinterval(,) ,x是一個數字,c是一個字串,c只能是'DAY'、'HOUR'、'MINUTE'、'SECOND'
numtoyminterval(,) ,x是一個數字,c是一個字串,c只能是'YEAR'、'MONTH'
遇到分割槽表可以直接如下操作如下
分割槽欄位的屬性TIMESTAMP(3)或date,可以如下
alter table XX add PARTITION p01 VALUES LESS THAN (timestamp '2016-08-01 00:00:00.000')
分割槽欄位的屬性date,可以如下
alter table XX add PARTITION p01 VALUES LESS THAN (to_date('2003-1-1','yyyy-mm-dd'))
分割槽欄位的屬性varchar2(20),可以如下
alter table XX add PARTITION p01 VALUES LESS THAN (to_date('2004-1-1','yyyy-mm-dd'))
分割槽表自動分割槽,按每週自動分割槽
alter table tablename set INTERVAL(numtodsinterval(7,'day'));
job裡面下一個工作的17點執行job的設定,不能直接SYSDATE+17/24,SYSDATE+17/24表示每17個小時執行一次
interval=>'TRUNC(SYSDATE+1)+17/24'
dbms_utility.get_time精確到毫秒
獲取前一個操作和後一個操作耗時多少秒
create or replace procedure time_to_s_test as
v_i int;
v_j int;
begin
select dbms_utility.get_time into v_i from dual;
dbms_lock.sleep(5);
select dbms_utility.get_time into v_j from dual;
dbms_output.put_line('開始='||v_i||' 結束='||v_j||' 時間差='||to_char(v_j-v_i)/100);
end;
2016/12/31 10:49:51.263720 +08:00
SELECT SYSTIMESTAMP+0 FROM DUAL;查詢處理的結果當天,預設為sysdate
2016/12/31 10:49:51
SELECT SYSTIMESTAMP+1 FROM DUAL;查詢處理的結果當天,預設為sysdate+1
2017/1/1 10:49:51
select last_day(sysdate) from dual;返回當月最後一天
TO_CHAR函式將日期轉為字元
TO_CHAR(date,’格式’);
select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;//mi是分鐘
select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;//mm欄位的結果顯示為月,而不是顯示為分鐘
select to_char(sysdate,'yyyy') as nowYear from dual; //獲取時間的年
select to_char(sysdate,'mm') as nowMonth from dual; //獲取時間的月
select to_char(sysdate,'dd') as nowDay from dual; //獲取時間的日
select to_char(sysdate,'hh24') as nowHour from dual; //獲取時間的時
select to_char(sysdate,'mi') as nowMinute from dual; //獲取時間的分
select to_char(sysdate,'ss') as nowSecond from dual; //獲取時間的秒
select to_char(sysdate) s1, --返回當前日期,無時分秒
to_char(sysdate,'yyyy-mm-dd') s2, --返回當前日期,無時分秒
to_char(sysdate,'yyyy') s3, --返回當前年份
to_char(sysdate,'yyyy-mm-dd hh12:mi:ss') s4, --返回當前日期時間
to_char(sysdate, 'hh24:mi:ss') s5, --返回當前24小時制時間
to_char(sysdate,'DAY') s6 --返回當前星期
from dual;
select sysdate S1,
trunc(sysdate) S2, --返回當前日期,無時分秒
trunc(sysdate,'year') YEAR, --返回當前年的1月1日,無時分秒
trunc(sysdate,'month') MONTH , --返回當前月的1日,無時分秒
trunc(sysdate,'day') DAY --返回當前星期的星期天,無時分秒
from dual
TO_DATE函式將字元轉換為日期
TO_DATE(char[, '格式'])
SELECT TO_DATE('2006-05-01 19:25:34', 'YYYY-MM-DD HH24:MI:SS') FROM DUAL
SELECT TO_DATE('2006-05-01 19:25', 'YYYY-MM-DD HH24:MI') FROM DUAL
SELECT TO_DATE('2006-05-01 19', 'YYYY-MM-DD HH24') FROM DUAL
SELECT TO_DATE('2006-05-01', 'YYYY-MM-DD') FROM DUAL
SELECT TO_DATE('2006-05', 'YYYY-MM') FROM DUAL
SELECT TO_DATE('2006', 'YYYY') FROM DUAL
select to_date(substr('2016-07-22 08:31:26.672',1,19),'yyyy-mm-dd hh24:mi:ss') from dual
2016/7/22 8:31:26
to_timestamp函式將字元轉換為日期
to_timestamp(char[, '格式'])
select to_timestamp('2016-07-22 08:31:26.672','yyyy-mm-dd hh24:mi:ss.ff3') from dual
2016/7/22 8:31:26.672000000
當前時間+1天的方法有四種如下
select sysdate,sysdate+1 as res from dual;
SELECT SYSTIMESTAMP,SYSTIMESTAMP+1 FROM DUAL;
select sysdate,sysdate+numtodsinterval(1,'day') as res from dual;
select systimestamp,systimestamp+numtodsinterval(1,'day') as res from dual;
當前時間+1年的方法如下
select sysdate,sysdate+numtoyminterval(1,'year') as res from dual;
numtodsinterval(,) ,x是一個數字,c是一個字串,c只能是'DAY'、'HOUR'、'MINUTE'、'SECOND'
numtoyminterval(,) ,x是一個數字,c是一個字串,c只能是'YEAR'、'MONTH'
遇到分割槽表可以直接如下操作如下
分割槽欄位的屬性TIMESTAMP(3)或date,可以如下
alter table XX add PARTITION p01 VALUES LESS THAN (timestamp '2016-08-01 00:00:00.000')
分割槽欄位的屬性date,可以如下
alter table XX add PARTITION p01 VALUES LESS THAN (to_date('2003-1-1','yyyy-mm-dd'))
分割槽欄位的屬性varchar2(20),可以如下
alter table XX add PARTITION p01 VALUES LESS THAN (to_date('2004-1-1','yyyy-mm-dd'))
分割槽表自動分割槽,按每週自動分割槽
alter table tablename set INTERVAL(numtodsinterval(7,'day'));
job裡面下一個工作的17點執行job的設定,不能直接SYSDATE+17/24,SYSDATE+17/24表示每17個小時執行一次
interval=>'TRUNC(SYSDATE+1)+17/24'
dbms_utility.get_time精確到毫秒
獲取前一個操作和後一個操作耗時多少秒
create or replace procedure time_to_s_test as
v_i int;
v_j int;
begin
select dbms_utility.get_time into v_i from dual;
dbms_lock.sleep(5);
select dbms_utility.get_time into v_j from dual;
dbms_output.put_line('開始='||v_i||' 結束='||v_j||' 時間差='||to_char(v_j-v_i)/100);
end;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30126024/viewspace-2131724/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 字元型別轉換成時間型別字元型別
- 各種時間型別的轉換及比較型別
- [時間格式的轉換]
- 轉換UTC時間格式
- JavaScript 時間日期格式轉換JavaScript
- JavaScript 時間轉換為UTC格式JavaScript
- 時間戳格式化轉換時間戳
- 分割槽欄位VALUES LESS THAN時間格式及轉換
- javascript時間戳和時間格式的相互轉換JavaScript時間戳
- Java資料型別及型別轉換Java資料型別
- 有關sql時間型別及格式SQL型別
- 資料型別及轉換資料型別
- Java常用時間格式轉換工具類Java
- UTC格式時間轉換為當地時間程式碼
- 把時間戳之差轉換成時分秒格式時間戳
- 【MySQL】時間型別儲存格式選擇MySql型別
- sqlserver 時間型別 轉化SQLServer型別
- (轉)PLS_INTEGER型別與timestamp型別、date、及時間函式型別函式
- MySQL 時間戳的 獲取 & 轉換為特定時間格式MySql時間戳
- SqlServer時間戳與普通格式的轉換SQLServer時間戳
- C++基本資料型別及型別轉換C++資料型別
- PHP 型別轉換&&型別強制轉換PHP型別
- js時間戳與日期格式的相互轉換JS時間戳
- js將日期格式的時候轉換成時間搓JS
- Java 8型別轉換及改進Java型別
- Java 8 型別轉換及改進Java型別
- java型別轉換與強制型別轉換(轉)Java型別
- js資料型別間的互相轉換JS資料型別
- Java 資料型別之間的轉換Java資料型別
- 字串和Date型別之間的轉換字串型別
- Net任意String格式轉換為DateTime型別型別
- 時間型別型別
- 型別轉換型別
- JavaScript將時間戳轉換為年月日格式JavaScript時間戳
- 直播app原始碼,JAVA8 時間格式轉換APP原始碼Java
- 時間戳轉化為時間格式時間戳
- [基礎] JavaScript 型別轉換及面試題JavaScript型別面試題
- java- 型別-轉換:基本型別以及包裝型別的轉換Java型別