gpt4 book ai didi

php - highstock 的增量 MySQL 时间戳转换

转载 作者:行者123 更新时间:2023-11-29 22:18:49 24 4
gpt4 key购买 nike

我正在使用 highstock 库来显示磁力计的输出数据,但我遇到了一些问题。我将数据存储在 bd 的两个字段中。第一个值是保存数据的日期时间,第二个值是传感器值:

2015-06-10 01:29:43 | 15

但是因为传感器在一秒钟内发送多个值,所以我需要以增量方式将这次转换为 UNIX

假设这是原始数据:

2015-06-10 01:29:43 | 15
2015-06-10 01:29:43 | 16
2015-06-10 01:29:43 | 40
2015-06-10 01:29:43 | 50
2015-06-10 01:29:43 | 15
2015-06-10 01:29:43 | 11

我将其转换为时间戳:

1444094983 | 15
1444094983 | 16
1444094983 | 40
1444094983 | 50
1444094983 | 15
1444094983 | 11

最后一步是将时间转换为毫秒。这不是一个问题。问题是,我需要重复的每一秒,都必须是像这样的增量毫秒

1444094983001 | 15
1444094983002 | 16
1444094983003 | 40
1444094983004 | 50
1444094983005 | 15
1444094983006 | 11

但是当新的一秒开始时,增量数必须重新开始,并再次从0开始。

我正在使用 php,这将是我解决这个问题的方法

$i = 1;
foreach ($row as $result){
$row['data_logged'] * 1000 + $i; // assuming I converted it in mysql with UNIX_TIMESTAMP
if($prev_data != $row['data_logged']) $i = 1;
$prev_data = $row['data_logged'];
$i++;
}

有更好/最简单的方法吗?

最佳答案

基于讨论的替代设计方案:

MySQL中有一个自动增量选项,该选项负责确保每条插入的记录都有一个唯一的键。使用该选项,可以存储数据,而无需在 php 中使用备用代码:

CREATE TABLE magnoMeterData(
mmdata_id INT NOT NULL AUTO_INCREMENT,
mmrecordtime TIMESTAMP,
value DOUBLE
) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4K;

在此表中插入数据,会产生如下记录:

1,1444094983001,{your measured value}

2,1444094983002,{another measured value}etc

因此 key 保持其唯一性。该 key 在您的数据中也没有其他功能,除了保持其唯一性并根据其运行订单之外。

关于php - highstock 的增量 MySQL 时间戳转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30947184/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com