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

基于出生日期判断2025-01-01时是否年满18岁及日期格式处理

判断2025年1月1日是否年满18岁的解决方案

针对你的需求(出生日期列格式为dd/mm/yyyy,判断2025年1月1日当天是否年满18岁),核心思路是先将字符串格式的出生日期转换为标准日期类型,再与2007年1月1日(2025-18=2007)进行比较——若出生日期早于或等于该日期,则当天已年满18岁。

关键问题修正

你之前尝试用strftime转成数字格式比较的方式,在日期格式不规范(比如日/月是单数字)时容易出错,更可靠的做法是先把dd/mm/yyyy字符串转为标准YYYY-MM-DD格式的日期,再做比较。

SQLite 实现示例

假设你的表名为your_table,出生日期列名为date_of_birth,可以用以下查询:

SELECT
    date_of_birth,
    CASE
        -- 将dd/mm/yyyy字符串拆分为年-月-日,再转为日期类型
        WHEN date(substr(date_of_birth, 7, 4) || '-' || substr(date_of_birth, 4, 2) || '-' || substr(date_of_birth, 1, 2)) <= '2007-01-01'
        THEN '已年满18岁'
        ELSE '未满18岁'
    END AS is_adult_status
FROM your_table;
  • 拆分逻辑:substr(date_of_birth,7,4)提取年份(dd/mm/yyyy的第7-10位),substr(date_of_birth,4,2)提取月份(第4-5位),substr(date_of_birth,1,2)提取日期(第1-2位),拼接成标准日期格式后用date()函数转换。

其他SQL方言参考(如MySQL)

如果使用MySQL,可以直接用STR_TO_DATE函数解析日期格式:

SELECT
    date_of_birth,
    CASE
        WHEN STR_TO_DATE(date_of_birth, '%d/%m/%Y') <= '2007-01-01'
        THEN '已年满18岁'
        ELSE '未满18岁'
    END AS is_adult_status
FROM your_table;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 21:07:06