Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL sta convertendo i miei valori di timestamp in 0000-00-00

Ciò si verifica abbastanza spesso.
Stai confondendo il timestamp di mysql che in realtà è un valore simile a DATETIME con il timestamp di UNIX, che è il numero di secondi trascorsi dal 1970-01-01.

Devi cambiare il formato del campo o il valore di inserimento.
Puoi anche trovare alcune funzioni di mysql a portata di mano, ad esempio CURDATE() o NOW()

$sql = 'INSERT INTO users VALUES (NULL,:username,:password,:email,NOW(),NOW())';
$stmt = $pdo->prepare($sql);
$stmt->execute(array($username, $password, $email));

Ma personalmente eviterei i timestamp di MySQL. possono essere modificati inaspettatamente, rovinando tutti i tuoi dati. Userei DATETIME e impostare tutti i valori manualmente.