Heinz: mysql, 5.1 Probleme mit TIME_TO_SEC

Hallo,

ist an meiner Query etwas falsch?

Ich bekomme NULL als Ergebnissmenge.

  
SELECT TIME_TO_SEC(TIMEDIFF(NOW(), Spalte)) FROM Tabelle where andereSpalte="Wert"  

Heinz

  1. moin,

    ist an meiner Query etwas falsch?

    syntakisch offenbar nicht,da du keine fehlermeldung bekommst. inhaltlich können wird dazu wenig sagen, ohne beispieldaten zu kennen und zu wissen, was du haben willst.

    Ilja

  2. Hi!

    ist an meiner Query etwas falsch?
    Ich bekomme NULL als Ergebnissmenge.

    Bei welchen Ausgangsdaten? Und meinst du konkret gar keine Ergebnismenge oder eine Ergebnismenge mit NULL-Werten drin?

    SELECT TIME_TO_SEC(TIMEDIFF(NOW(), Spalte)) FROM Tabelle where andereSpalte="Wert"

    Wenn NULL im Spiel ist, kommt immer NULL raus (außer bei explizitem Darauftesten).

    Lo!

    1. Bei welchen Ausgangsdaten? Und meinst du konkret gar keine Ergebnismenge oder eine Ergebnismenge mit NULL-Werten drin?

      Hi,

      Ausgangswerte:

      Spalte=1264533843
      Spalte2=Name

      Als Ergebniss wollte ich die Differenz (in Sekunden) seit dem Wert in Spalte bis jetzt.

      Heinz

      1. Hi!

        Ausgangswerte:
        Spalte=1264533843

        Das ist kein gültiger DATE- oder DATETIME-Ausdruck. Gültig als Argument für DATEDIFF() wären DATE- oder DATETIME-Spalten oder Strings im Format '%Y-%m-%d' oder '%Y-%m-%d %H:%i:%s'. Wenn diese Zahl ein Unix-Timestamp darstellen soll, musst du sie mit FROM_UNIXTIME() in einen DATETIME-Ausdruck umwandeln. Die Frage wäre dann, warum ist das ein INT-Feld und nicht gleich richtig ein DATETIME-Feld?

        Lo!