日期分割,做按時間統計時會用到

2022-02-23 01:59:00 字數 2977 閱讀 9778

我們知道資料庫裡的datediff函式可以判斷兩個時間的時間差,在做統計時,常常會統計:今天的記錄,本週的記錄,本月的記錄,三個月內的記錄,本年度記錄等等。

用datediff函式時的寫法大致如下:

case "datetimespan":

switch (keyword.tolower())

break;

如果想對時間段做的更為人性化或更精確,還是自己拆分時間段比較好。比如統計時間到當前時間。

using system;

using system.collections.generic;

using system.globalization;

namespace 日期分割

-", todaystart.addhours(hour - 1).tostring("hh時"),

todaystart.addhours(hour).tostring("hh時"));

if (!timerangedic.containskey(key))

}foreach (keyvaluepairpair in timerangedic)

console.writeline();

console.writeline("***************===[最近一周內(到當前時間)時間段分割]***************=");

timerangedic.clear();

datetime weekstart =

datetime.parse(datetime.now.tostring("yyyy-mm-dd 00:00:00")).adddays(-(int)(datetime.now.dayofweek));

for (int day = 0; day < convert.toint32(datetime.now.dayofweek); day++)

-", getweek(day), getweek(day + 1));

if (!timerangedic.containskey(key))

else}}

foreach (keyvaluepairpair in timerangedic)

console.writeline();

console.writeline("***************===[最近一月內(到當前時間)時間段分割]**********====");

timerangedic.clear();

datetime monthstart = datetime.parse(datetime.now.tostring("yyyy-mm-01 00:00:00"));

for (int day = 1; day < datetime.now.date.day; day++)

日-日", day.tostring(cultureinfo.invariantculture).padleft(2, '0'),

(day + 1).tostring(cultureinfo.invariantculture).padleft(2, '0'));

if (!timerangedic.containskey(key))

else}}

foreach (keyvaluepairpair in timerangedic)

console.writeline();

console.writeline("***************===[最近三個月內(到當前時間)時間段分割]**********====");

timerangedic.clear();

datetime currmonthstart = datetime.parse(datetime.now.tostring("yyyy-mm-01 00:00:00"));

for (int month = 2; month >= 0; month--)

-",currmonthstart.addmonths(-month - 1).tostring("yyyy年mm月"),

currmonthstart.addmonths(-month).tostring("yyyy年mm月"));

if (!timerangedic.containskey(key))

else}}

foreach (keyvaluepairpair in timerangedic)

console.writeline();

console.writeline("***************===[本年內(到當前時間)時間段分割]***************====");

timerangedic.clear();

datetime yearstart = datetime.parse(datetime.now.tostring("yyyy-01-01 00:00:00"));

for (int month = 1; month < datetime.now.date.month; month++)

月-月",

month.tostring(cultureinfo.invariantculture).padleft(2, '0'),

(month + 1).tostring(cultureinfo.invariantculture).padleft(2, '0'));

if (!timerangedic.containskey(key))

else}}

foreach (keyvaluepairpair in timerangedic)

console.read();

}public static string getweek(int current)

;string week = current < weekdays.length ? weekdays[current] : "";

return week;}}

}

輸出結果:

Oracle 按時間段分組統計

想要按時間段分組查詢,首先要了解level,connect by,oracle時間的加減.關於level這裡不多說,我只寫出乙個查詢語句 sql view plain copy level 是乙個偽例 select level from dual connect bylevel 10 結果 1 2 ...

mysql 按時間搜尋 按日期搜尋mysql效能

我有乙個包含大約1億條記錄的大表,其字段為start date和end date,具有date型別.我需要檢查一些日期範圍的重疊次數,比如介於2013 08 20和2013 08 30之間,所以我使用了.select count from mytable where end date 2013 08...

python統計計算時間 按日期時間統計中的記錄數

我將一些資料載入到pandasdataframe中,我想將這些資料聚合到日期時間間隔中,並計算每個間隔內的記錄數。問題是,我發現的聚合到日期時間間隔並計算每個間隔內的記錄數的方法看起來相當笨拙,而且可能不是最有效的方法。改變我想分組計算tweet數量的間隔也是一件痛苦的事。在data timesta...