我需要创建一个新的数据列,在我的数据中每15分钟分配一个新的数字。有大约40,000个15分钟的时间段需要分配...这是我到目前为止所拥有的。
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万。
有什么想法吗?
发布于 2010-08-24 06:31:11
好了,这就是我最终是如何做到的!
我使用CVDate()将日期/时间转换为儒略历,并将其作为新列。然后,我使用Julian date/ time /( 15 /(60*24))进行转换,以计算我在另一列中的15分钟时间框的数量,然后调用我的第一个日期/时间0,并通过以下操作计算15分钟时间框的整数
Int(15分钟时间间隔-3711251)
其中3711251是我实际开始时间之前的第一个15分钟整数。
我希望这是有意义的。
我很高兴解决了这个问题,我不想不说声谢谢就离开这个帖子。
发布于 2010-08-19 23:16:59
尝试将[Groupers final no summer].[DateTimeEDT]
中的值转换为自开始时间以来的秒数,然后您可以:
UPDATE [Groupers final no summer]
SET [Groupers final no summer].[Fifteen min time bin daily] = timeInSeconds / (15*60)
发布于 2010-08-19 23:30:24
此查询根据15分钟的时间间隔计算时间段。它使用TIMESTAMPDIFF返回两个时间戳之间的秒数。如果您没有使用mysql,那么您的关系型数据库管理系统很可能具有等效项,例如,SQL Server具有DATEDIFF。
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查询,以验证结果是否正确:
SELECT * FROM [Groupers final no summer],
((TIMESTAMPDIFF(SECOND, #11/02/05 08:45:01#, DateTimeEDT)/(15*60))+1 AS TimeBin
https://stackoverflow.com/questions/3523229
复制相似问题