1. 程式人生 > >Sql確定兩個日期之間的秒、分、小時數

Sql確定兩個日期之間的秒、分、小時數

問題

求兩個日期之間相差的秒數,例如,求ALLEN和WARD的HIREDATE(聘用日期)之間相差的時間,分別用秒、分、小時數表示。

解決方案

知道了兩個日期之間的天數,就可以計算出秒、分、小時數,因為它們是組成一天的時間單位。

DB2

使用函式DAYS獲得ALLEN_HD和WARD_HD之間相差的天數。然後,進行乘法操作,就能得到每個時間單位的值:

 1  select dy*24 hr, dy*24*60 min, dy*24*60*60 sec

 2    from (

 3  select ( days(max(case when ename = 'WARD'

 4                    then hiredate

 5               end)) -

 6           days(max(case when ename = 'ALLEN'

 7                    then hiredate

 8               end))

 9         ) as dy

10    from emp

11         ) x

MySQL和SQL Server

使用函式DATEDIFF獲得ALLEN_HD和WARD_HD之間相差的天數。然後,進行乘法操作,就能得到每個時間單位的值:

 1  select datediff(day,allen_hd,ward_hd)*24 hr,

 2         datediff(day,allen_hd,ward_hd)*24*60 min,

 3         datediff(day,allen_hd,ward_hd)*24*60*60 sec

 4    from (

 5  select max(case when ename = 'WARD'

 6                   then hiredate

 7             end) as ward_hd,

 8         max(case when ename = 'ALLEN'

 9                  then hiredate

10             end) as allen_hd

11    from emp

12         ) x

Oracle和PostgreSQL

使用減法操作,返回ALLEN_HD和WARD_HD之間相差的天數。然後,進行乘法操作,就能得到每個時間單位的值:

 1  select dy*24 as hr, dy*24*60 as min, dy*24*60*60 as sec

 2    from (

 3  select (max(case when ename = 'WARD'

 4                  then hiredate

 5             end) -

 6         max(case when ename = 'ALLEN'

 7                  then hiredate

 8             end)) as dy

 9    from emp

10         ) x

討論

所有解決方案的內聯檢視X都會返回WARD和ALLEN的HIREDATE(聘用日期),如下所示:

select max(case when ename = 'WARD'

                 then hiredate

           end) as ward_hd,

       max(case when ename = 'ALLEN'

                then hiredate

           end) as allen_hd

  from emp

WARD_HD     ALLEN_HD

----------- -----------

22-FEB-1981 20-FEB-1981

將WARD_HD和ALLEN_HD之間相差的天數乘以24(一天的小時數)、1440(一天的分鐘數)、86400(一天的秒數)即可。

 

相關推薦

Sql確定日期之間時數

問題 求兩個日期之間相差的秒數,例如,求ALLEN和WARD的HIREDATE(聘用日期)之間相差的時間,分別用秒、分、小時數表示。 解決方案 知道了兩個日期之間的天數,就可以計算出秒、分、小時數,因為它們是組成一天的時間單位。 DB2 使用函式DAYS獲得ALLEN_HD和

8.05 確定日期之間時數

max rom diff all red 日期 date edi cas select datediff(ward_hd,allen_hd)*24 hr, datediff(ward_hd,allen_hd)*24*60 min,

獲取日期之間剩餘的天數小時分鐘

本帖最後由 wuxiaodony 於 2014-8-28 16:57 編輯例如活動截止時間是:2015/01/01 10:00:00然後就利用當前時間對比活動截止時間,獲取剩餘的時間!我要的不僅僅是天數,還要獲取剩餘的小時、分鐘、秒,就可以了哪位大神路過幫幫忙,感激不盡!

8.3 確定日期之間的工作日數目

