Frage

Wie DATEDIFF benutzen? Wie kann ich dies funktioniert? oder sollte ich DATEDIFF komplett anders?

SELECT DATEDIFF('Started ','will_end') AS 'Duration' FROM my_table WHERE id = '110';

Ich versuche Antwort zu bekommen, wie viele Tage sind innerhalb von zwei Daten.

Ich möchte ein aswer erhalten wie:
Dauer = 7 Tage;

Ich habe diese Art von Datenbank:

Erste | will_end
2009-12-17 | 2009-12-24
2009-12-12 | 2009-12-26

War es hilfreich?

Lösung

Setzen Sie will_end erste, started Sekunde:

SELECT  DATEDIFF('2009-12-24', '2009-12-17') 

---
  7

Entfernen Sie auch die einzelnen Zitate aus Feldnamen:

SELECT  DATEDIFF(will_end, started) AS Duration
FROM    my_table
WHERE   id = 110

oder ersetzen sie durch den Backtick:

SELECT  DATEDIFF(`will_end`, `started`) AS `Duration`
FROM    `my_table`
WHERE   `id` = 110

Andere Tipps

Sie sind immer ein NULL Ergebnis? Sie haben die Spaltennamen in einfache Anführungszeichen in Ihrer Abfrage, was bedeutet, Sie übergeben die Saiten 'Started ' und 'will_end' zu DATEDIFF statt der Spaltenwerte. Versuchen Sie, die einfachen Anführungszeichen zu entfernen, und Sie werden beginnen, einige Ergebnisse zu sehen:

SELECT DATEDIFF(Started, will_end) AS Duration FROM my_table WHERE id = '110';

Beachten Sie, dass dies wird Ihnen ein negatives Ergebnis. Um ein positives Ergebnis zu erhalten, in umgekehrter Reihenfolge der Spalten:

SELECT DATEDIFF(will_end, Started) AS Duration FROM my_table WHERE id = '110';

ersetzt den Auftrag

DATEDIFF ( 'will_end', 'Gestartet')

Ich denke, es gibt drei Parameter übergeben werden, in DATEDIFF (Datumsteil, Startdatum, Enddatum)

, damit Ihr Code wäre DATEDIFF (dd, 'Gestartet', 'will_end')

http://msdn.microsoft.com/en-us/library /ms189794.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top