當前位置:九游会j9娱乐平台-九游ag登录中心网址 » 編程語言 » oraclesql計算時間差

oraclesql計算時間差-九游会j9娱乐平台

發布時間: 2024-07-04 03:09:11

『壹』 oracel sql語句 兩時間欄位求差

兩個date類型欄位:start_date,end_date,計算這兩個日期的時間差(分別以天,小時,分鍾,秒,毫秒):

天:

round(to_number(end_date - start_date))

小時:

round(to_number(end_date - start_date) * 24)

分鍾:

round(to_number(end_date - start_date) * 24 * 60)

秒:

round(to_number(end_date - start_date) * 24 * 60 * 60)

毫秒:

round(to_number(end_date - start_date) * 24 * 60 * 60 * 1000)

oracle計算時間差函數 2008-08-20 10:00 兩個date類型欄位:start_date,end_date,計算這兩個日期的時間差(分別以天,小時,分鍾,秒,毫秒): 天: round(to_number(end_date - start_date)) 小時: round(to_number(end_date - start_date) * 24) 分鍾: round(to_number(end_date - start_date) * 24 * 60) 秒: round(to_number(end_date - start_date) * 24 * 60 * 60) 毫秒: round(to_number(end_date - start_date) * 24 * 60 * 60 * 1000)

外加to_date與to_char函數:

oracle中:
select to_date('2007-06-28 19:51:20','yyyy-mm-dd hh24:mi:ss') from al;
一般sql中:
select to_date('2007-06-28 19:51:20','yyyy-mm-dd hh:mm:ss') from al;
區別:
1、hh修改為hh24。
2、分鍾的mm修改為mi。

24 小時的形式顯示出來要用 hh24

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from al;

select to_date('2005-01-01 13:14:20','yyyy-mm-dd hh24:mi:ss') from al;

to_date() function

1. 日期格式參數 含義說明

d 一周中的星期幾

day 天的名字,使用空格填充到 9 個字元

dd 月中的第幾天

ddd 年中的第幾天

dy 天的簡寫名

iw iso 標準的年中的第幾周

iyyy iso 標準的四位年份

yyyy 四位年份

yyy,yy,y 年份的最後三位,兩位,一位

hh 小時,按 12 小時計

hh24 小時,按 24 小時計

mi 分

ss 秒

mm 月

mon 月份的簡寫

month 月份的全名

w 該月的第幾個星期

ww 年中的第幾個星期 1. 日期時間間隔操作

當前時間減去 7 分鍾的時間

select sysdate,sysdate - interval '7' minute from al

當前時間減去 7 小時的時間

select sysdate - interval '7' hour from al

當前時間減去 7 天的時間

select sysdate - interval '7' day from al

當前時間減去 7 月的時間

select sysdate,sysdate - interval '7' month from al

當前時間減去 7 年的時間

select sysdate,sysdate - interval '7' year from al

時間間隔乘以一個數字

select sysdate,sysdate - 8 *interval '2' hour from al

2. 日期到字元操作

select sysdate,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from al

select sysdate,to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from al

select sysdate,to_char(sysdate,'yyyy-ddd hh:mi:ss') from al

select sysdate,to_char(sysdate,'yyyy-mm iw-d hh:mi:ss') from al

