aktueller monat +1 von mysql berechnen lassen

aktueller monat +1 von mysql berechnen lassen

am 09.05.2007 16:24:04 von Markus Schmidt

Hi NG!

Habe da folgendes Problemelein,

aus einer MySQL Tabelle erzeuge ich eine CSV Datei, die ein Datum enthält.
Dieses ist aber nicht als Date-Feld, sondern in 2 Spalten als "beginnmonat"
und "beginnjahr" in der Tabelle enthalten.

Beim CSV Export darf aber - auch wenn "beginnmonat" und "beginnjahr" leer
sind, als Datum kein NULL Feld rauskommen, sondern dann muss der 01.0x.200x
rauskommen. (0x = nächster Monat)

Beispiel: der CSV Export startet am 11.05. und die Felder "beginnjahr" und
"beginnmonat" sind leer, dann muss als Datum der 01.06.2007 rauskommen.

Folgende query baut (falls vorhanden) das Datum zusammen:

[..]
if(tabelle.beginnmonat,
CONCAT('01.',tabelle.beginnmonat,'.',tabelle.beginnjahr),
wiekrieg ich den 01. des nächsten monats raus,
) AS Lieferbeginn,
[..]

lt dem Manual soll ja \o und \Y Monat und Jahr ausgeben können... aber mit
CONCAT('01.',\o+1,'.'.\Y) klappts nicht wirklich...

Kann mir jemand helfen?

Dankeschön :-)
Markus

P.S. das Ganze mit PHP abzufragen wäre die denkbar schlechteste Lösung....

Re: aktueller monat +1 von mysql berechnen lassen

am 09.05.2007 16:54:35 von Andreas Kretschmer

Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)

Re: aktueller monat +1 von mysql berechnen lassen

am 09.05.2007 17:37:08 von Daniel Fischer

Andreas Kretschmer!

> select date_trunc('month', current_date + '1month'::interval);
>
> sollte das gehen, Du mußt nur noch in MySQL verfügbare Funktionen für
> obiges finden.

In MySQL sieht das deutlich hübscher aus:

select last_day(now()) + interval 1 day;


Gruß
Daniel

Re: aktueller monat +1 von mysql berechnen lassen

am 11.05.2007 19:36:07 von Markus Schmidt

> In MySQL sieht das deutlich hübscher aus:
>
> select last_day(now()) + interval 1 day;

Hallo Daniel,

danke :-) Hat geklappt! *uff*

>
>
> Gruß
> Daniel
>