Date時間段的相關操作

2021-07-02 17:15:32 字數 720 閱讀 2443

做專案需要對某個時間段的資料按天進行統計,資料庫操作好辦。但由於資料庫裡只有「有」的資料,某一天沒有資料的話,需要手動填零,這就需要首先把這段時間的日期搞出來。

**如下:

private static list

<

date

> getdates(date startdate, date enddate)

return

list;

}

實際很簡單,日期迴圈加一 即可。

另外還需要確定時間段內具體的天數,使用**:

public

class test

}

得到的結果是1

需要注意的是這裡用的是先除再減,如果先減再處的話可能會有問題

long diff = date2.gettime()/86400000 - date1.gettime()/86400000;

雖然從數學表示式上結果是一樣的,但是由於這裡整數除法都是取整,造成誤差,因此使用這個方法得到的結果是0.

當然這種方法並不準確,例如計算「2015-4-5 17」與「2015-4-6 21」之間的天數,按小時來算的話應該是兩天了,但結果是1.

此外,如果時間間隔不到12小時,例如「2015-4-5 17」和「2015-4-6 4」之間,計算出的結果是0.

更準確的可以參考

時間段函式

在sql server中,操作select查詢時,將時間型別的字段作為搜尋條件,如果稍微不注意,也許沒有辦法查詢到意想的結果。條件不能用等於,而是時間段。如某一天,應該是從00 00 00至23 59 59之間,方可查詢出結果出來。因此,為了開發方便,寫了乙個函式 setansi nulls ong...

根據時間段,返回時間段的工作小時數

根據時間段,返回時間段的工作小時數 一天按8小時 create function dbo fc getworkhour startdate alldatetime,enddate alldatetime returns int as begin declare delayday int 暫用工時 日...

分時間段查詢

declare t table 時間 datetime,金額 int insert t select 2007 1 1 10 00 23 8 union all select 2007 1 1 01 00 04 4 union all select 2007 1 1 01 00 14 4 union...