logo
20.07.2019 11:59
1
Ahojte,
z mySQL si dělám výpis MAX() hodnoty za každou hodinu.

PHP kód:
SELECT FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(timestamp)/3600)*3600xMAX(rain_1hodFROM weather GROUP BY x DESC 
Problém je ten, že meteostanice z nějakého důvodu nuluje hodiné srážkové úhrny až od 5 minuty každou hodinu a tak když prší v 11:58h (2.5 litrů), hodnota se udrží až do 12:04h .... 12:05h je opět nulová.

Potřebuji za každou hodinu tu MAX() hodnotu počítat ideálně až od 5-té minuty. Poradíte jak mySQL dotaz upravit?

Co se právě děje na Webtrhu?

20.07.2019 13:00
2
Nevím, jestli to správně chápu, ale nepomohlo by jen
Kód:
WHERE timestamp >= unix_timestamp(CURRENT_TIMESTAMP - INTERVAL 5 MINUTE)
?
20.07.2019 13:11
3
Potřebuji dostat MAX hodnotu každou hodinu v čase od HH:05 -> HH:59
20.07.2019 13:20
4
... aha, už to vidím, taháš pro každou hodinu v jednom dotazu, přehlédl jsem.

Bude stačit jen selektovat ty timestampy, které jsou zapsané nad 5 minutu, tedy
Kód:
WHERE STR_TO_DATE(timestamp, “%i”) >= 5
21.07.2019 14:22
5
S použítím
Kód:
WHERE STR_TO_DATE(timestamp, “%i”) >= 5
to bohužel nevypíše nic.
timestamp mám ve tvaru: 2019-07-21 14:13:00, tak se divím, že to nefunguje.
24.07.2019 01:59
6
PHP kód:
DROP TABLE IF EXISTS `pocasi`;
CREATE TABLE `pocasi` (
  `
idint(11NOT NULL AUTO_INCREMENT,
  `
castimestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `
destdouble NOT NULL,
  
PRIMARY KEY (`id`)
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

INSERT INTO `pocasi` (`id`, `cas`, `dest`) VALUES
(1,    '2019-07-24 01:04:59',    13.5),
(
2,    '2019-07-24 01:49:56',    8.1),
(
3,    '2019-07-24 01:17:15',    6.9),
(
4,    '2019-07-24 02:02:30',    11.4),
(
5,    '2019-07-24 02:21:45',    5.5),
(
6,    '2019-07-24 02:49:08',    10.8);

SELECT FROM pocasi;

SELECT
   DATE_FORMAT
(cas"%Y-%m-%d %H") AS hodina
   
MAX(dest)
FROM pocasi
GROUP BY hodina
;

SELECT
   DATE_FORMAT
(cas"%Y-%m-%d %H") AS hodina
   
MAX(IF(MINUTE(cas) >= 5dest0))
FROM pocasi
GROUP BY hodina