【发布时间】:2016-08-12 01:21:01
【问题描述】:
我的数据库中有一个日期fetcha_pago,格式为:“08-Abr-2016”,它是一个 varchar。当我执行以下操作时:
STR_TO_DATE(fecha_pago, '%d-%M-%Y')
它不起作用,因为日期是西班牙语。它必须是“Apr”而不是“Abr”。有没有办法尊重这个月的“Abr”?
【问题讨论】:
标签: php mysql datetime str-to-date
我的数据库中有一个日期fetcha_pago,格式为:“08-Abr-2016”,它是一个 varchar。当我执行以下操作时:
STR_TO_DATE(fecha_pago, '%d-%M-%Y')
它不起作用,因为日期是西班牙语。它必须是“Apr”而不是“Abr”。有没有办法尊重这个月的“Abr”?
【问题讨论】:
标签: php mysql datetime str-to-date
将日期存储为字符串会导致各种问题,而语言环境就是其中之一。如果您可以在DATE 或DATETIME 列中将这些转换为ISO-8601 format、YYYY-MM-DD HH:MM:SS。
日期格式应该在 PHP 中完成,并且只有在您知道要渲染到的语言环境时才能完成。数据库中的任何内容都应以中性格式存储。字符串日期是无用的,它们不能被排序或索引。
您可能必须将 12 个 REPLACE() 语句链接在一起才能重新编写每个月的名称:
STR_TO_DATE(REPLACE(REPLACE(fetcha_pago, 'Ene', 'Jan'), 'Abr', 'Apr'), '%d-%M-%Y')
这只是两个级别,但您可以扩展以涵盖所有不同的级别。
【讨论】: