我有数据库,其中数据存储在时间戳条目中,即键。
我需要一个可以将DateTime.Now这样的日期转换为时间戳间隔的函数,例如,今天为8月30日00:00:00h到8月30日23:59:59h。
我怎么能写这个功能?
我想要的是做
之类的事情从时间戳介于a和b之间的表中选择所有内容(这些和b值代表一天的初始和终止时间戳。)
我没有创建数据库,我无法修改它,我只能查询它。
答案 0 :(得分:0)
也许DateTime.Now.TimeOfDay.Ticks
正是您所寻找的。 p>
答案 1 :(得分:0)
很难说出你想要的东西,但这是一种获得间隔的方法:
var start = DateTime.Today;
var end = start.AddDays(1).AddSeconds(-1);
由于您没有提供有关表格布局的足够详细信息,因此很难回答如何将值存储在数据库中。
答案 2 :(得分:0)
这将返回一个表示您可能想要的间隔的元组:
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
答案 3 :(得分:0)
我猜你可能会尝试将结构用作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);
答案 4 :(得分:0)
如果您有一天的范围,您可以计算当天的刻度:
// ----------------------------------------------------------------------
public long GetTicksOfDay( DateTime moment )
{
return moment.Subtract( moment.Date ).Ticks;
} // GetTicksOfDay
答案 5 :(得分:0)
我认为您需要的是TimeSpan。
你可以从另一个中减去一个DateTime,结果将是差异的TimeSpan。