Pagina 1 van 1

MySQL – Afronden CURRENT_TIMESTAMP naar dichstbijzijnde minuut

MySQL – Afronden CURRENT_TIMESTAMP naar dichstbijzijnde minuut

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.
Voorbeelden: "MacOS X - Jouw vraag", "MS Word - Jouw Tip of Truc".

Merk op: Omschakelen naar een andere taal zal niet werken als je een post aan het lezen bent.
Posts/Reacties hebben geen tegenhanger in de andere taal.




RSS Feed

Home Forums Software Development Databases MySQL – Afronden CURRENT_TIMESTAMP naar dichstbijzijnde minuut

Dit onderwerp bevat 0 reacties, heeft 1 stem, en is het laatst gewijzigd door  hans 9 maanden geleden.

1 bericht aan het bekijken (van in totaal 1)
  • Auteur
    Berichten
  • 4865

    hans
    Sleutelbeheerder

    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;
1 bericht aan het bekijken (van in totaal 1)



Je moet ingelogd zijn om reacties te kunnen plaatsen voor dit onderwerp.