1

I have in my database a date fetcha_pago in the format: "08-Abr-2016" and it is a varchar. When I do the following:

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

It does not work because the date is in Spanish. It has to be "Apr" instead of "Abr". Is there a way to respect "Abr" for the month?

4

1 回答 1

0

将日期存储为字符串会导致各种问题,而语言环境就是其中之一。如果您可以将这些转换为ISO-8601 格式,则YYYY-MM-DD HH:MM:SS在 aDATEDATETIME列中。

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

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

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

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

于 2016-04-19T17:41:20.710 回答