scheuri: ...und MySQL...Datum vergeleichen

hallo miteinander...

ich hab da ein verzwicktes Problem...

In meiner DB habe ich ein timestamp in welchem das datum in yyyymmddHHMMSS (bsp.: 20000703144255) steht.
Dieses lese ich aus und konvertiere es per Perl, dass es so aussieht:
dd.mm.yyyy HH:MM (Bsp.: 03.07.2000 14:42).

Nun möchte ich mit perl das aktuelle datum abfragen und es mit dem timestamp des DB-eintrages vergleichen.
Wird eine bestimmte Zeit (in tagen) überschritten soll der Eintrag gelöscht werden.

Nun ja...ich hab keine ahnung wie ich dies anstellen soll, vor allem weil das aktuelle datum mit yyyymmdd ausgelesen wird...oder sogar als epoch (also nur sekunden...)

hat da jemand eine ahnung wie ich perl dazu bringe, dass datum entweder "richtig" auszulesen, oder wie ich mein datum in epoch auslese und dann vergleiche..

vielen dank für eure hilfe...und ich hoffe ich hab nicht allzu unklar erklärt.

gruss
scheuri

  1. Hi,

    In meiner DB habe ich ein timestamp in welchem das datum in yyyymmddHHMMSS (bsp.: 20000703144255) steht.

    Das ist prima vergleichbar. Zwei solche Datumswerte als String vergleichen und fertig.

    Dieses lese ich aus und konvertiere es per Perl, dass es so aussieht:
    dd.mm.yyyy HH:MM (Bsp.: 03.07.2000 14:42).

    Das ist leider nicht mehr gut brauchbar für Deine Zwecke. Weshalb ISO-Format auch als YYYY-MM-DD HH:MM:SS empfohlen wird - das wiederum hätte die String-Vergleichbarkeit.

    Nun möchte ich mit perl das aktuelle datum abfragen und es mit dem timestamp des DB-eintrages vergleichen.
    Wird eine bestimmte Zeit (in tagen) überschritten soll der Eintrag gelöscht werden.

    Mir ist unklar, wie Du das anfängst. Hast Du ein entsprechendes Vergleichsdatum, oder mußt Du die Differenz in Tagen ausrechnen und diese abfragen? In Fall 1 reicht ein beliebiges vergleichbares Format, in Fall 2 würde ich auf epoch-Sekunden gehen und die Differenz gegen "<n> * 24 * 60 * 60" testen.

    Nun ja...ich hab keine ahnung wie ich dies anstellen soll, vor allem weil das aktuelle datum mit yyyymmdd ausgelesen wird...oder sogar als epoch (also nur sekunden...)

    Was für letzteres genau optimal wäre!

    Formuliere Deine Anforderung noch mal ganz von vorn:
    In welchen beiden Formaten bekommst Du Deine beiden Datumswerte? Was genau mußt Du damit tun? Was steht Dir zur Verfügung?
    Dann läßt sich feststellen, welches Format am besten für einen Vergleich geeignet ist und welche Umsetzungsfunktion dorthin sinnvollerweise verwendet werden sollte.

    hat da jemand eine ahnung wie ich perl dazu bringe, dass datum entweder "richtig" auszulesen, oder wie ich mein datum in epoch auslese und dann vergleiche..

    Beantworte die gestellten Fragen. YYYYMMDDHHMMS oder epoch-Sekunden eignen sich beide zum Vergleichen. Wenn Du eines von beiden auf einer der beiden Seiten hast, dann konvertiere die andere dorthin. Wie das geht, hängt davon ab, welches Format Du hast und welches Format Du haben willst - es gibt Perl-Module mit entsprechenden Umrechnungsfunktionen. (Dein Problem ist so offensichtlich allgemeiner Natur, daß Du darauf vertrauen kannst, daß es in CPAN bereits gelöst ist - mir fehlen nur Informationen, um zu entscheiden, welche der vielen Varianten für Dich optimal wäre.)

    vielen dank für eure hilfe...und ich hoffe ich hab nicht allzu unklar erklärt.

    Nicht unklar, nur unvollständig. ;-)
    mfG - Michael