0

我的任务是创建一个 SQL 查询(知识有限),它将显示我白天的最高温度和最低温度。数据库中的信息每 20 秒带有一个带有点值的时间戳。我只想看看每天的最高温度。

我知道如何做 MAX 和 Min:

SELECT 
    MIN (pv) As MinimumTemperature
FROM 
    plexxium201.dbo.pv_history

SELECT  
    MAX (pv)
FROM 
    plexxium201.dbo.pv_history

我只是对日期有问题,因为一天每 20 秒就有一个条目。任何帮助,将不胜感激。

4

2 回答 2

3
SELECT MIN (pv) As MinimumTemperature, MAX (pv) as MaxTemp, YEAR(datefield) as year, MONTH(datefield) as month, DAY(datefield) as day
FROM plexxium201.dbo.pv_history
GROUP BY YEAR(datefield), MONTH(datefield), DAY(datefield)

还有一种方法可以通过窗口来做到这一点 - 但我认为这将满足您的需求。

于 2012-07-27T23:19:01.973 回答
1

一个简单的方法是:

select cast(pvh.timestamp as date) as date, min(pv) as mintemp, max(pv) as maxtemp
from plexxium201.dbo.pv_history pvh
group by cast(pvh.timestamp as date)
order by 1

在大多数情况下,我更喜欢将日期字段保留为日期,SQL Server 使用“日期”数据类型支持这一点。

于 2012-07-29T02:05:37.893 回答