Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Hilfe bei einem SQL Statement (Differenz zwischen Tagen)

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
pvdb
PostRank 5
PostRank 5
Beiträge: 321
Registriert: 16.01.2005, 22:37
Wohnort: Hannover

Beitrag von pvdb » 02.01.2007, 21:04

Hallo,

ich bekomme ein bestimmte SQL Anweisung nicht hin. In meiner Tabelle habe ich neben meinen Daten die Spalten date1 und date2. Beide sind vom Typ DateTime. Nun möchte ich gerne alle Datensätze Abfragen, die eine Zeitdifferenz von maximal 10 Tagen haben, also wo date2 - date1 < 10 tage.

Abfragen wie z.B.

select * from table where date2 - date1 < 10

gehen ja nicht.

Kann mir da jemand helfen wie sich dieses Problem lösen lässt?

Phil

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


w3news
PostRank 8
PostRank 8
Beiträge: 938
Registriert: 10.10.2006, 23:17
Wohnort: Berlin

Beitrag von w3news » 02.01.2007, 21:07

ich würde es mit timestamp machen,also entweder gleich den timestamp in die abelle eintragen oder das datum umwandeln, da weiß ich aber jetzt nicht ob das überhaupt geht...
MfG Lars

News, Tarife und Mobilfunk: w3news.de
Mobile Datenflatrates

Anonymous

Beitrag von Anonymous » 02.01.2007, 21:12

select * from table where DATEDIFF(date1, date2) < 10

wenn nicht geht, dann so:

select feld1, feld 2, feld3, DATEDIFF(date1, date2) as differenz from table where differenz < 10

https://dev.mysql.com/doc/refman/5.0/en ... tions.html

Anonymous

Beitrag von Anonymous » 02.01.2007, 21:16

w3news hat geschrieben:ich würde es mit timestamp machen,also entweder gleich den timestamp in die abelle eintragen oder das datum umwandeln, da weiß ich aber jetzt nicht ob das überhaupt geht...
mit dem Umwandeln in Unixtimestamp und dann die differenz in sekunden ermitteln war auch mein erster Gedanke... bin dann bei nachschlagen des befehls über DATEDIFF() gestolpert... und das macht ja genau das was er möchte...

w3news
PostRank 8
PostRank 8
Beiträge: 938
Registriert: 10.10.2006, 23:17
Wohnort: Berlin

Beitrag von w3news » 02.01.2007, 22:30

...DATEDIFF(date1, date2)...
wieder dazu gelernt ;)
MfG Lars

News, Tarife und Mobilfunk: w3news.de
Mobile Datenflatrates

pvdb
PostRank 5
PostRank 5
Beiträge: 321
Registriert: 16.01.2005, 22:37
Wohnort: Hannover

Beitrag von pvdb » 03.01.2007, 09:04

vielen dank für die hilfe. klappt bestens. hatte es mir etwas komplexer vorgestellt, da ich nicht wusste das es dafür ne funktion gibt.

phil

acersun
PostRank 1
PostRank 1
Beiträge: 29
Registriert: 10.08.2006, 09:33

Beitrag von acersun » 03.01.2007, 12:52

w3news hat geschrieben:ich würde es mit timestamp machen,also entweder gleich den timestamp in die abelle eintragen oder das datum umwandeln, da weiß ich aber jetzt nicht ob das überhaupt geht...
das müßte so gehen:

SELECT * FROM table WHERE UNIX_TIMESTAMP(date2)-UNIX_TIMESTAMP(date1) < 60*60*24*10

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag