如何将 varchar 转换为 php mysql 中的日期?

How to convert varchar to a date in php mysql?

我的数据库中有一个日期 fetcha_pago,格式为:“08-Abr-2016”,它是一个 varchar。当我执行以下操作时:

STR_TO_DATE(fecha_pago, '%d-%M-%Y') 

它不起作用,因为日期是西班牙语。它必须是 "Apr" 而不是 "Abr"。有没有办法尊重"Abr"这个月?

将日期存储为字符串会导致各种问题,语言环境就是其中之一。如果您可以在 DATEDATETIME 列中将它们转换为 ISO-8601 formatYYYY-MM-DD HH:MM:SS

日期格式应该在 PHP 中完成,并且只有当您知道要呈现到的语言环境时。数据库中的任何内容都应以中性格式存储。字符串日期几乎没有用,无法对它们进行排序或索引。

您可能需要将十二个 REPLACE() 语句链接在一起以重写每个月的名称:

STR_TO_DATE(REPLACE(REPLACE(fetcha_pago, 'Ene', 'Jan'), 'Abr', 'Apr'), '%d-%M-%Y')

这只是两个级别,但您可以扩展以涵盖所有不同的级别。