SQL Server按时间加一小时排序
我有一个事件数据库,每个事件都有一个时间字段,需要从所说的时间开始按升序排序。这些活动从晚上11:00开始,每天24小时从晚上11:00到晚上10:59举行 是否有方法对我的事件进行排序,以便结果从11:00PM、11:01PM、…、11:59PM事件开始,然后继续12:00AM事件?如果可以在SQL和LINQtoSQL中提供示例,那就太好了SQL Server按时间加一小时排序,sql,sql-server,linq,linq-to-sql,Sql,Sql Server,Linq,Linq To Sql,我有一个事件数据库,每个事件都有一个时间字段,需要从所说的时间开始按升序排序。这些活动从晚上11:00开始,每天24小时从晚上11:00到晚上10:59举行 是否有方法对我的事件进行排序,以便结果从11:00PM、11:01PM、…、11:59PM事件开始,然后继续12:00AM事件?如果可以在SQL和LINQtoSQL中提供示例,那就太好了 编辑:我应该解释我问题的标题。我最初的想法是在排序时每次只增加一个小时,但返回的值仍然是原始时间。这将导致所有11:00PM etc事件现在为12:00a
编辑:我应该解释我问题的标题。我最初的想法是在排序时每次只增加一个小时,但返回的值仍然是原始时间。这将导致所有11:00PM etc事件现在为12:00am etc事件,其他所有事件将提前一个小时,一天中最后10:59PM的事件现在将在11:59PM发生,以便进行排序。这可能吗?对于给定的一组时间,按升序排序将产生与按升序排序时间+1小时相同的结果。至少在这种和其他简单的情况下,向每个值添加一个常量值时,值集合的顺序不会改变
您是否还需要按日期组件分组,或按日期提取?我觉得您的问题可能是如何在时间+1小时内分组或选择,而不是排序。对于给定的时间集,按升序排序将产生与按升序排序时间+1小时相同的结果。至少在这种和其他简单的情况下,向每个值添加一个常量值时,值集合的顺序不会改变
您是否还需要按日期组件分组,或按日期提取?我觉得你的问题可能是如何在时间+1小时内分组或选择,而不是排序。不确定这是否是最有效的方法,但我认为这正是你所要求的
declare @theDateYouAreInterestedIn smalldatetime
-- this gets today's date and subtracts an hour giving you 11:00pm yesterday
-- if you want it some other date just sub out the Cast(GetDate() as date) for the
-- desired date
set @theDateYouAreInterestedIn = Dateadd(hour, -1,Cast(Cast(GetDate() as date) as smalldatetime))
select *
from yourTable
where yourDateTimeField > @theDateYouAreInterestedIn
and yourDateTimeField < Dateadd(day, 1,@theDateYouAreInterestedIn)
order by yourDateTimeField
不确定这是否是最有效的方法,但我认为这正是你所要求的
declare @theDateYouAreInterestedIn smalldatetime
-- this gets today's date and subtracts an hour giving you 11:00pm yesterday
-- if you want it some other date just sub out the Cast(GetDate() as date) for the
-- desired date
set @theDateYouAreInterestedIn = Dateadd(hour, -1,Cast(Cast(GetDate() as date) as smalldatetime))
select *
from yourTable
where yourDateTimeField > @theDateYouAreInterestedIn
and yourDateTimeField < Dateadd(day, 1,@theDateYouAreInterestedIn)
order by yourDateTimeField
当您查询时,您是否只需要某一天的数据?是的。这些事件每天都在重复,因此只有一天真正在表中。一些琐事:在古代中国,晚上11点是午夜的开始,实际上,晚上11点-次日凌晨1点是第一个小时。每个古代中国小时对应2个西方小时。想知道你是否在用中国古代的计时法做什么吗?没有。对于这个项目,天只从晚上11点开始。当您查询时,您是否只需要某一天的数据?是的。这些事件每天都在重复,因此只有一天真正在表中。一些琐事:在古代中国,晚上11点是午夜的开始,实际上,晚上11点-次日凌晨1点是第一个小时。每个古代中国小时对应2个西方小时。想知道你是否在用中国古代的计时法做什么吗?没有。此项目的天从晚上11点开始。事件每天重复,因此数据库中只有一天的事件。事件每天重复,因此数据库中只有一天的事件。