我对SQL很陌生,时间函数与mySQL不同,所以我很难找到一个有有用时间戳查询的好站点引用。
我无法在SQL中找到执行此查询的正确方法:
Id Timestamp
-----------------------------------
1145744 2012-10-10 18:15:11.500
1145743 2012-10-10 18:15:11.313
1145742 2012-10-10 18:15:11.313
1145741 2012-10-10 18:15:11.253
1145740 2012-10-10 18:15:11.190
1145739 2012-10-10 18:15:11.190
1145738 2012-10-10 18:15:11.127
1145737 2012-10-10 18:15:11.067
1145736 2012-10-10 18:15:11.063
1145735 2012-10-10 18:15:10.940
1145734 2012-10-10 18:15:10.817
SELECT * from table WHERE Timestamp ... RANGE我需要两个时间戳的范围,以便通过以下参数选择行:
是否有一个功能,放入两个时间戳,并得到范围?或者这是我需要的混合功能?
任何好的网站参考资料都是非常有用的。MSDN站点并没有帮助我分离出正确的方法。我已经搜索了大约一个小时,试图把最后一天从下午1:30到下午1:30。
发布于 2012-10-11 04:21:12
您可以使用DATEPART获取:
`second, minute, hour, day, week, month, year` 更多参考资料。
使用where条件获得所需的范围。
发布于 2012-10-11 04:49:37
我很难弄清楚你到底想要什么。以下是基于你迄今为止的评论的一些例子:
10-11,或1-5
SELECT * from table WHERE Timestamp >= '20121011 10:00'
and Timestamp < '20121011 11:00'
SELECT * from table WHERE Timestamp >= '20121011 01:00'
and Timestamp < '20121011 05:00'或者如果你需要“今天”自动改变,那么
SELECT * from table WHERE Timestamp >= DateAdd(Hour,10,CAST(GetDate() as Date))
and Timestamp < DateAdd(Hour,11,CAST(GetDate() as Date))昨天下午1:30-今天凌晨3点
SELECT * from table WHERE Timestamp >= '20121010 13:30'
and Timestamp < '20121011 03:00',是的,一天一小时,
现在,如果您要使用DATEPART来解决这个问题,那么让我们假设10-11
SELECT * from table WHERE DATEPART(hour,Timestamp) = 10这将在几天内运行,而不是萨格勒,也就是说,不能在真正不需要的索引上搜索它。
这些是从哪来的?
https://stackoverflow.com/questions/12831791
复制相似问题