首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据时间增量调整选择mysql行(vb mysql)

如何根据时间增量调整选择mysql行(vb mysql)
EN

Stack Overflow用户
提问于 2011-09-16 21:24:00
回答 1查看 335关注 0票数 0

我使用以下select语句提取数据行并将它们显示在数据网格中

代码语言:javascript
复制
    SELECT 
a.tmc, w.date, a.surface_temperature, 
a.air_temperature, a.material_rate, 
a.time, w.intensity 
FROM application a 
LEFT OUTER JOIN weather w 
ON a.DATE = w.DATE AND a.tmc = w.tmc 
WHERE w.DATE = '" & calendar1.SelectedDate & "' 
AND w.event= '" & weatherType.SelectedItem.Value & "' 
AND w.City = '" & sender.CssClass & "'

这有时会显示5,000行不同的数据,其中一列是时间。它们的时间大约是6:08,6:09,等等。有没有一种方法可以在6-6:59之间的所有时间只显示一行?

这些行应该如下所示

代码语言:javascript
复制
Time  Temp
1:00   27
2:00   31
3:00   32

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-16 21:59:19

神奇的小表情

代码语言:javascript
复制
CONVERT(DATE_FORMAT(w.DATE,'%Y-%m-%d-%H:00:00'),DATETIME)

将在分钟和秒归零的情况下返回w.DATE。

例如,

代码语言:javascript
复制
SELECT CONVERT(DATE_FORMAT('1941-12-07 08:45:20',
                           '%Y-%m-%d-%H:00:00'
                          ),DATETIME)

返回1941-12-07 08:00:00

无需尝试弄清楚查询的所有逻辑(还有其他我不理解的东西),这里有一种方法可以获得每小时的天气观测摘要。

代码语言:javascript
复制
SELECT station, 
       CONVERT(DATE_FORMAT(observation_time,'%Y-%m-%d-%H:00:00'),DATETIME) observation_hour,
       MIN(temperature) min_temp,
       MAX(temperature) max_temp,
       AVG(temperature) avg_temp
  FROM observation
 GROUP BY station, CONVERT(DATE_FORMAT(observation_time,'%Y-%m-%d-%H:00:00'),DATETIME)
 ORDER BY station, CONVERT(DATE_FORMAT(observation_time,'%Y-%m-%d-%H:00:00'),DATETIME)

GROUP BY表达式将其转换为汇总查询,按小时汇总。

注意。您的DATE列似乎实际上包含DATETIME数据类型。a.DATE=w.DATE上的连接要求applicationweather表行的那些列中的日期和时间完全相同。这是真的吗?将DATETIME列命名为DATE可能会误导处理此数据库的下一位程序员。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7445339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档