You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

含印尼语月份的日期转数字Select SQL失效问题求助

解决印尼语月份日期的SQL筛选问题

我来帮你搞定这个头疼的日期筛选问题!核心问题在于你的expired列用的是印尼语月份名称,直接转数字的方法没法识别这些印尼语词汇,所以得先把它们映射成对应的月份数字,再转换成数据库能识别的日期格式,之后就能正常比较筛选了。

下面分两种常见数据库给你具体的解决方案:

1. MySQL 解决方案

MySQL里我们可以用嵌套的REPLACE把每个印尼语月份替换成对应的数字,再用STR_TO_DATE把字符串转成日期类型,最后和当前日期(转成日期后)比较:

SELECT id, expired
FROM your_table_name -- 记得替换成你的实际表名
WHERE STR_TO_DATE(
    REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
        REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
            expired,
            'Januari', '01'), -- 一月
            'Februari', '02'), -- 二月
            'Maret', '03'), -- 三月
            'April', '04'), -- 四月
            'Mei', '05'), -- 五月
            'Juni', '06'), -- 六月
            'Juli', '07'), -- 七月
            'Agustus', '08'), -- 八月
            'September', '09'), -- 九月
            'Oktober', '10'), -- 十月
            'November', '11'), -- 十一月
            'Desember', '12'), -- 十二月
    '%d %m %Y'
) < STR_TO_DATE('08 Maret 2018', '%d %m %Y');

这段代码的逻辑是:先把所有印尼语月份替换成数字,把03 Maret 2018变成03 03 2018,再转成日期格式,最后筛选出早于08 Maret 2018的记录(也就是已过期的内容)。

2. PostgreSQL 解决方案

PostgreSQL可以用SPLIT_PART拆分日期字符串,再通过CASE语句把印尼语月份转成数字,最后拼接成标准日期格式再转换:

SELECT id, expired
FROM your_table_name -- 替换成你的实际表名
WHERE TO_DATE(
    CONCAT(
        SPLIT_PART(expired, ' ', 1), ' ', -- 提取日部分
        CASE SPLIT_PART(expired, ' ', 2)
            WHEN 'Januari' THEN '01'
            WHEN 'Februari' THEN '02'
            WHEN 'Maret' THEN '03'
            WHEN 'April' THEN '04'
            WHEN 'Mei' THEN '05'
            WHEN 'Juni' THEN '06'
            WHEN 'Juli' THEN '07'
            WHEN 'Agustus' THEN '08'
            WHEN 'September' THEN '09'
            WHEN 'Oktober' THEN '10'
            WHEN 'November' THEN '11'
            WHEN 'Desember' THEN '12'
        END, ' ', -- 替换后的月份数字
        SPLIT_PART(expired, ' ', 3) -- 提取年部分
    ),
    'DD MM YYYY'
) < TO_DATE('08 Maret 2018', 'DD MM YYYY');

额外建议

如果之后经常要处理这类日期查询,建议直接把expired列改成DATE类型,或者新增一个DATE类型的字段存储转换后的日期。这样不仅查询效率更高,也能避免每次都做繁琐的字符串替换操作。

内容的提问来源于stack exchange,提问作者Kangsigit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:34:53