char to time_t
-
Hi, ich habe ein problem und zwar bekomme ich wie gewünscht die daten aus meiner SQL Datenbank in TIMESTAMP- Format als char-Zeiger. Nun muss ich aber um mit difftime() arbeten zu können diesen in time_t umwandeln, dch habe ich keine Ahnung wie ich das anstellen soll.
Danke für Antwort
-
time_t_var = strtoul(string, NULL, 0);
-
Danke für die Idee, aber leider geht es damit nicht. ich habe es mit nem Kollegen rausbekommen, hier für die die das selbe Problem haben:
char * string; times = strdup(string); times[4]=0; times[7]=0; times[10]=0; times[13]=0; times[16]=0; test.tm_year = atoi(times)-1900; test.tm_mon = atoi(times+5)-1; test.tm_mday = atoi(times+8); test.tm_hour = atoi(times+11); test.tm_min = atoi(times+14); test.tm_sec = atoi(times+17); test.tm_isdst = 0; t = mktime(&test);
-
Wie sieht denn der TIMESTAMP String aus O_o
strtoul funktioniert einwandfrei, wenn man nen Unix-Timestamp hat wie 1126192153.. Nur das kann man mit strtoul in ein time_t umwandeln. Wenn du da jetzt "05/06/07 03:05" hast, gehts natürlich nicht ...
-
naja er sieht immer wie folgendermassen aus:
2005-08-08 15:40:43
das gibt mir die SQL Datenbank zurück
-
Hi,
sowas musst du aber auch sagen. Das was du da zurück bekommst ist kein timestamp. Das ist die stringrepräsentation eine date-time-feldes.
Für sowas gibt es strptime, wobei ich nicht weiss ob das standard ist.struct tm stm; strptime(dtfield,"%Y-%m-%d %T",&stm) /* wenn du dann time_t brauchst nimmst mktime */
-
das ist timestamp ^^, so steht es auch in der datenbank, und als datentyp steht timestamp, bei SQl sah das bis jetzt bei mir immer so aus.
mfg