Ⅰ mssql計算兩個日期時間間隔多少分鍾
如果是求間隔的天數,但第一天不算,最後一天也不算入,則辦法如下:
1.同一月份,用日期數相減再減1,如1月2日到1月4日(0:00),4-2-1=1(天),只間隔了一天(1月3日)。
2.不同月份,則算出起始日期至月底的天數,再加上剩餘的月份的天數(如果是下個月則不用),再加上截止月的月初至截止日期的天數再減一,如3月2日到5月5日(0:00),31-2+30+5-1=63(天),間隔了3月3日到3月31日的29天,四月份的30天,1日到4日的4天。共63天。
如果是求求間隔的天數,但第一天不算,最後一天算入則辦法如下:
1.同一月份,用日期數相減,如1月2日到1月4日,4-2=2(天),間隔了兩天(1月3日和1月四號)。
2.不同月份,則算出起始日期至月底的天數,再加上剩餘的月份的天數(如果是下個月則不用),再加上截止月的月初至截止日期的天數,如3月2日到5月5日,
31-2+30+5=64(天),間隔了3月3日到3月31日的29天,四月份的30天,1日到5日的5天。共64天。
Ⅱ sql時間運算的問題,
時間運算用datediff函數,不過純粹就只有時間是得到不到正確結果的,你的00:00誰知道是前天的還是現在的?必須是一個完整的時間,比如:2008-8-8
00:00:00(後面的時分秒可以根據需要,但前面的日期一定不能省了)
比如有2個時間欄位A和B,現在要計算A和B的時間差:
SELECT
datediff('n',B,C)
from
tb
--datediff里的第一個參數是計算2個時間的時間差的時間間隔
參數的設定值如下:
設置
描述
yyyy
年
q
季
m
月
y
一年的日數
d
日
w
一周的日數
ww
周
h
時
n
分鍾
s
秒
如果你要計算的是具體的時間差,可以先計算出差多少分鍾,然後在把獲得的分鍾除以60,得到的整數就是小時,余數就是分鍾了.
Ⅲ SQL怎樣找出兩個時間的間隔,並把周末排除在外,精確到小時!急求代碼和思路
2個日期可以用datediff函數得到差值,但是要去掉周末,這個如果用sql,那麼就只能自己寫個函數了,這種東西建議你直接讀取到程序里處理可能會更方便。
Ⅳ 怎麼用SQL語句計算時間間隔
DATEDIFF
返回跨兩個指定日期的日期和時間邊界數。
語法
DATEDIFF ( datepart ,startdate ,enddate )
參數
datepart
是規定了應在日期的哪一部分計算差額的參數。下表列出了 Microsoft® SQL Server™ 識別的日期部分和縮寫。
日期部分縮寫
year yy, yyyy
quarter qq, q
Month mm, m
dayofyear dy, y
Day dd, d
Week wk, ww
Hour hh
minute mi, n
second ss, s
millisecond ms
startdate
是計算的開始日期。startdate 是返回 datetime 或 smalldatetime 值或日期格式字元串的表達式。
因為 smalldatetime 只精確到分鍾,所以當用 smalldatetime 值時,秒和毫秒總是 0。
如果您只指定年份的最後兩位數字,則小於或等於"兩位數年份截止期"配置選項的值的最後兩位數字的數字所在世紀與截止年所在世紀相同。大於該選項的值的最後兩位數字的數字所在世紀為截止年所在世紀的前一個世紀。例如,如果 two digit year cutoff 為 2049(默認),則 49 被解釋為 2049,2050 被解釋為 1950。為避免模糊,請使用四位數的年份。
有關時間值指定的更多信息,請參見時間格式。有關日期指定的更多信息,請參見 datetime 和 smalldatetime。
enddate
是計算的終止日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字元串的表達式。
返回類型
integer
注釋
startdate 是從 enddate 減去。如果 startdate 比 enddate 晚,返回負值。
當結果超出整數值范圍,DATEDIFF 產生錯誤。對於毫秒,最大數是 24 天 20 小時 31 分鍾零 23.647 秒。對於秒,最大數是 68 年。
計算跨分鍾、秒和毫秒這些邊界的方法,使得 DATEDIFF 給出的結果在全部數據類型中是一致的。結果是帶正負號的整數值,其等於跨第一個和第二個日期間的 datepart 邊界數。例如,在 1 月 4 日(星期日)和 1 月 11 日(星期日)之間的星期數是 1。
示例
此示例確定在 pubs 資料庫中標題發布日期和當前日期間的天數。
USE pubs
GO
SELECT DATEDIFF(day, pubdate, getdate()) AS no_of_days
FROM titles
GO
Ⅳ 在Sql語句中怎樣計算出兩個日期的差值
sql語句中計算兩個日期的差值用datediff函數。
工具:sqlserver 2008 R2
步驟:
1、計算2009-06-23與2009-06-17之間的天數。語句如下:
selectdatediff(d,'2009-06-17','2009-06-23')
2、查詢結果:
Ⅵ 利用SQL語句如何獲得兩個日期之間相差的天數
用sysdate假設結束日期欄位是end_date
添加這個判斷條件:
where to_char("end_date",'YYYY') = to_char(sysdate,'YYYY') 判斷年相同
and to_char("end_date",'MM') = to_char(sysdate,'MM') 判斷月相同
and to_char("end_date",'dd') - to_char(sysdate,'dd') = 15 判斷日相同
或者:
where to_char("end_date",'YYYY-MM-DD') - to_char(sysdate,'YYYY-MM-DD')=15
(6)sql怎樣計算兩個時間間隔擴展閱讀:
注意事項
DATEDIFF返回跨兩個指定日期的日期和時間邊界數。
語法:DATEDIFF ( datepart , startdate , enddate )
參數:datepart
是規定了應在日期的哪一部分計算差額的參數。下表列出了 Microsoft® SQL Server™ 識別的日期部分和縮寫。
startdate是返回datetime或smalldatetime值或日期格式字元串的表達式。 因為smalldatetime只精確到分鍾,所以當用smalldatetime值時,秒和毫秒總是 0。
如果只指定年份的最後兩位數字,則小於或等於"兩位數年份截止期"配置選項的值的最後兩位數字的數字所在世紀與截止年所在世紀相同。大於該選項的值的最後兩位數字的數字所在世紀為截止年所在世紀的前一個世紀。例如,如果 two digit year cutoff 為 2049(默認),則 49 被解釋為 2049,2050 被解釋為 1950。為避免模糊,請使用四位數的年份。
有關時間值指定的更多信息,請參見時間格式。有關日期指定的更多信息,請參見 datetime 和 smalldatetime。
enddate是計算的終止日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字元串的表達式。
返回類型:integer
注釋:startdate 是從 enddate 減去。如果 startdate 比 enddate 晚,返回負值。當結果超出整數值范圍,DATEDIFF 產生錯誤。對於毫秒,最大數是 24 天 20 小時 31 分鍾零 23.647 秒。對於秒,最大數是 68 年。
Ⅶ 關於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語句求2個時間段的間隔
SELECT DATEDIFF(Hour, '8:30','14:23')
Ⅸ 如何寫計算兩個時間(含小時分鍾秒)間隔的sql
select datediff(day,前時間,後時間)
day是參數,求前時間和後時間之間的天數差異。
這個參數還可以是year,month,day,hour,min,ss
Ⅹ sql語句中可以查詢兩個日期之間的天數么
select datediff('2009-1-1', '2008-1-1');
用datediff函數,第一個參數是截止時間,第二個參數是起始時間
不好意思,剛才的是mysql,剛看了下sql的文檔發現有點區別- -,sql的話,用下面的形式:
DATEDIFF ( datepart , startdate , enddate )
所以你要求2個日期之間間隔的天數,這樣寫:
datediff( dd, '2008/1/1', '2009/1/2' )
這里的dd表示計算天數差