php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.12.2008, 18:50  
Benutzer
 
Benutzerbild von echo
 
Registriert seit: 20.09.2008
Beiträge: 91
PHP-Kenntnisse:
Anfänger
echo ist zur Zeit noch ein unbeschriebenes Blatt
Standard [Erledigt] Das Kreuz mit dem Datum...

Hallo liebe Profis!

Mich würde sehr interessieren, wie Ihr das Problem mit dem Speichern eines Datums in MySQL löst. Ich weiß, es gibt Unmengen von Tutorials, Forenthreads und Manuals zum Thema. Ich bin mir aber noch nicht ganz darüber im Klaren, was die beste Methode ist.

Zunächst, was ich erreichen will:
  • In einer MySQL-Tabelle wird durch den User ein neuer Kunde angelegt
  • Es soll die exakte Zeit mit gespeichert werden, zu der dieser Kunde angelegt wurde
  • In einer Suchabfrage soll der User die Möglichkeit haben, nach Kunden zu suchen, die an einem bestimmten Tag erstellt wurden
Mein bisheriger Lösungsansatz:
  • Einfach den UNIX-Timestamp (time()) mit speichern.
Problem:
  • Bei der Suche müsste der User immer die Minuten und Sekunden mit angeben, wenn er nach dem Erstellungsdatum sucht, was unsinnig wäre.
Jetzt bin ich am Grübeln:
  • 2 Felder anlegen, eines in der UNIX-Timestamp mit und eines wo er ohne Minuten und Sekunden gespeichert wird*? Dazu müsste zum einen jedes mal der UNIX-Timestamp von den Minuten und Sekunden "befreit" werden und zum zweiten wie gesagt zwei Felder in der Tabelle belegt werden...scheint mir zu umständlich u. Resourcen-intensiv...
  • Das mit dem UNIX-Timestamp ganz vergessen und lieber die DATE/TIMESTAMP-Funktion von MySQL nehmen? Nachteil: Ich habe gelesen, dass dann die Sortierbarkeit nicht so gut/einfach sein soll wie beim UNIX-Timestamp...
Puuuh, was machen?!

DANKE!
Lisa
_________
* Das mit Minuten und Sekunden, weil ich anderswo im Skript dann doch die genaue Zeit brauche.
echo ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 27.12.2008, 19:03  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Wenn Du einen Unix timestamp verwendest, kannst Du mit >= und < arbeiten bzw BETWEEN
PHP-Code:
$lower strtotime('2008-12-27');
$upper strtotime('+1 day'$lower);

$sql "
  SELECT
    ...
  WHERE
    yourdatefield BETWEEN $lower AND $upper
"

Wenn Du in der MySQL Tabelle ein DateTime/Timestamp Feld hast, kannst Du mittels Date() den Datumsanteil extrahieren
PHP-Code:
$sql "
  SELECT
    ...
  WHERE
    Date(yourdatefield) = '2008-12-27'
"

David ist offline  
Alt 27.12.2008, 20:25  
Benutzer
 
Benutzerbild von echo
 
Registriert seit: 20.09.2008
Beiträge: 91
PHP-Kenntnisse:
Anfänger
echo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi David!

Danke für Deine Antwort! Ich habe mich jetzt für die MySQL-Date-Variante entschieden.

Das aktuelle Datum, an dem der Kunde angelegt wurde, speichere ich so:
PHP-Code:
INSERT INTO kunden  (kd_createdVALUES (NOW())
//Und natürlich noch alle anderen Felder, die gespeichert werden sollen
// kd_created ist vom Typ DATETIME 
Nach Datum suchen und sortieren und formartieren, hab ich so gemacht:
PHP-Code:
<?php
require('dbconnect.php');

$abfrage "SELECT *, DATE_FORMAT(kd_created, '%d.%m.%y') AS 'de_date'  FROM kunden WHERE Date(kd_created) <= '2008-12-27' ORDER BY kd_created";
$ergebnis mysql_query($abfrage);
while(
$row mysql_fetch_object($ergebnis))
   {
   echo 
"$row->kd_nr - $row->kd_suchname - $row->de_date <br>";
   }
?>
Ausgegeben wird dann:
903108 - Müller - 25.12.08
903109 - Weber - 26.12.08
903110 - Hansen - 27.12.08
Siehe auch:
infos24 mysql > mysql Manipulationen mit Datumsangaben

Geändert von echo (27.12.2008 um 21:05 Uhr). Grund: Funktion DATE-FORMAT() nachträglich entdeckt :-)
echo ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bei Abfrage nur neuestes Datum auswählen alexh PHP Tipps 2008 16 22.09.2008 17:43
[Erledigt] Datensätze nach Datum sortieren und nächstes Datum ausgeben kinerdar Datenbanken 2 12.09.2008 12:00
[Erledigt] Datums Foumulareingabe mit Datebankeintrag Datum vergleichen freakymiky PHP Tipps 2008 1 21.06.2008 15:49
Nach Datum sortieren zoro Datenbanken 9 28.11.2007 14:00
Jahrestag ermitteln cyberholic PHP Tipps 2006 4 17.12.2006 12:50
näherstes datum zum aktuellen datum herausfinden flflfl Datenbanken 7 01.05.2006 16:57
wie sortiert man Datum bei SQL Abfrage? rockinchina PHP Tipps 2005-2 8 27.09.2005 12:57
Daten aus MYSQL nach Datum filtern Datenbanken 3 19.09.2005 16:09
[Erledigt] Datum vergleichen PHP Tipps 2005-2 1 03.09.2005 16:55
[Erledigt] datum in mysql datenbank! Datenbanken 7 09.07.2005 14:43
datum auslesen eintragen PHP Tipps 2005 23 13.04.2005 20:39
Datum und Zeit PHP Tipps 2004-2 5 11.12.2004 23:53
Formular -> Datum -> MSQL PHP Tipps 2004-2 5 25.11.2004 23:05
[Erledigt] Datum vergleichen! PHP Tipps 2004 1 20.09.2004 14:53
Problem mit Datum ?! Datenbanken 21 04.08.2004 16:35

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql convert datetime \ohne minuten\

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:18 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum