『壹』 sql 計算時間差得到時分秒。
declare @day int
declare @hour int
declare @min int
declare @sec int
declare @alls int
set @alls=datediff(s,'2009-11-21 00:00:00','2009-11-24 15:12:24')
set @day=@alls/86400
set @hour=(@alls-@day*86400)/3600
set @min=(@alls-@day*86400-@hour*3600)/60
set @sec=@alls-@day*86400-@hour*3600-@min*60
select CAST(@day as varchar(5))+'天'+CAST(@hour as varchar(2))+'小時'+CAST(@min as varchar(2))+'分'+CAST(@sec as varchar(2))+'秒'
『貳』 ORACEL的sql語句兩時間欄位求差怎麼操作
直接計算兩個欄位時間的相差即可;代碼(select * from XX where DATEDIFF(d,'2009-1-1','2009-1-2')>60);
『叄』 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;
『肆』 在SQL資料庫中如何計算兩個時間的差值請寫詳細語句和過程!!
DATEDIFF(datepart,startdate,enddate)比如:SELECT DATEDIFF(day,'2008-12-29','2008-12-30') AS DiffDate得到結果是1 datepart 參數可以是下列的值:datepart縮寫年yy, yyyy季度qq, q月mm, m年中的日dy, y日dd, d周wk, ww星期dw, w小時hh分鍾mi, n秒ss, s毫秒ms微妙mcs納秒ns
『伍』 SQL 計算時間差問題,要精確到天小時分鍾.
什麼資料庫啊?
sqlserver
selectcast(floor(datediff(minute,時間1,時間2)/1440)asvarchar)+'天'+
cast(floor((datediff(minute,時間1,時間2)%1440)/60)asvarchar)+'小時'+
cast(((datediff(minute,時間1,時間2))-
(floor(datediff(minute,時間1,時間2)/1440)*1440)-
(floor((datediff(minute,時間1,時間2)%1440)/60)*60))asvarchar)+'分'
from表名
剛才測試了一下:結果如下
有問題歡迎追問
『陸』 sql資料庫怎麼獲取兩個時間相差的分鍾數
datediff( [day], time, getdate())
『柒』 用SQL語句怎麼寫時間差
select to_date('20070506','yyyymmdd') - to_date('20070203','yyyymmdd') from al;
這樣查詢出來是兩個時間的差值——以天為單位的,如果需要以小時為單位的,在減法外面加個括弧,再乘以24就可以了,其他時間單位的,自己類推。
可以這樣直接減,是因為oracle在存儲date型時間的時候,內部是使用數字存儲的,所以可以直接減,如果是用timestamp型時間,可能不可以直接減
『捌』 oracle plsql 怎麼在一個集合里做時間差值運算
也就是上一行,當然如果本身沒有排序,那麼你的前面應該有id欄位按照id欄位計算就可以了。
上一行有一個函數lead,那麼我們就可以操作了
首次任務開始時間- lead(首次任務完成時間, 1, null) over(order by 首次開始完成時間)
如果不能直接操作,那麼就先 lead(首次任務完成時間, 1, null) over(order by 首次開始完成時間)查出來,然後取個別名再操作就好了。
如果是以前的不管,也是這么操作,後面加上where條件就行。
當然如果你的開始時間和結束時間是分開寫的,那麼也可以直接用max來寫,當然前提是你的開始時間和結束時間不是同事寫入表中的,不然你可能需要在過程中才能計算(我說的過程就是記錄開始時間的那個地方)。
『玖』 sql求時間差,精確到秒分時
多行記錄做這樣的時間差值計算思路:
要將簽入和簽出配對處理,然後才能求出時間差值
或使用隱式游標進行處理,可以求出上一行記錄和下一行記錄的時間差值,但SQL語句極其晦澀難懂。
SQL計算秒的差值為:
selectdatediff(ss,'2019-01-0102:03:04',getdate())
『拾』 sql怎麼計算時間差
返回跨兩個指定日期的日期和時間邊界數。
語法
DATEDIFF(datepart,startdate,enddate)
參數
datepart