Pagina1 van 1
Forum

Welkom bij de Tweaking4All gemeenschapsforums!
Voor je gaat deelnemen, bekijk de Forum Regels!

Specifieke onderwerpen: Start het onderwerp met de naam van het programma of systeem.
Bijvoorbeeld “MacOS X – Jouw vraag“, of bijvoorbeeld “MS Word – Jouw Tip of Truc“.

Merk op: Omschakelen naar een andere taal zal niet werken als je een post aan het lezen bent aangezien er waarschijnlijk geen vertaling beschikbaar is.



MySQL - Afronden CU...
 
Deel:
Meldingen
Alles wissen

[Opgelost] MySQL - Afronden CURRENT_TIMESTAMP naar dichstbijzijnde minuut

1 Berichten
1 Gebruikers
0 Reactions
1,807 Bekeken
 Hans
(@hans)
Famed Member Admin
Deelgenomen: 12 jaar geleden
Berichten: 2859
Topic starter  

Voor het Arduino Temperatuur log projectje, was ik op zoek naar een oplossing waarbij de tijden gelogd werden in hele minuten.
De Arduino is daarbij niet echt behulpzaam, dus besloot ik een oplossing te zoeken in de MySQL tabel voor dit project.

Afronden van CURRENT_TIMESTAP op hele minuten gaat als volgt:

select CURRENT_TIMESTAMP, FROM_UNIXTIME(ROUND(UNIX_TIMESTAMP(CURRENT_TIMESTAMP)/(60))*(60));

Voor ons project heb ik daarom een klein voorbeeld gemaakt welke de werkelijk tijd/datum in "datetimeNormal" plaatst, en de triggers (na update of na insert) plaats dit op de minuut afgerond in "datetimeRounded" op.

CREATE TABLE `roundingtest` (
  `value` int(11) NOT NULL,
  `datetimeNormal` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `datetimeRounded` timestamp
);
CREATE TRIGGER `roundingtest_before_ins_tr` BEFORE INSERT ON `roundingtest`
  FOR EACH ROW
BEGIN
  SET new.datetimeRounded = FROM_UNIXTIME(ROUND(UNIX_TIMESTAMP(new.datetimeNormal)/(60))*(60));
END;
CREATE TRIGGER `roundingtest_before_upd_tr` BEFORE UPDATE ON `roundingtest`
  FOR EACH ROW
BEGIN
  SET new.datetimeRounded = FROM_UNIXTIME(ROUND(UNIX_TIMESTAMP(new.datetimeNormal)/(60))*(60));
END;

   
BeantwoordenCiteren
Deel: