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

sql時間差函數

發布時間: 2022-02-25 19:59:12

『壹』 sql怎麼計算時間差

DATEDIFF(mi,開始時間,結束時間)
這個函數可以算出會話時間,mi代表分鍾,
1。兩張表匹配下,sum(算出的會話時間)即可
2.select
訪問客戶,sum(算出的會話時間)
from
...
group
by
訪問客戶
3.用agv(算出的會話時間)
即可
4.select
訪問客戶,agv(算出的會話時間)
from
...
group
by
訪問客戶

『貳』 sql求日期差函數

select
@diffdate=select
datediff(month,'2005-4-10','2005-7-10')
這里改成:
select
@diffdate=(select
datediff(month,'2005-4-10','2005-7-10'))
增加一個括弧而已.
以上,完畢

『叄』 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;

『肆』 SQL 時間差計算

同一個ID有可能存在多次登陸和登出
用嵌套

--> --> (Roy)生成測試數據

declare @T table([UserID] int,[OnP] nvarchar(3),[OnTime] Datetime)
Insert @T
select 1,N'on','2007-7-1 7:00' union all
select 1,N'off','2007-7-1 8:00' union all
select 2,N'on','2007-8-9 12:45' union all
select 3,N'on','2007-8-9 13:50' union all
select 2,N'off','2007-8-9 16:11' union all
select 3,N'off','2007-9-1 14:00' union all
select 4,N'on','2008-10-1 3:00'

select
[UserID],sum(時間) as 時間
from
(Select [UserID],
datediff(hh,[OnTime],
(select isnull(min([OnTime]),getdate()) from @T where [OnTime]>t.[OnTime] and [OnP]='off')) as 時間
from
@T t
where [OnP]='on')ta
group by [UserID]

『伍』 SQL是計算兩個日期相差多少天數的函數

SQL是高級的非過程化編程語言,一般針對資料庫進行操作。

定義:datediff(day/month/year,startdate,enddate)

日期函數:(要返回的天數/月數/年數,開始日期,結束日期)

具體形式:
select 1,2,datediff(day,1,2) 天數 from aa

『陸』 Sql 計算時間差

ASP日期函數
作者:未知 來源:未知 發表時間:115038-11-10 編輯:林燦聲 人氣: 129
Date 函數
描述:返回當前系統日期。
語法:Date

DateAdd 函數
描述:返回已添加指定時間間隔的日期。
語法:DateAdd(interval, number, date)
interval: 必選。字元串表達式,表示要添加的時間間隔。有關數值,請參閱「設置」部分。
number: 必選。數值表達式,表示要添加的時間間隔的個數。數值表達式可以是正數(得到未來的日期)或負數(得到過去的日期)。
date: 必選。Variant 或要添加 interval 的表示日期的文字。
interval 參數可以有以下值:
yyyy (年) 、q (季度) 、m (月) 、y (一年的日數) 、d (日) 、w (一周的日數) 、ww (周) 、h (小時) 、n (分鍾) 、s (秒)
說明:可用 DateAdd 函數從日期中添加或減去指定時間間隔。例如可以使用 DateAdd 從當天算起 30 天以後的日期或從現在算起 45 分鍾以後的時間。要向 date 添加以「日」為單位的時間間隔,可以使用「一年的日數」(「y」)、「日」(「d」)或「一周的日數」(「w」)。
DateAdd 函數不會返回無效日期。如下示例將 95 年 1 月 31 日加上一個月:
NewDate = DateAdd("m", 1, "31-Jan-95")
在這個例子中,DateAdd 返回 95 年 2 月 28 日,而不是 95 年 2 月 31 日。如果 date 為 96 年 1 月 31 日,則返回 96 年 2 月 29 日,這是因為 1996 是閏年。
如果計算的日期是在公元 100 年之前則會產生錯誤。
如果 number 不是 Long 型值,則在計算前四捨五入為最接近的整數。

DateDiff 函數
描述:返回兩個日期之間的時間間隔。
語法:DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear>)
interval: 必選。字元串表達式,表示用於計算 date1 和 date2 之間的時間間隔。有關數值,請參閱「設置」部分。
date1, date2: 必選。日期表達式。用於計算的兩個日期。
firstdayofweek: 可選。指定星期中第一天的常數。如果沒有指定,則默認為星期日。有關數值,請參閱「設置」部分。
firstweekofyear: 可選。指定一年中第一周的常數。如果沒有指定,則默認為 1 月 1 日所在的星期。有關數值,請參閱「設置」部分。
interval 參數可以有以下值:
yyyy (年) 、q (季度) 、m (月) 、y (一年的日數) 、d (日) 、w (一周的日數) 、ww (周) 、h (小時) 、n (分鍾) 、s (秒)
firstdayofweek 參數可以有以下值:
(以下分別為:常數 值 描述)
vbUseSystem 0 使用區域語言支持 (NLS) API 設置。
vbSunday 1 星期日(默認)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
firstweekofyear 參數可以有以下值:
(以下分別為:常數 值 描述)
vbUseSystem 0 使用區域語言支持 (NLS) API 設置。
vbFirstJan1 1 由 1 月 1 日所在的星期開始(默認)。
vbFirstFourDays 2 由在新年中至少有四天的第一周開始。
vbFirstFullWeek 3 由在新的一年中第一個完整的周開始。
說明:DateDiff 函數用於判斷在兩個日期之間存在的指定時間間隔的數目。例如可以使用 DateDiff 計算兩個日期相差的天數,或者當天到當年最後一天之間的星期數。
要計算 date1 和 date2 相差的天數,可以使用「一年的日數」(「y」)或「日」(「d」)。當 interval 為「一周的日數」(「w」)時,DateDiff 返回兩個日期之間的星期數。如果 date1 是星期一,則 DateDiff 計算到 date2 之前星期一的數目。此結果包含 date2 而不包含 date1。如果 interval 是「周」(「ww」),則 DateDiff 函數返回日歷表中兩個日期之間的星期數。函數計算 date1 和 date2 之間星期日的數目。如果 date2 是星期日,DateDiff 將計算 date2,但即使 date1 是星期日,也不會計算 date1。
如果 date1 晚於 date2,則 DateDiff 函數返回負數。
firstdayofweek 參數會對使用「w」和「ww」間隔符號的計算產生影響。
如果 date1 或 date2 是日期文字,則指定的年度會成為日期的固定部分。但是如果 date1 或 date2 被包括在引號 (" ") 中並且省略年份,則在代碼中每次計算 date1 或 date2 表達式時,將插入當前年份。這樣就可以編寫適用於不同年份的程序代碼。
在 interval 為「年」(「yyyy」)時,比較 12 月 31 日和來年的 1 月 1 日,雖然實際上只相差一天,DateDiff 返回 1 表示相差一個年份。

