Domanda

Sono sicuro che questo deve essere un problema comune, ma non riesco a trovare da nessuna parte così qui va:

Non ho date in questo formato: 09/Jul/2003:00:03:48 -0300 e voglio spingerli in un campo DATETIME in MySQL.

Qual è il modo più semplice per farlo? spingendoli come è risultato in loro di essere azzerati.

È stato utile?

Soluzione

MySQL non include il fuso orario in datetimes, ma è possibile utilizzare:

STR_TO_DATE('09/Jul/2003:00:03:48', '%d/%b/%Y:%H:%i:%s')

... per convertire una rappresentazione di stringa di una data / ora in un DATETIME per la memorizzazione nel database.

Riferimento:

Altri suggerimenti

Per quanto ne so non può essere modificato e deve essere nel formato di seguito:

'AAAA-MM-GG HH: MM: SS'

http://dev.mysql.com/doc/refman/ 5.1 / it / datetime.html

La mia funzione preferita in tutti PHP è strtotime(). Se ciò non può interpretare l'ingresso, allora probabilmente non posso codice di qualcosa che poteva.

Quindi mi sento di fare qualcosa di simile:

mysql_real_escape_string(date('Y-m-d H:i:s', strtotime($stragely_formatted_date)));

per preparare una stringa DATA per dare a MySQL.

Come sempre, pensare fusi orari nel vostro design.

Il mysql_real_escape_string() è probabilmente inutile, ma mi sento sempre più sicuro quando lo uso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top