Perché ho bisogno del simbolo @ per utilizzare questa funzione?
Il simbolo @ significa che stai usando una variabile, quindi la stringa letta non viene messa subito nella tabella ma in una memoria che ti consente di operare con essa prima di inserirla. Maggiori informazioni in http://dev.mysql.com/ doc/refman/5.0/en/user-variables.html
Il formato dei dati ('%c/%e/%Y') dovrebbe essere il formato dei dati inseriti o l'output desiderato?
È il formato dei dati inseriti, maggiori informazioni in http://dev.mysql.com/doc/refman/5.5/en/funzioni-data-e-ora.html#function_str-to-date
Posso catturare il tempo anche in questo modo?
Dovresti essere in grado di farlo purché tu abbia scelto il formato corretto, qualcosa come
STR_TO_DATE(@temp_date,'%c/%e/%Y %h:%i:%s');