Datum + 3 Monate
Philipp
- datenbank
0 Oliver Jooß0 javascriptmaster0 romy0 Thomas Luethi
Hallo zusammen,
Ich habe eine Datenbank, bei der beim Anlegen eines neuen Datensatzes das aktuelle Datup ein ein eigenes Feld gesetzt wird.
Jetzt wollte ich ein "Ablaufdatum" in ein eigenes Feld setzten, das einfach nur 3 Monate zu dem aktuellen Datum dazuzählen sollte.
Mit dem SQL-Behehl funktionier das nicht, also habe ich es mit dem JavaScript-Befehl new Date probiert.
Da soll er das aktuelle Datum mit "var jetzt = new Date();" holen, dann mit get Day, Month und Year die einzelnen Daten da raus lesen und dann in die richtige Form bringen.
Wenn ich dann bei Month 3 addiere, kann es allerdings vorkommen, dass ein "3.14.2003" rauskommt, und das will ich ja nicht....
gibt es da eine bessere Möglichkeit außer mit JavaScript zu sagen
"if(Month == 14) { var Month = "02"; }"
weil da ja dann das Jehr trotzdem bei 2003 bleibt...
Vielen Dank für eure Antworten,
Philipp
Hallole!
Ich hab sowas ähnliches mit PHP gemacht. und zwar wollte ich alle Datensätze die älter als drei Wochen sind löschen lassen.
Dazu habe ich beim auslesen aus der DB verglichen mit:
$_21_days = date("Y-m-d",(time()-(21*24*60*60)));
und habe dann gleich den:
mysql_query("DELETE FROM
ausgeführt.
Falls du weitere Hilfe brauchst, melde dich.
Gruß Oliver
Moin,
Jetzt wollte ich ein "Ablaufdatum" in ein eigenes Feld setzten, das einfach nur 3 Monate zu dem aktuellen Datum dazuzählen sollte.
du kannst das auch mit
for(i=1; i<=3; i++)
{
if(Month > 12)
{
Month = 1;
}
else
{
Month++;
}
}
Damit zählt das Script drei Monate dazu.
cu, javascriptmaster
Hi,
Mit dem SQL-Behehl funktionier das nicht,
aber genau damit solltest Du es machen um nicht in die Schweirigkeiten mit den Jahren zu kommen.
Welches Datenbanksystem benutzt Du denn?
Es gibt für fast alle, Funktionen die Monate, Tage uä. addieren lassen.
Es ist wirklich bessser, solche Dinge von der Datenbank übernehmen zu lassen.
Bsp: in mysql ist es data_add()
ciao
romy
Hi
Welches Datenbanksystem benutzt Du denn?
*gg* wenn ich das wüsste....
Ich bin als Praktikant in die Firma gekommen, und da stand die Datenbank schon und das is sicher keine normale SQL-Syntax... zumindest hab ich die noch nie irgendwo anders gesehen...
ich schreib mal ein paar syntaxbeispiele, vielleicht kannst du mir das dann sagen...
!#INSERTBLOCK(Daten in DB schreiben);
!#LET(K_MAILADRESSE=!#U_NAME;@!#U_DOMAIN;);
!#LET(K_DATUM_ERSTELLT_TXT=!#DATE(tt.mm.jjjj|now););
...
!#ENDINSERTBLOCK;
oder
!#BLOCK(ANSPRECHPARTNER);
!#WHERE(AP_FI_ID=!#FIID;);
!#LOOP;
...
!#ENDLOOP,
!#ENDBLOCK;
Danke für die Hilfe,
Philipp
Hi,
*gg* wenn ich das wüsste....
Ich bin als Praktikant in die Firma gekommen, und da stand die Datenbank schon und das is sicher keine normale SQL-Syntax... zumindest hab ich die noch nie irgendwo anders gesehen...
ich schreib mal ein paar syntaxbeispiele, vielleicht kannst du mir das dann sagen...
gibt es niemanden den Du fragen kannst.
Google ist nicht sehr gesprächig, könnte informix sein
dateadd() heisst das übrigens auch da
ciao
romy
Jetzt wollte ich ein "Ablaufdatum" in ein eigenes Feld setzten, das einfach nur 3 Monate zu dem aktuellen Datum dazuzählen sollte.
Mit dem SQL-Behehl funktionier das nicht, also habe ich es mit dem JavaScript-Befehl new Date probiert.
Um Gottes Willen, lass JavaScript aus dem Spiel!
Es geht doch auch Serverseitig.
Die Datums-Funktionen von MySQL:
http://www.mysql.com/doc/en/Date_and_time_functions.html
Die Typen DATETIME, DATE und TIMESTAMP:
http://www.mysql.com/doc/en/DATETIME.html
Mit dem erwaehnten DATE_ADD() und NOW() solltest Du eigentlich was hinkriegen.
Sonst machst Du es mit PHP oder mit der Skriptsprache,
mit der Du halt auf dem Server auf die Datenbank zugreifst.
Ansatz: Timestamp (im "echten" Unix-Timestamp-Format,
d.h. Sekunden seit dem 1. Januar 1970) nehmen,
3 Monate dazuzaehlen (+7776000 Sekunden oder so),
und dann wieder ins gewuenschte Format zurueckkonvertieren.
Datums- und Zeitfunktionen in PHP:
http://ch.php.net/manual/de/ref.datetime.php
HTH, mfg
Thomas