El formato a usar tiene que ser
exactamente y hasta la última coma el mismo que está en el campo, o te dará NULL. En tu caso, la hora no está almacenada con segundos, por lo que no debe ir.
Esto da resultado:
Código MySQL:
Ver originalmysql
> SELECT STR_TO_DATE('Wednesday 4th, May 2011, 05:44 PM', '%W %D, %M %Y, %l:%i %p') Fecha
;+---------------------+
| Fecha |
+---------------------+
| 2011-05-04 17:44:00 |
+---------------------+
Como ya te dije, esta función es muy estricta. Esto es lo que pasa si le eliminas una coma:
Código MySQL:
Ver originalmysql
> SELECT STR_TO_DATE('Wednesday 4th, May 2011, 05:44 PM', '%W %D %M %Y, %l:%i %p') Fecha
;+-------+
| Fecha |
+-------+
+-------+
1 row
in set, 1 warning
(0.00 sec
)