tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
1221
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Sasser Sasser ist offline Mitglied Smaragd
    Registriert seit
    Mar 2008
    Beiträge
    1.000
    Guten Morgen!

    Ich versuche Domains abzurufen und diese nach Datum zu gruppieren.

    Aber was mache ich falsch?

    Code :
    1
    
    SELECT DATE_FORMAT(`time`, '%d.%m.%Y') AS item, COUNT(`id`) AS number FROM `domains` WHERE DATE_FORMAT(`time`, '%Y-%m-%d') >= DATE_ADD(CURDATE(), INTERVAL - 4 WEEK) GROUP BY DATE_FORMAT(`time`, '%Y-%m-%d')
     

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    MySQL?

    in welchem Format ist das Feld time?

    Du verwendest dauerns DATE_FORMAT(). Das macht aus einem MySQL-Datum ein String.
    DATA_ADD() gibt aber ein Datum und nciht ein String zurück.
    Um das Datum aus einem Zeitstempel (Datum und Zeit) zu extrahieren gibt es die Funktion DATE()

    Code sql:
    1
    2
    3
    4
    5
    6
    7
    
    SELECT 
        DATE_FORMAT(`time`, '%d.%m.%Y') AS item, 
        COUNT(`id`) AS NUMBER 
    FROM 
        `domains` 
    WHERE DATE(`time`) >= DATE_ADD(DATE(NOW()), INTERVAL - 4 WEEK) 
    GROUP BY DATE(`time`)
    Geändert von Yaslaw (11.05.10 um 10:47 Uhr)
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  3. #3
    Sasser Sasser ist offline Mitglied Smaragd
    Registriert seit
    Mar 2008
    Beiträge
    1.000
    Das Feld ist in einem normalen int-Format, da ich darin einen Unix-Timestamp abgespeichert habe.

    Gibt es eine Möglichkeit aus diesem per SQL wieder ein Datum zu machen und zu sortieren?
     

  4. #4
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Code sql:
    1
    2
    
    FROM_UNIXTIME(`time`)  -- Zeitstempel mit Uhrzeit
    DATE(FROM_UNIXTIME(`time`)) -- Zeitstempel ohne Uhrzeit

    Nachtrag:
    Und vom Zeitstempel zu UNIX-Time:
    Code sql:
    1
    
    UNIX_TIMESTAMP(TIMESTAMP)
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  5. #5
    Sasser Sasser ist offline Mitglied Smaragd
    Registriert seit
    Mar 2008
    Beiträge
    1.000
    Vielen Dank, es funktioniert!

    Kann man das Datum auch formatiert als dd.mm.YYYY ausgeben?

    Code :
    1
    2
    3
    
    SELECT DATE(FROM_UNIXTIME(`time`)) AS item, COUNT(`id`) AS number FROM `domains`
    WHERE DATE(FROM_UNIXTIME(`time`)) >= DATE_ADD(CURDATE(), INTERVAL - 4 WEEK)
    GROUP BY DATE(FROM_UNIXTIME(`time`))

    // EDIT: Habs hinbekommen
     

  6. #6
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Im SELECT-Teil, kannst du das DATE() weglassen und dem FROM_UNIXTIME das FOrmat mitgeben
    Code sql:
    1
    
    FROM_UNIXTIME(`time`, '%d.%m.%Y') AS item
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

Ähnliche Themen

  1. Realisierung ein Timestamp aus mehreren Tabellen abfragen
    Von spikaner im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 29.04.08, 10:32
  2. Unix Timestamp nach Date?
    Von MasterEvil im Forum Java
    Antworten: 2
    Letzter Beitrag: 08.05.06, 12:21
  3. [MySQL 5.0.1] Sortieren nach Name und Timestamp
    Von dkf im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 14.01.06, 04:45
  4. Timestamp nach heutigen Datum, aber beliebiges Jahr, abfragen
    Von MM2410 im Forum Relationale Datenbanksysteme
    Antworten: 5
    Letzter Beitrag: 23.11.05, 17:39
  5. DB-Eintrag mittels timestamp abfragen
    Von mayooo im Forum PHP
    Antworten: 2
    Letzter Beitrag: 30.05.05, 10:46