參考 oracle 的相關關文檔 (oracle901doc/server.901/a90125/sql_elements4.htm#48515)

3. 字元到日期操作

select to_date('2003-10-17 21:15:37','yyyy-mm-dd hh24:mi:ss') from al

具體用法和上面的 to_char 差不多。

4.to_number
使用to_number函數將字元轉換為數字
to_number(char[, '格式'])

數字格式格式
9 代表一個數字
0 強制顯示0
$ 放置一個$符
l 放置一個浮動本地貨幣符
. 顯示小數點
, 顯示千位指示符

oracle中的to_date參數含義

1.日期格式參數含義說明
d 一周中的星期幾
day 天的名字,使用空格填充到9個字元
dd 月中的第幾天
ddd 年中的第幾天
dy 天的簡寫名
iw iso標準的年中的第幾周
iyyy iso標準的四位年份
yyyy 四位年份
yyy,yy,y 年份的最後三位,兩位,一位
hh 小時,按12小時計
hh24 小時,按24小時計
mi 分
ss 秒
mm 月
mon 月份的簡寫
month 月份的全名
w 該月的第幾個星期
ww 年中的第幾個星期 1.日期時間間隔操作
當前時間減去7分鍾的時間
select sysdate,sysdate - interval 』7』 minute from al
當前時間減去7小時的時間
select sysdate - interval 』7』 hour from al
當前時間減去7天的時間
select sysdate - interval 』7』 day from al
當前時間減去7月的時間
select sysdate,sysdate - interval 』7』 month from al
當前時間減去7年的時間
select sysdate,sysdate - interval 』7』 year from al
時間間隔乘以一個數字
select sysdate,sysdate - 8 *interval 』2』 hour from al
2.日期到字元操作
select sysdate,to_char(sysdate,』yyyy-mm-dd hh24:mi:ss』) from al
select sysdate,to_char(sysdate,』yyyy-mm-dd hh:mi:ss』) from al
select sysdate,to_char(sysdate,』yyyy-ddd hh:mi:ss』) from al
select sysdate,to_char(sysdate,』yyyy-mm iw-d hh:mi:ss』) from al
參考oracle的相關關文檔(oracle901doc/server.901/a90125/sql_elements4.htm#48515)
3. 字元到日期操作
select to_date(』2003-10-17 21:15:37』,』yyyy-mm-dd hh24:mi:ss』) from al
具體用法和上面的to_char差不多。
4. trunk/ round函數的使用
select trunc(sysdate ,』year』) from al
select trunc(sysdate ) from al
select to_char(trunc(sysdate ,』yyyy』),』yyyy』) from al
5.oracle有毫秒級的數據類型
--返回當前時間 年月日小時分秒毫秒
select to_char(current_timestamp(5),』dd-mon-yyyy hh24:mi:ssxff』) from al;
--返回當前時間的秒毫秒,可以指定秒後面的精度(最大=9)
select to_char(current_timestamp(9),』mi:ssxff』) from al;
6.計算程序運行的時間(ms)
declare
type rc is ref cursor;
l_rc rc;
l_mmy all_objects.object_name%type;
l_start number default dbms_utility.get_time;
begin
for i in 1 .. 1000 loop
open l_rc for 'select object_name from all_objects '|| 'where object_id = ' || i;
fetch l_rc into l_mmy;
close l_rc;
end loop;
dbms_output.put_line ( round( (dbms_utility.get_time-l_start)/100, 2 ) ||' seconds ...' );
end;

『貳』 請教oracle中用sql時間相減的問題

這個問題。。。。
給你個詳細的回答吧 以後就不再擔憂這方面的任何問題

oracle計算時間差表達式

--獲取兩時間的相差豪秒數
select ceil((to_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - to_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss')) * 24 * 60 * 60 * 1000) 相差豪秒數 from dual;
/*
相差豪秒數
----------
86401000
1 row selected
*/

--獲取兩時間的相差秒數
select ceil((to_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - to_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss')) * 24 * 60 * 60) 相差秒數 from dual;
/*
相差秒數
----------
86401
1 row selected
*/

--獲取兩時間的相差分鍾數
select ceil(((to_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - to_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss'))) * 24 * 60) 相差分鍾數 from dual;
/*
相差分鍾數
----------
1441
1 row selected
*/

--獲取兩時間的相差小時數
select ceil((to_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - to_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss')) * 24) 相差小時數 from dual;
/*
相差小時數
----------
25
1 row selected
*/

--獲取兩時間的相差天數
select ceil((to_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - to_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss'))) 相差天數 from dual;
/*
相差天數
----------
2
1 row selected
*/

----------------------------------------
註:天數可以2個日期直接減,這樣更加方便
----------------------------------------

--獲取兩時間月份差
select (extract(year from to_date('2009-05-01','yyyy-mm-dd')) - extract(year from to_date('2008-04-30','yyyy-mm-dd'))) * 12
extract(month from to_date('2008-05-01','yyyy-mm-dd')) - extract(month from to_date('2008-04-30','yyyy-mm-dd')) months
from al;
/*
months
----------
13
1 row selected
*/

--------------------------------------
註:可以使用months_between函數,更加方便
--------------------------------------

--獲取兩時間年份差
select extract(year from to_date('2009-05-01','yyyy-mm-dd')) - extract(year from to_date('2008-04-30','yyyy-mm-dd')) years from al;
/*
years
----------
1
1 row selected

『叄』 用sql語句怎麼寫時間差少於18秒

sql中有個時間函數叫datediff(),用來計算時間差, 可以這樣計算出差值,然後將差值轉換成秒進行比較.
還有一種變通的方法,利用dateadd()函數,他表示在一個日期值的基礎上加上一個間隔,返回另一個日期值,你可以通過這個函數,給第一個日期加上18秒,然後和第二個日期比較.
datadiff(operate_date, dateadd(operate_date,00:00:18)))>0 這樣來判斷,
(00:00:18這個寫法不知道有沒有錯,很久沒寫過時間類型的東西了,望見諒).

『肆』 sql時間差的計算

這是oracle是sql2000的?
給個oracle的例子:
select floor(to_number(to_date(20110621100000,'yyyymmdd hh24:mi:ss')-to_date(20110621095505,'yyyymmdd hh24:mi:ss'))*24*60) from al;

熱點內容
resin下jsp不能正常編譯 發布:2024-07-17 16:34:44 瀏覽:229
sqlserver如何切換主備伺服器 發布:2024-07-17 16:23:02 瀏覽:299
mc18伺服器ip 發布:2024-07-17 16:23:02 瀏覽:379
仙境傳說手游腳本 發布:2024-07-17 16:09:24 瀏覽:691
matlab命令窗口和新建腳本 發布:2024-07-17 15:51:26 瀏覽:375
建ftp文件夾 發布:2024-07-17 15:51:26 瀏覽:955
魔獸撿物腳本 發布:2024-07-17 15:27:56 瀏覽:130
開發ip伺服器 發布:2024-07-17 15:24:42 瀏覽:388
安卓系統視頻製作哪個好用 發布:2024-07-17 15:10:47 瀏覽:210
androidapk結構 發布:2024-07-17 15:10:43 瀏覽:945
网站地图