steffi: MySQL: alle Einträge dieses Monats

hi,
für jeden eintrag speichere ich in einem eigenen feld den timestamp mit, wann der datensatz erstellt wurde. nun möchte ich per select von der tabelle alle einträge haben, die in diesem monat erstellt worden sind.
sicher könnte man auch vom php script die zeitspanne, also den timestamp vom 1. des monats und letzten davon ermitteln und somit einschränken, doch wenn es von mysql selbst etwas gibt, wäre das noch besser.
gibt es sowas? wie heißt die passende funktion?
danke

  1. hi,

    für jeden eintrag speichere ich in einem eigenen feld den timestamp mit, wann der datensatz erstellt wurde. nun möchte ich per select von der tabelle alle einträge haben, die in diesem monat erstellt worden sind.

    Die Datumsfunktionen YEAR() und MONTH() können dir da weiterhelfen - oder auch einfach die Stringfunktion LEFT() - da dein TIMESTAMP ja immer mit dem Jahr und Monat beginnt, kannst du damit abfragen, ob er mit deinem analog aufbereiteten Jahr-Monat beginnt. Achtung, dabei gewähltes Anzeigeformat des Timestamps beachten, bzw. dass dieser ab MySQL 4.1.0 das selbe Display Format nutzt wie DATETIME.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. da dein TIMESTAMP ja immer mit dem Jahr und Monat beginnt, kannst du damit abfragen, ob er mit deinem analog aufbereiteten Jahr-Monat beginnt.

      sprechen wir von der selben sache? timestamp ist für mich die zeit, angegeben in sec von dem 1970 gezählt... also kein datum wie 2006-07-1 o.ä.!

      1. hi,

        da dein TIMESTAMP ja immer mit dem Jahr und Monat beginnt, kannst du damit abfragen, ob er mit deinem analog aufbereiteten Jahr-Monat beginnt.
        sprechen wir von der selben sache?

        Kann sein, kann auch nicht sein.
        Du hattest nicht klar gesagt, ob du einen UNIX-Timestamp, oder den Spaltentyp TIMESTAMP von MySQL meinst.

        timestamp ist für mich die zeit, angegeben in sec von dem 1970 gezählt... also kein datum wie 2006-07-1 o.ä.!

        Gut, du meinst also einen UNIX-Timestamp. Diesen könntest du in einer MySQL-Query mit der Funktion FROM_UNIXTIME() dynamisch in ein Format umwandeln, mit dem MySQLs weitere Datumsfunktionen rechnen können.

        IdR. hat es jedoch weitaus mehr Vorteile, wenn du zum Abspeichern von Datümern in einer Tabelle auch die Datumstypen der Datenbank nutzt, anstatt einen UNIX Timestamp in ein Integer-Feld o.ä. zu speichern.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. hi
          select FROM_UNIXTIME(ts) from... , wobei ts das unix timestamp integer feld ist, gibt immer NULL für jeden datensatz zurück :(