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

2022-03-02 17:38:41 字數 4302 閱讀 2438

1樓:厙曼冬

直接相減是秒數,然後/60/60/24取整就是天,然後小數部分乘24再取整就是小時,然後小數部分乘60再取整就是分,然後小數部分乘60就是秒了

假設本題相減後:

to_date('2013-08-24 16:05:05','yyyy-mm-dd hh24:mi:ss')

-to_date('20132013-08-20 16:40:23','yyyy-mm-dd hh24:mi:ss'))

為x秒,則:

select to_char(floor(x/60/60/24))||'天'||to_char(floor((x/60/60/24-floor(x/60/60/24))*24))||'小時'||..........

2樓:小遊

declare @dmtime int

declare @d varchar(10)

declare @h varchar(10)

declare @m varchar(10)

declare @s varchar(10)

set @dmtime=datediff(second,'2013-08-20 16:40:23','2013-08-24 16: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'天

小時分鐘

秒'效果圖如下:

3樓:匿名使用者

用datediff(second, @startdate, @enddate)計算出時間差是多少秒,再把秒數轉成xx天xx小時xx分xx秒

declare @date1 datetime

declare @date2 datetime

declare @seconds int

select @date1='2013-08-20 16:40:23'

select @date2='2013-08-24 16:05:05'

select @seconds = datediff(second, @date1, @date2)

select cast(@seconds/60/60/24 as varchar(10))+'天'

+ cast(@seconds/60/60%24 as varchar(10)) + '小時'

+ cast(@seconds/60%60 as varchar(10)) + '分鐘'

+ cast(@seconds%60 as varchar(10)) + '秒'

3天23小時24分鐘42秒

4樓:匿名使用者

select extract(day from numtodsinterval(to_date('2013-08-24 16:05:05','yyyy-mm-dd hh24:

mi:ss')-to_date('2013-08-20 16:40:

23','yyyy-mm-dd hh24:mi:ss'),'day')) day,

extract(hour from numtodsinterval(to_date('2013-08-24 16:05:05','yyyy-mm-dd hh24:

mi:ss')-to_date('2013-08-20 16:40:

23','yyyy-mm-dd hh24:mi:ss'),'day')) hour,

extract(minute from numtodsinterval(to_date('2013-08-24 16:05:05','yyyy-mm-dd hh24:

mi:ss')-to_date('2013-08-20 16:40:

23','yyyy-mm-dd hh24:mi:ss'),'day')) minute,

extract(second from numtodsinterval(to_date('2013-08-24 16:05:05','yyyy-mm-dd hh24:

mi:ss')-to_date('2013-08-20 16:40:

23','yyyy-mm-dd hh24:mi:ss'),'day')) second

from dual ;

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

5樓:匿名使用者

在sql語句中怎樣計算出兩個日期的差值使用datediff函式

一、函式功能:datediff() 函式返回兩個日期之間的回間隔答時間。

二、語法:datediff(datepart,startdate,enddate)

startdate 和 enddate 引數是合法的日期表示式。

datepart 引數可以是下列的值:

三、例項演示

獲取日期'2008-12-29'與'2008-12-30'之間間隔的天數(參考datepart 引數**,dd表示獲取間隔的天數)

select datediff(dd,'2008-12-29','2008-12-30') as diffdate結果:

6樓:匿名使用者

select datediff(day,cast('2009-06-17' as datetime),cast('2009-06-23' as datetime))

如何簡單地用一句sql算一下兩個日期間相差的月份數

7樓:go有妳真好

使用datedif(日期1,日期2,"m")函式

datedif是excel中的函式,還有以下的使用方法一併教教:

1、簡要說明: 返回兩個日期之間的年\月\日間隔數

2、基本語法: =datedif(開始日期,結束日期,單位**)

3、例項1:

題目: 計算出生日期為1973-4-1人的年齡

公式: =datedif("1973-4-1",today(),"y")

結果: 33

簡要說明 當單位**為"y"時,計算結果是兩個日期間隔的年數.

4、例項2:

題目: 計算日期為1973-4-1和當前日期的間隔月份數.

公式: =datedif("1973-4-1",today(),"m")

結果: 403

簡要說明 當單位**為"m"時,計算結果是兩個日期間隔的月份數.

5、例項3:

題目: 計算日期為1973-4-1和當前日期的間隔天數.

公式: =datedif("1973-4-1",today(),"d")

結果: 12273

簡要說明 當單位**為"d"時,計算結果是兩個日期間隔的天數.

5、例項4:

題目: 計算日期為1973-4-1和當前日期的不計年數的間隔天數.

公式: =datedif("1973-4-1",today(),"yd")

結果: 220

簡要說明 當單位**為"yd"時,計算結果是兩個日期間隔的天數.忽略年數差

5、例項5:

題目: 計算日期為1973-4-1和當前日期的不計月份和年份的間隔天數.

公式: =datedif("1973-4-1",today(),"md")

結果: 6

簡要說明 當單位**為"md"時,計算結果是兩個日期間隔的天數.忽略年數和月份之差

5、例項6:

題目: 計算日期為1973-4-1和當前日期的不計年份的間隔月份數.

公式: =datedif("1973-4-1",today(),"ym")

結果: 7

簡要說明 當單位**為"ym"時,計算結果是兩個日期間隔的月份數.不計相差年數

8樓:普實軟體

示例:sql中months_between(high_date, low_date)

示例:excel中的計算方法例如: 計算日期為1989-4-1和當前日期的間隔月份數.

公式: =datedif("1989-4-1",today(),"m")

簡要說明 當單位**為"m"時,計算結果是兩個日期間隔的月份數。

9樓:鬼谷子教主

select datediff(m, @datefrom, @dateto)

EXCEL怎麼自動計算出兩個日期之間相隔幾個工作日

這個公式可以排除 星期六,星期天 1 1 excel怎麼自動計算出兩個日期之間相隔幾個工作日的解決方法如下 1 用公式可以 networkdays a1,b1,2012 5 1 2 節假日要自己手動列出來,3 networkdays函式要安裝了 分析工具箱 之後才能使用。networkdays a1...

請問mysql的sql中如何計算兩個datetime的差精確

timestampdiff interval,datetime expr1,datetime expr2 返回日期或日期時間表示式datetime expr1 和datetime expr2the 之間的整數差。其結果的單位由interval 引數給出。該引數必須是以下值的其中一個 frac sec...

我吃過兩次緊急避孕藥藥,中間時間間隔是兩個月,但是我每的月經週期都很正常,不是說吃避孕藥對月經週期

你好.這個應該是正常的.吃緊急避孕藥週期不正常是隻偶見的反應.人和人的身體激素不一樣.也就正常.所以不必擔心是假藥 緊急避孕藥,一年最多也只能吃兩次 多次吃對身體有害.也會發胖.女生要愛惜自己.誰說的啊。一般都會告訴你,用了緊急避孕藥後,最好是三個月到半年才讓懷孕。你說影響小嗎?現在很多動物不都是用...