首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将40000个更新查询合并为一个?

如何将40000个更新查询合并为一个?
EN

Stack Overflow用户
提问于 2010-08-19 23:12:11
回答 3查看 225关注 0票数 1

我需要创建一个新的数据列,在我的数据中每15分钟分配一个新的数字。有大约40,000个15分钟的时间段需要分配...这是我到目前为止所拥有的。

代码语言:javascript
运行
复制
UPDATE [Groupers final no summer] 
SET [Groupers final no summer].[Fifteen min time bin daily] ='1',
WHEN [Groupers final no summer].[DateTimeEDT]=Between #11/02/05 08:45:01# 
     and #11/02/05 09:00:00#) 
OR 
SET [Groupers final no summer].[Fifteen min time bin daily] ='2', 
WHEN [Groupers final no summer].[DateTimeEDT]=Between #11/02/05 09:00:01# 
    and #11/02/05 09:15:00#);

而时间仓会上升到4万。

有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-24 06:31:11

好了,这就是我最终是如何做到的!

我使用CVDate()将日期/时间转换为儒略历,并将其作为新列。然后,我使用Julian date/ time /( 15 /(60*24))进行转换,以计算我在另一列中的15分钟时间框的数量,然后调用我的第一个日期/时间0,并通过以下操作计算15分钟时间框的整数

Int(15分钟时间间隔-3711251)

其中3711251是我实际开始时间之前的第一个15分钟整数。

我希望这是有意义的。

我很高兴解决了这个问题,我不想不说声谢谢就离开这个帖子。

票数 1
EN

Stack Overflow用户

发布于 2010-08-19 23:16:59

尝试将[Groupers final no summer].[DateTimeEDT]中的值转换为自开始时间以来的秒数,然后您可以:

代码语言:javascript
运行
复制
UPDATE [Groupers final no summer]
SET [Groupers final no summer].[Fifteen min time bin daily] = timeInSeconds / (15*60)
票数 3
EN

Stack Overflow用户

发布于 2010-08-19 23:30:24

此查询根据15分钟的时间间隔计算时间段。它使用TIMESTAMPDIFF返回两个时间戳之间的秒数。如果您没有使用mysql,那么您的关系型数据库管理系统很可能具有等效项,例如,SQL Server具有DATEDIFF

代码语言:javascript
运行
复制
UPDATE [Groupers final no summer] 
    SET [Groupers final no summer].[Fifteen min time bin daily] =((TIMESTAMPDIFF(SECOND, #11/02/05 08:45:01#, DateTimeEDT)/(15*60))+1

在运行更新查询之前,您可以尝试执行以下select查询,以验证结果是否正确:

代码语言:javascript
运行
复制
SELECT * FROM [Groupers final no summer], 
((TIMESTAMPDIFF(SECOND, #11/02/05 08:45:01#, DateTimeEDT)/(15*60))+1 AS TimeBin
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3523229

复制
相关文章

相似问题

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