suit: MySQL 5.x UNIX Timestamp zu DATETIME + Zeitzone konvertieren

Hallo,

ich hab' ein kleines Doku-Leseproblem

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html

Ausgangslage ist ein UNIX Timestamp (32 bit, unsigned) - herrauskommen soll DATETIME

UNIX_TIMESTAMP() macht genau das verkehrte von dem was ich eigentlich will - nun suche ich die Umkehrfunktion und finde sie ums verrecken nicht.

Während dem Verfassen des Posts bin ich nun trotzdem darauf gestoßen will aber andere nicht dumm sterben lassen: FROM_UNIXTIME()

Egal - jedenfalls hab' ich noch eine Frage zu CONVERT_TZ() - kann ich damit irgendwie die Sommer/Winterzeit einbeziehen? Aktuell sind alle Zeiten UTC (ohne DST).

  1. echo $begrüßung;

    [...] CONVERT_TZ() - kann ich damit irgendwie die Sommer/Winterzeit einbeziehen? Aktuell sind alle Zeiten UTC (ohne DST).

    UTC kennt keine Sommerzeit. Verwende als from_tz oder to_tz eine Zeitzone mit Sommerzeit und eine Zeit, die darin liegt. Konkretisiere dein Problem, wenn dir diese Aussage nicht hilft. Insbesondere von wo nach wo konvertiert werden soll und ob die Zeitzonendatenbank installiert ist.

    echo "$verabschiedung $name";

    1. UTC kennt keine Sommerzeit. Verwende als from_tz oder to_tz eine Zeitzone mit Sommerzeit und eine Zeit, die darin liegt.

      hat geholfen - ich hab mir jetzt anhand der sommerzeit-regel aus der wikipedia einfach ein kleines php-script geschrieben (quick&dirty) welches die zeiten aus der datenbank liest, entsprechend der sommer/winterzeit um eine stunde korrigiert (wenn sie in diesem bereich liegen) und dann wieder in die datenbank zurückschreibt

      firma dankt

      1. echo $begrüßung;

        UTC kennt keine Sommerzeit. Verwende als from_tz oder to_tz eine Zeitzone mit Sommerzeit und eine Zeit, die darin liegt.
        hat geholfen - ich hab mir jetzt anhand der sommerzeit-regel aus der wikipedia einfach ein kleines php-script geschrieben (quick&dirty) welches die zeiten aus der datenbank liest, entsprechend der sommer/winterzeit um eine stunde korrigiert (wenn sie in diesem bereich liegen) und dann wieder in die datenbank zurückschreibt

        Ich kenne dein eigentliches Problem nicht, aber das was du da machst scheint mir ein Workaround zu sein, den man bestimmt besser lösen kann. Vermutend, dass du Zeiten aus der Zone GMT-1 hast und deine Ortszeit haben willst (und die Timezone-Tabellen geplegt sind), wäre das mit CONVERT_TZ():

        SELECT convert_tz('2009-02-01 12:00:00', 'Etc/GMT-1', 'Europe/Vienna') -- 12 Uhr
          SELECT convert_tz('2009-05-01 12:00:00', 'Etc/GMT-1', 'Europe/Vienna') -- 13 Uhr

        echo "$verabschiedung $name";

        1. Ich kenne dein eigentliches Problem nicht, aber das was du da machst scheint mir ein Workaround zu sein, den man bestimmt besser lösen kann. Vermutend, dass du Zeiten aus der Zone GMT-1 hast und deine Ortszeit haben willst (und die Timezone-Tabellen geplegt sind), wäre das mit CONVERT_TZ():

          ja deine vermutung ist richtig

          SELECT convert_tz('2009-02-01 12:00:00', 'Etc/GMT-1', 'Europe/Vienna') -- 12 Uhr
            SELECT convert_tz('2009-05-01 12:00:00', 'Etc/GMT-1', 'Europe/Vienna') -- 13 Uhr

          "funzt nicht" - ich bekomme als resultat leider NULL (lt. doku liegt das am fehlenden timezone-support)

          kommt aber auf jeden fall ins anmerkheft, danke

          1. Hallo,

            Ich kenne dein eigentliches Problem nicht, aber das was du da machst scheint mir ein Workaround zu sein, den man bestimmt besser lösen kann. Vermutend, dass du Zeiten aus der Zone GMT-1 hast und deine Ortszeit haben willst (und die Timezone-Tabellen geplegt sind), wäre das mit CONVERT_TZ():

            betone: "und die Timezone-Tabellen gepflegt sind"

            ja deine vermutung ist richtig

            SELECT convert_tz('2009-02-01 12:00:00', 'Etc/GMT-1', 'Europe/Vienna') -- 12 Uhr
              SELECT convert_tz('2009-05-01 12:00:00', 'Etc/GMT-1', 'Europe/Vienna') -- 13 Uhr

            "funzt nicht" - ich bekomme als resultat leider NULL (lt. doku liegt das am fehlenden timezone-support)

            MySQL Server Time Zone Support mit Anleitung.

            Freundliche Grüße

            Vinzenz

            1. "funzt nicht" - ich bekomme als resultat leider NULL (lt. doku liegt das am fehlenden timezone-support)

              MySQL Server Time Zone Support mit Anleitung.

              verlinkst du absichtlich eine alte doku, obwohl ich schon eine neuere verlinkt habe? :p