當前位置:首頁 » 編程語言 » sql兩個日期相差數小時
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql兩個日期相差數小時

發布時間: 2023-01-14 19:01:48

sql計算時間差的datediff函數怎麼用

簡單介紹一下datediff()函數。
定義和用法
DATEDIFF() 函數返回兩個日期之間的天數。
語法
DATEDIFF(datepart,startdate,enddate)
startdate 和 enddate 參數是合法的日期表達式。
datepart 參數可以是下列的值:

計算相差的天數:
select DATEDIFF(DAY,'2013-10-12 10:25:52.400','2013-10-19 00:25:52.400') as '時間差'
備註:更改日期後面的時間不影響相差天數的輸出結果

計算相差的小時數:
select DATEDIFF(HOUR,'2013-10-12 10:25:52.400','2013-10-12 23:25:53.400') as '時間差'
備註:分鍾的改變不能影響計算結果

❷ 在Sql語句中怎樣計算出兩個日期的差值

sql語句中計算兩個日期的差值用datediff函數。

工具:sqlserver 2008 R2

步驟:

1、計算2009-06-23與2009-06-17之間的天數。語句如下:

selectdatediff(d,'2009-06-17','2009-06-23')

2、查詢結果:

❸ 查詢兩個日期的時間差(精確到小時),同時剔除日期之間的周六周日,SQL語句怎麼寫

先創建一個函數計算時間差
Alter function dbo.fn_test(@begin datetime,@end datetime)
returns int
As
BEGIN
declare @i int,@j int
set @i=0
set @j=0
if @end<@begin
begin
declare @t datetime
set @t=@end
set @end=@begin
set @begin=@t
end
while dateadd(hh,@i,@begin) <@end
begin
if datepart(weekday,dateadd(hh,@i,@begin)) not in(1,7)
set @j=@j+1
set @i=@i+1
end
return @j
end
調用函數
select dbo.fn_test(@begin,@end)

❹ sql怎麼計算時間差

返回跨兩個指定日期的日期和時間邊界數。

語法

DATEDIFF(datepart,startdate,enddate)

參數

datepart

❺ 關於SQL兩個時間計算出間隔時間的問題。

declare@DMtimeint
declare@Dvarchar(10)
declare@Hvarchar(10)
declare@Mvarchar(10)
declare@Svarchar(10)
set@DMtime=DATEDIFF(SECOND,'2013-08-2016:40:23','2013-08-2416:05:05')
--獲取兩個時間段的秒的相差值
set@D=@DMtime/(3600*24)--天數
set@H=(@DMtime-@D*3600*24)/3600--小時
set@M=(@DMtime-@D*3600*24-@H*3600)/60--分鍾
set@S=@DMtime-@D*3600*24-@H*3600-@M*60--秒
select@D+N'天
小時
分鍾
秒'

效果圖如下:

❻ SQL 計算時間差問題,要精確到天小時分鍾.

select
datediff(day,GETDATE(),getdate())--天數差
select
DATEDIFF
(HOUR,GETDATE()-2,getdate())
--小時差
值/24,就是天
select
DATEDIFF
(MINUTE,GETDATE()-2,getdate())
--倆個日期的分鍾差,值/24,天數差,余值/60,小時差,余數為分鍾。

❼ 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表名

剛才測試了一下:結果如下

有問題歡迎追問

❽ 請問mysql的sql中如何計算兩個datetime的差,精確到小時,謝謝



TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)

返回日期或日期時間表達式datetime_expr1和datetime_expr2the之間的整數差。
其結果的單位由interval參數給出。該參數必須是以下值的其中一個:

FRAC_SECOND表示間隔是毫秒
SECOND秒
MINUTE分鍾
HOUR小時
DAY天
WEEK星期
MONTH月
QUARTER季度
YEAR年SELECT'年'AS`日期部分`,TIMESTAMPDIFF(YEAR,'2012-12-21',CURRENT_TIMESTAMP())AS`數值`
UNIONALL
SELECT'季度'AS`日期部分`,TIMESTAMPDIFF(QUARTER,'2012-12-21',CURRENT_TIMESTAMP())AS`數值`
UNIONALL
SELECT'月'AS`日期部分`,TIMESTAMPDIFF(MONTH,'2012-12-21',CURRENT_TIMESTAMP())AS`數值`
UNIONALL
SELECT'日'AS`日期部分`,TIMESTAMPDIFF(DAY,'2012-12-21',CURRENT_TIMESTAMP())AS`數值`
UNIONALL
SELECT'周'AS`日期部分`,TIMESTAMPDIFF(WEEK,'2012-12-21',CURRENT_TIMESTAMP())AS`數值`
UNIONALL
SELECT'時'AS`日期部分`,TIMESTAMPDIFF(HOUR,'2012-12-21',CURRENT_TIMESTAMP())AS`數值`
UNIONALL
SELECT'分'AS`日期部分`,TIMESTAMPDIFF(MINUTE,'2012-12-21',CURRENT_TIMESTAMP())AS`數值`
UNIONALL
SELECT'秒'AS`日期部分`,TIMESTAMPDIFF(SECOND,'2012-12-21',CURRENT_TIMESTAMP())AS`數值`
;


+----------+----------+
|日期部分|數值|
+----------+----------+
|年|1|
|季度|4|
|月|12|
|日|388|
|周|55|
|時|9328|
|分|559737|
|秒|33584279|
+----------+----------+
8rowsinset(0.00sec)


mysql>selectCURRENT_TIMESTAMP();
+---------------------+
|CURRENT_TIMESTAMP()|
+---------------------+
|2014-01-1316:58:17|
+---------------------+
1rowinset(0.00sec)

❾ sql計算時間差的datediff函數怎麼用

簡單介紹一下datediff()函數。
定義和用法
DATEDIFF()
函數返回兩個日期之間的天數。
語法
DATEDIFF(datepart,startdate,enddate)
startdate

enddate
參數是合法的日期表達式。
datepart
參數可以是下列的值:
計算相差的天數:
select
DATEDIFF(DAY,'2013-10-12
10:25:52.400','2013-10-19
00:25:52.400')
as
'時間差'
備註:更改日期後面的時間不影響相差天數的輸出結果
計算相差的小時數:
select
DATEDIFF(HOUR,'2013-10-12
10:25:52.400','2013-10-12
23:25:53.400')
as
'時間差'
備註:分鍾的改變不能影響計算結果

❿ 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;