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

如何在php mysql中将varchar转换为日期?,php,mysql,datetime,str-to-date,Php,Mysql,Datetime,Str To Date,我的数据库中有一个日期fetcha_pago,格式为:“08-Abr-2016”,它是一个varchar。当我执行以下操作时: STR_TO_DATE(fecha_pago, '%d-%M-%Y') 它不起作用,因为日期是西班牙语的。它必须是“Apr”而不是“Abr”。有没有办法尊重这个月的“Abr” 将日期存储为字符串会导致各种各样的问题,而locale就是其中之一。如果您可以在日期或日期时间列中将它们转换为,YYYY-MM-DD HH:MM:SS 日期格式化应该在PHP中完成,并且只有当

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

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

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

将日期存储为字符串会导致各种各样的问题,而locale就是其中之一。如果您可以在
日期
日期时间
列中将它们转换为,
YYYY-MM-DD HH:MM:SS

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

您可能必须将12条
REPLACE()
语句链接在一起,才能重新编写每个月的名称:

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

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

将日期存储为字符串会导致各种问题,而locale就是其中之一。如果您可以在
日期
日期时间
列中将它们转换为,
YYYY-MM-DD HH:MM:SS

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

您可能必须将12条
REPLACE()
语句链接在一起,才能重新编写每个月的名称:

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

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

此解决方案适用于我:STR_to_DATE(替换(替换(fetcha_pago,'Ene,'Jan'),'Abr,'Apr'),'%d-%M-%Y'),但我需要替换所有月份吗?或者仅仅是那些改变的??仅仅是那些改变的。如果有一些恰好相同,您可以跳过这些。扩展版相当大,所以我省略了,但重复一下,谢谢。你帮了我很多=)这个解决方案从我开始工作:STR_TO_DATE(替换(替换(fetcha_pago,'Ene,'Jan'),'Abr','Apr'),'%d-%M-%Y'),但是我需要替换所有的月份吗?或者仅仅是那些改变的??仅仅是那些改变的。如果有一些恰好相同,您可以跳过这些。扩展版相当大,所以我省略了,但重复一下,谢谢。你帮了我很多