【问题标题】:How to convert varchar to a date in php mysql?如何在 php mysql 中将 varchar 转换为日期?
【发布时间】: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


    【解决方案1】:

    将日期存储为字符串会导致各种问题,而语言环境就是其中之一。如果您可以在DATEDATETIME 列中将这些转换为ISO-8601 formatYYYY-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(REPLACE(REPLACE(fetcha_pago, 'Ene', 'Jan'), 'Abr', 'Apr'), '%d-%M-%Y' ),但我需要更换所有的月份吗?还是只是那些改变的??
    • 只是那些改变的。如果有一些巧合相同,您可以跳过这些。扩展版非常大,所以我把它省略了,但只是重复那个模式。
    • 谢谢。你帮了我很多=)
    猜你喜欢
    • 2011-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    • 2021-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多