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

mysql STR_TO_DATE non funziona

Lascialo a funzione più semplice S. DATE() restituisce la parte della data di una stringa nel formato AAAA-MM-GG:

SELECT DATE(birthday) FROM `test`

Risultato:

2004-12-25      
2004-12-25      
1994-12-25      
1994-12-01      

Il motivo per cui il tuo codice non funziona è che STR_TO_DATE() prevede gli stessi formati di input e output, ad es. STR_TO_DATE('2014-08-29', '%Y-%m-%d') . Dai un'occhiata a esempi nella documentazione . Questa funzione viene utilizzata principalmente per convertire date o orari da un formato all'altro, dove il formato originale è qualcosa di esterno a MySQL e vuoi importare i dati nel formato della data di MySQL, ad esempio - in questo caso, saprai qual è l'originale il formato della data è.

Esempio:

SELECT STR_TO_DATE('20041225', '%Y-%m-$d');   -- null - formats don't match
SELECT STR_TO_DATE('2004-12-25', '%Y-%m-%d'); -- 2004-12-25 - formats match