Zeitfunktionen in mySQL zB SUBTIME

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zeitfunktionen in mySQL zB SUBTIME

    Warum gibt SUBTIME(a,b) immer NULL? mySQL 5.0.18-NT, phpmyAdmin 2.7.0 WINXPHOMESP2. Ob man NOW() schreibt oder einen Datum/Zeit String, ändert nichts am NULL.

    Auch im php-Skript geben die Zeitfunktionen nichts vernünftiges - darum bin ich ins myadmin ausprobieren gegangen.

    Abfrage im phpMyAdmin:
    PHP-Code:
    SELECT now( ) , SUBTIMENOW( ) , NOW( ) ) 
    FROM kunde
    LIMIT 0 

    Ergebnis im phpmyAdmin:
    ........now().......................SUBTIME(NOW(),NOW())
    2006-03-12 13:31:23................NULL

  • #2
    SUBTIME() subtracts expr2 from expr and returns the result. expr is a time or datetime expression, and expr2 is a time expression.
    Also SELECT SUBTIME(NOW(), TIME(NOW())) - auch wenn das so ziemlich sinnlos ist.

    Kommentar


    • #3
      Danke. Darauf habe ich nicht geachtet.

      Mit TIMEDIFF(a,b), anstatt SUBTIME können beides DateTime Expressions sein und bekommt eine TimeExpression zurück -- z.B. -8760:00:00 falls der Unterschied ein Normaljahr ist. (Warum es SUBTIME überhaupt braucht...).

      Allerdings ist mein Grundproblem noch nicht ganz gelöst, im Grunde brauche ich folgendes:
      .....SELECT .... WHERE (now- feld) >=20 Sekunden

      Ich habe nicht gelesen, wie man TimeExpressions oder DateTimeExpressions vergleichen kann. Nach Manual 12.1.12, 12.1.13 wäre das ein Vergleich als floating-point-numbers. Als String geht auch nur zufällig (Vorzeichen, "12"<"2"). Um auf der Sicheren Seite zu bleiben, müsste ich nun alle DatümerZeiten als PHP Timestamp, als Integer Sekunden seit 1.1.1970 speichern und damit rechnen.

      edit: massiv gekürzt.

      Zuletzt geändert von globqluqqlo; 12.03.2006, 21:43.

      Kommentar


      • #4
        Also ich habe das inzwischen, in Form von
        ....UNIX_TIMESTAMP(feld) - UNIX_TIMESTAMP(now) > 20

        Kann mich noch jd aufklären, wozu die SQL Datum/Zeit Rechenfunktionen gut sind bzw. wie sie eingeschätzt werden. W ich es angefangen habe, kann man weder Weihnachten ( 25.12.0000), noch die xx-jährigen (WHERE now-geburtstag=xx) SELECTen. und das kann's ja auch nicht sein...

        Kommentar

        Lädt...
        X