Ваша соль действительно должна быть случайной.
Небольшое улучшение вашего кода (вы могли бы сделать намного лучше, например, использовать bcrypt или хотя бы немного растянуть на sha512):
$salt = md5(time() . 'some-other-static-salt'); //more random than time() along.
$q = $dbc -> prepare("INSERT INTO accounts (password, salt) VALUES (?, ?)");
$q -> execute(array(hash('sha512', 'somestaticsalt' . $_POST['password'] . $salt), $salt));
Теперь вы больше не зависите от CURRENT_TIMESTAMP, возвращающего то же самое, что и time (), и вы получаете лучшую соль.
РЕДАКТИРОВАТЬ: если вы настаиваете на том, чтобы сделать это по-своему, посмотрите, что MySQL возвращает для этого столбца отметки времени. Могу поспорить, что это выглядит как "Y-m-d H: i: s", а не как метка времени Unix. Конечно, ты должен был сам это понять. Предполагая, что это правда, оберните это в strtotime, и вы можете иметь некоторый успех.