我有數據庫,其中數據存儲在時間戳條目,即鍵。函數創建24小時時間戳? c#
我需要一個函數,可以將DateTime.Now這樣的日期轉換爲一個時間戳記間隔,以今天爲例,8月30日00:00:00h至8月30日23:59:59h。
我怎麼寫這個函數?
我想要的是像做
從表中選擇所有其中timestamp是A和B之間。(那些和b的值將代表初始和終端時間戳一天。)
我沒有創建數據庫,我不能修改它,我只能查詢它。
我有數據庫,其中數據存儲在時間戳條目,即鍵。函數創建24小時時間戳? c#
我需要一個函數,可以將DateTime.Now這樣的日期轉換爲一個時間戳記間隔,以今天爲例,8月30日00:00:00h至8月30日23:59:59h。
我怎麼寫這個函數?
我想要的是像做
從表中選擇所有其中timestamp是A和B之間。(那些和b的值將代表初始和終端時間戳一天。)
我沒有創建數據庫,我不能修改它,我只能查詢它。
這將返回代表你可能要間隔一個元組:
Tuple<DateTime,DateTime> GetDateInterval(DateTime datetime) {
var start = datetime.Date;
var end = start.AddDays(1).AddTicks(-1);
return new Tuple<DateTime, DateTime>(start, end);
}
用法:
var interval = GetDateInterval(DateTime.Now);
Console.WriteLine(interval.Item1);
Console.WriteLine(interval.Item2);
輸出:
30.08.2011 0:00:00
30.08.2011 23:59:59
也許DateTime.Now.TimeOfDay.Ticks
是你在找什麼。
很難告訴你想要的東西,但在這裏是一種方式來獲得區間:
var start = DateTime.Today;
var end = start.AddDays(1).AddSeconds(-1);
很難回答你應該如何,因爲你沒有提供有關足夠的細節的值存儲在數據庫表格佈局。
我將使用'.AddTicks(-1)'。 – CodesInChaos
我想你可以嘗試使用結構TimeInterval:
public struct TimeInterval
{
private readonly DateTime _startTime;
private readonly DateTime _endTime;
public DateTime StartTime { get { return _startTime; } }
public DateTime EndTime { get { return _endTime; } }
public TimeInterval(DateTime now)
{
_startTime = now.Date;
_endTime = now.Date.AddDays(1).AddTicks(-1);
}
}
你可以稱它爲:
TimeInterval day = new TimeInterval(DateTime.Now);
如果你有一天的範圍內,就可以計算出蜱withing一天:
// ----------------------------------------------------------------------
public long GetTicksOfDay(DateTime moment)
{
return moment.Subtract(moment.Date).Ticks;
} // GetTicksOfDay
通過在MSDN中查找:http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx – jgauffin
使用[DateTime.Today,DateTime.Today.AddDays(1).AddMilliseconds(-1)] – Zruty
有點偏離主題,但使用鍵的時間戳可能是一個非常糟糕的主意。 – Dyppl