DatePart 函數
描述:返回給定日期的指定部分。
語法:DatePart(interval, date[, firstdayofweek[, firstweekofyear>)
DatePart: 函數的語法有以下參數:
interval: 必選。字元串表達式,表示要返回的時間間隔。有關數值,請參閱「設置」部分。
date: 必選。要計算的日期表達式。
firstdayof week: 可選。指定星期中的第一天的常數。如果沒有指定,則默認為星期日。有關數值,請參閱「設置」部分。
firstweekofyear: 可選。指定一年中第一周的常數。如果沒有指定,則默認為 1 月 1 日所在的星期。有關數值,請參閱「設置」部分。
interval 參數可以有以下值:
yyyy (年) 、q (季度) 、m (月) 、y (一年的日數) 、d (日) 、w (一周的日數) 、ww (周) 、h (小時) 、n (分鍾) 、s (秒)
firstdayofweek 參數可以有以下值:
(以下分別為:常數 值 描述)
vbUseSystem 0 使用區域語言支持 (NLS) API 設置。
vbSunday 1 星期日(默認)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
firstweekofyear 參數可以有以下值:
(以下分別為:常數 值 描述)
vbUseSystem 0 使用區域語言支持 (NLS) API 設置。
vbFirstJan1 1 由 1 月 1 日所在的星期開始(默認)。
vbFirstFourDays 2 由在新年中至少有四天的第一周開始。
vbFirstFullWeek 3 由在新的一年中第一個完整的周(不跨年度)開始。
說明:DatePart 函數用於計算日期並返回指定的時間間隔。例如使用 DatePart 計算某一天是星期幾或當前的時間。
firstdayofweek 參數會影響使用「w」和「ww」間隔符號的計算。
如果 date 是日期文字,則指定的年度會成為日期的固定部分。但是如果 date 被包含在引號 (" ") 中,並且省略年份,則在代碼中每次計算 date 表達式時,將插入當前年份。這樣就可以編寫適用於不同年份的程序代碼

『柒』 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算時間差的函數 我查詢datatime的間隔大於30秒,則列出這2條記錄,哪位大俠會啊,在線等!!!。。。

如果是指對兩條連續的記錄對比是否大於30秒,則如下:
declare @i int,@n int
set @i=1
select @n=count(*) from 表
--建立一個臨時表存放結果
select top 0 id into #tmp1 from 表
--循環判斷
while @i<@n
begin
if exists(select 1 from (select datetime from 表 where id=@i) a,(select datetime from 表 where id=@i+1 ) b where datediff(ss,a.datetime,b.datetime)>30)
begin
insert into #tmp1
select id from 表 where (id=@i or id=@i+1) and id not in (select id from #tmp1)
end
set @i=@i+1
end
--顯示結果
select * from 表 where id in (select id from #tmp1) order by id
--刪除臨時表
drop table #tmp1
/* 又改了一下,覺得這樣會更好。
這么寫的目的是:
1、也許會有很多對兒 連續的記錄差大於30秒
2、最終結果集里,兩個ID連續的就是一對兒差大於30秒的記錄
中意不,中意就採用吧,不明白就私信。*/

『玖』 用SQL語句怎麼寫時間差

select to_date('20070506','yyyymmdd') - to_date('20070203','yyyymmdd') from al;
這樣查詢出來是兩個時間的差值——以天為單位的,如果需要以小時為單位的,在減法外面加個括弧,再乘以24就可以了,其他時間單位的,自己類推。

可以這樣直接減,是因為oracle在存儲date型時間的時候,內部是使用數字存儲的,所以可以直接減,如果是用timestamp型時間,可能不可以直接減

『拾』 SQL資料庫時間差

先給此表增加一個數字類型的列「Diff」,然執行如下sql語句:
update
[表名]
set
[diff]=datediff(day,[A日期列],[B日期列])
datediff函數的第一個參數設置為day時,計算的是兩個日期以天為單位的差數,設置為month、year時以此類推。