Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Aktuellsten Timestamp auslesen

Alles rund um die Systemverwaltung, die Administration und Konfiguration Eures Linuxsystems

Moderator: Moderatoren

Antworten
Benutzeravatar
thesecondjoker
Member
Member
Beiträge: 130
Registriert: 26. Okt 2005, 22:01
Wohnort: Lüdenscheid
Kontaktdaten:

Aktuellsten Timestamp auslesen

Beitrag von thesecondjoker » 6. Jun 2006, 18:17

Tach Leute,

ich bin gerade dabei, mir so was wie ein eigenes cms zu basteln. hierbei habe ich eine postgres-db im hintergrund, mit der ich unter anderem Artikel und eine telefonliste verwalte.
bei der telefonliste, speichere ich in jedem tupel einen timestamp mit datum und uhrzeit. den aktuellen stand der liste, möchte ich anhand der timestamps auslesen. habe versucht den auszulesen mit max(lastmodify) (lastmodify = timestamp feld), aber dabei komme immer definitiv falsche daten raus.

kann mir einer sagen, wie ich das abfragen kann und die daten dann auch stimmen? datestyle ist auf european eingestellt. feld ist vom typ "timestamp" und eintragen tu ich das ganze über php mit "date('d.m.Y H.i.s')".


vielen dank im voraus....


gruß
tsj

Werbung:
kuddeldaddeldu
Newbie
Newbie
Beiträge: 12
Registriert: 1. Apr 2006, 00:53
Wohnort: Bremen

Beitrag von kuddeldaddeldu » 8. Jun 2006, 20:15

Hi,

Der Befehl "date('d.m.Y H.i.s')" liefert ein formatiertes Datum, keinen Zeitstempel. Mit dem Befehl "time()" bekommst Du einen Unix-Zeitstempel, den Du in die DB eintragen kannst. Dann müssten auch die Abfragen funktionieren. Um eine schöne (lesbare) Ausgabe zu bekommen, benutzt Du dann den Befehl "date". Dem kannst Du als zweiten Parameter einen Zeitstempel übergeben, also den aus der DB. Sonst nimmt er die aktuelle Zeit.

LG
Athlon XP 1600+
256 MB DDR
auf Elitegroup K7VTA3 REV2.0A
openSuse 10.2

Benutzeravatar
thesecondjoker
Member
Member
Beiträge: 130
Registriert: 26. Okt 2005, 22:01
Wohnort: Lüdenscheid
Kontaktdaten:

Beitrag von thesecondjoker » 8. Jun 2006, 23:39

vielen dank für die antwort.

ich weiss, dass ich mit date keinen richtigen unix-timestamp erzeuge, prinzipiell reicht mir aber dieser "timestamp". ich hab timestamp einfach als oberbegriff für das festhalten von datum und zeit benutzt.

ich habe das problem aber anders gelöst. nach langem langem rumprobieren, habe ich einen weg gefunden, der eigentlich auch am meisten sinn ergibt.

Code: Alles auswählen

SELECT lastmodify FROM telefon ORDER BY lastmodify DESC LIMIT 1
das hat geklappt :D

trotzdem vielen dank für den tipp.


gruß
tsj

Benutzeravatar
thesecondjoker
Member
Member
Beiträge: 130
Registriert: 26. Okt 2005, 22:01
Wohnort: Lüdenscheid
Kontaktdaten:

Beitrag von thesecondjoker » 9. Jun 2006, 15:12

@kuddeldaddeldu:
deine lösung funktioniert nicht so, wie sie vielleicht sollte!

postgres selbst nimmt bei verwendung des timestamp-datentyps keine unix-timestamps an! nimmt man statt des timestamp-datentyps ein varchar oder char oder was auch immer für einen character-datentyp, funktioniert zwar das speicher in der tabelle, aber php liest immer nur das startdatum des timestamp aus (01.01.1970 01:00:00).
habe nun für die generierung des timestamps die postgres-eigene funktion current_timestamp benutzt und die bereits oben erwähnte sortierfunktion.


gruß
tsj

kuddeldaddeldu
Newbie
Newbie
Beiträge: 12
Registriert: 1. Apr 2006, 00:53
Wohnort: Bremen

Beitrag von kuddeldaddeldu » 12. Jun 2006, 21:11

Sorry, hätte erwähnen sollen, dass das Datenbankfeld in diesem Fall vom Typ Integer sein muss. Aber Du hast ja schon selbst eine andere Lösung gefunden. :)

LG
Athlon XP 1600+
256 MB DDR
auf Elitegroup K7VTA3 REV2.0A
openSuse 10.2

Antworten