one int form cas date_add ediff mat interval bsp 問題:給定兩個日期,求它們之間(包括這兩個日期本身)有多少個”工作“日。select sum(case when date_format(

Oracle中使sql日期之間的所有日期

比如,兩個日期是2018-08-27和2018-08-30,要求27,28, 29,30這四天的日期,我們可以採用下面的SQL來求得: --oracle 求兩個日期之間的所有日期 SELECT TO_CHAR((TO_DATE(KSRQ, 'yyyy-MM-dd') + (ROWNU

SQL---計算日期之間的時間差

在進行日期處理的時候,有時會需要計算一下兩個日期之間相差幾年零幾個月,這裡記錄一下,如何用mysql資料庫和java結合,準確的拿到兩個日期之間的時間差。 1.mysql資料庫中,利用TIMESTAMPDIFF函式,拿到兩個日期之間相差的月數,當然,也可以拿到天數,年數

SQL中得到日期之間相隔 xx天xx小時xxxx

SQL SERVER中可以這麼做: DECLARE @dt1 AS datetime, @dt2 AS datetime; SELECT @dt1 = '2008-8-4 9:36:41', @dt2 = '2008-8-2 9:33:39'; DECLARE @Days

Oracle 計算日期之間的差(天數,小時,分鐘,,毫秒)

兩個Date型別欄位:START_DATE,END_DATE,計算這兩個日期的時間差(分別以天,小時,分鐘,秒,毫秒): 天:ROUND(TO_NUMBER(END_DATE - START_DATE)) 小時:ROUND(TO_NUMBER(END_DATE - START_DATE) *

Oracle 計算日期之間的差(天數,小時,分鐘,,毫秒)

兩個Date型別欄位:START_DATE,END_DATE,計算這兩個日期的時間差(分別以天,小時,分鐘,秒,毫秒): 天:ROUND(TO_NUMBER(END_DATE - START_DATE)) 小時:ROUND(TO_NUMBER(END_DATE - STA

Java日期之間相差

兩個日期之間相差的秒數 public  int calLastedTime(Date startDate) {   long a = new Date().getTime();   long b = startDate.getTime();   int c = (int)(

python簡單獲取日期之間的年度月度天數差的方法

    最近因為要做一些簡單的結算工作,裡面有一些規則需要對年度、月份、天數進行比較,在網上查了半天,忽然發現python進行年度、月份、日期處理這麼難?!居然只是要計算兩個時間之間的月份差,還要數十行程式碼!     有點不敢相信,所以自己寫了一個日期和月份差的函式,現推薦

oracle計算日期之間時間差值sql

sql Server中有函式DATEDIFF能夠比較方便的計算出兩個時間點之間的時間差值,但是oracle就沒有,需要自己寫方法計算,這是比較坑爹的。 自己寫了個分享一下 create or replace function datediff(type in varchar

C#中求日期之間的天數時數分鐘數

private void button1_Click(object sender, EventArgs e)        {            DateTime d1 = new DateTime(2004, 1, 1, 01, 36, 05);           

獲取日期之間相差的天/時//

public static void main(String[] args) { String dbDate="2017/10/27 09:30:00"; //資料庫獲取

js實現獲取日期之間篩選出指定周日制的方法

js var start = "2017-5-25"; var end = "2017-6-5"; var startTime = new Date(start); var endTime = new Date(end) var timeArr = []; var weekDay = ["1","2

計算日期之間的天數差C++/java

new abs ear == 關於 ostream logs col 多少 1--Java 分析:調用java中Calendar類 int days(Date date1,Date date2){   Calendar cal = new Calendar.getInst

獲取日期之間的所有日期列表

start.s () clas gpo arr lis imei rtti star public static List<Date> genDateList(Date beginDate,Date endDate){ List<Date> date

C++ 計算任意日期之間的天數

gpo start plain efault ediff include win sel put C++寫的一個計算兩個日期之間天數的小程序: [cpp] view plain copy #include <Windows.h>

java 獲取日期之間的天數

public static String calcTwoDate(Date date ,Date date2){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date);

C#實踐問題:如何在LINQ to Entities 查詢中,計算日期之間相差的天數?

在LINQ to Entities 查詢中,使用常規日期格式轉換函式Convert.ToDateTime()以及日期比較函式TimeSpan.Subtract().Days,都很麻煩而且會出錯:LINQ to Entities不能識別方法。。。 那麼要想在LINQ to Entities 查詢中