用Datediff查看行为

时间:2018-03-14 14:00:21

标签: sql-server

我在使用此代码时知道原因

SELECT * FROM Runtime.dbo.AnalogHistory WHERE TagName = 'LT73011.Out_PV' 
AND datediff(HOUR, DateTime, '2018-03-14 08:02:23.449') = 0

知道Runtime.dbo.AnalogHistory是我的观点 我得空白了

但是当我用这个查询时

SELECT * FROM Runtime.dbo.AnalogHistory WHERE TagName = 'LT73011.Out_PV' 
AND DateTime <= '2018-03-14 08:59:00.000'

我得到了早上8点发生的所有价值

是否有一个有视图的幕布限制?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

我无法重现您的观察/行为,但如果您想要在某个特定日期定位上午8点的确切方法,请尝试以下操作:

SELECT *
FROM Runtime.dbo.AnalogHistory
WHERE
    TagName = 'LT73011.Out_PV' AND
    DateTime >= '2018-03-14 08:00:00' AND DateTime < '2018-03-14 09:00:00';

这种方法还有一个额外的好处,就是可以使用DateTime列上的索引(即WHERE子句是可以搜索的。)