Konvertierung von C++-String nach MySQL-Date

Konvertierung von C++-String nach MySQL-Date

am 08.09.2006 11:33:20 von Stefan Degens

Hallo,
ich bin zur Zeit dabei Daten mit Hilfe von C++ bzw. C in eine MySLQ
Tabelle zu konvertieren.
Ich habe mal eine Frage zu verschiedenen Datentypen zwischen C/C++ und
MySQL. Wenn man reine Texte und integers in die MySql Datenbank gibt es
keine Problem. Wie sieht es denn aus, wenn es zum Beispiel Datum. Ich
habe einen String vorliegen wie z.B. "18.8.1999". Was muß ich denn
machen, um das in eine MySQL-Datenbank reinzuhauen? Es muß in der
Datenbank als Typ Date stehen

char * date=3D"18.8.1999";
char buffer[342534];
char name[423534];
mysql_real_escape_string(mysql, name, date,getByte(date));
sprintf(buffer, "INSERT into test(datum) values('%s')",name);
return(mysql_query(mysql, buffer));

So wird es nicht funzen...

Re: Konvertierung von C++-String nach MySQL-Date

am 08.09.2006 12:07:42 von Claus Reibenstein

Stefan Degens schrieb:

> Wie sieht es denn aus, wenn es zum Beispiel Datum. Ich
> habe einen String vorliegen wie z.B. "18.8.1999".

DATE hat in SQL das Format YYYY-MM-DD. Du musst Dein Datum also
entsprechend umbauen.

Gruß. Claus

Re: Konvertierung von C++-String nach MySQL-Date

am 08.09.2006 12:08:54 von Christian Kirsch

Stefan Degens schrieb:
> Hallo,
> ich bin zur Zeit dabei Daten mit Hilfe von C++ bzw. C in eine MySLQ
> Tabelle zu konvertieren.
> Ich habe mal eine Frage zu verschiedenen Datentypen zwischen C/C++ und
> MySQL. Wenn man reine Texte und integers in die MySql Datenbank gibt es
> keine Problem. Wie sieht es denn aus, wenn es zum Beispiel Datum. Ich
> habe einen String vorliegen wie z.B. "18.8.1999". Was muß ich denn
> machen, um das in eine MySQL-Datenbank reinzuhauen? Es muß in der
> Datenbank als Typ Date stehen
>
> char * date="18.8.1999";
> char buffer[342534];
> char name[423534];
> mysql_real_escape_string(mysql, name, date,getByte(date));
> sprintf(buffer, "INSERT into test(datum) values('%s')",name);
> return(mysql_query(mysql, buffer));
>

Nein. Du musst das Datum als String übergeben, und zwar in dem Format,
das MySQL erwartet. Details dazu findest Du im Handbuch, in der Abt.
zu Datentypen/Date

Re: Konvertierung von C++-String nach MySQL-Date

am 08.09.2006 12:32:13 von Axel Schwenke

"Stefan Degens" wrote:

> Ich habe mal eine Frage zu verschiedenen Datentypen zwischen C/C++ und
> MySQL. Wenn man reine Texte und integers in die MySql Datenbank gibt es
> keine Problem. Wie sieht es denn aus, wenn es zum Beispiel Datum.

Parse Error. Ist es eigentlich zu viel verlangt, daß du *komplette*
Sätze schreibst?

> Ich
> habe einen String vorliegen wie z.B. "18.8.1999". Was muß ich denn
> machen, um das in eine MySQL-Datenbank reinzuhauen? Es muß in der
> Datenbank als Typ Date stehen
>
> char * date="18.8.1999";

Das freundliche MySQL-Handbuch erklärt hier:

http://dev.mysql.com/doc/refman/5.0/en/datetime.html

welche String-Darstellungen MySQL automatisch nach DATE konvertieren
kann. Für Härtefälle gibt es dann noch STR_TO_DATE():

http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functio ns.html

> So wird es nicht funzen...

Merksatz: um ein 1337 H4><0r zu sein, muß man was auf dem Kasten
haben. Es reicht nicht, h4)(0rSp3aK Slang zu schreiben. Das wirkt
nur albern.


XL

Re: Konvertierung von C++-String nach MySQL-Date

am 08.09.2006 13:12:28 von Claus Reibenstein

Axel Schwenke schrieb:

> Merksatz: um ein 1337 H4><0r zu sein, muß man was auf dem Kasten
¯¯¯¯ ¯¯¯¯¯¯
> haben. Es reicht nicht, h4)(0rSp3aK Slang zu schreiben. Das wirkt
¯¯¯¯¯¯¯¯¯¯¯
> nur albern.

Nicht alberner als Deine unleserlichen Hieroglyphen. So was passt
vielleicht in irgendwelche "hacker groupz", aber nicht hierher.

Gruß. Claus

Re: Konvertierung von C++-String nach MySQL-Date

am 08.09.2006 16:37:36 von Axel Schwenke

Claus Reibenstein wrote:
> Axel Schwenke schrieb:
>
>> Merksatz: um ein 1337 H4><0r zu sein, muß man was auf dem Kasten
> ¯¯¯¯ ¯¯¯¯¯¯
>> haben. Es reicht nicht, h4)(0rSp3aK Slang zu schreiben. Das wirkt
> ¯¯¯¯¯¯¯¯¯¯¯
>> nur albern.
>
> Nicht alberner als Deine unleserlichen Hieroglyphen. So was passt
> vielleicht in irgendwelche "hacker groupz", aber nicht hierher.

Dein Ironiedetektor ist kaputt.


XL