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

SQLite中使用strftime函数处理日期列出现NULL值问题排查

SQLite strftime返回NULL的原因及解决
  • 问题出在日期格式不规范:SQLite的strftime()函数仅支持严格符合ISO 8601标准的日期时间字符串,要求时间部分的小时必须是两位数字(比如06:37:00),而你的数据里2021-02-14 6:37:00这类行的小时是一位数,函数无法解析,因此返回NULL。
  • 先确认列类型:如果日期列是TEXT类型,格式不规范会直接导致解析失败,可通过以下语句检查:
    SELECT your_date_col, typeof(your_date_col) FROM your_table;
    
  • 修复步骤:
    1. 批量补全一位小时为两位:
      UPDATE your_table
      SET your_date_col = 
        CASE
          -- 匹配"日期 一位数:分钟:秒"的格式
          WHEN your_date_col LIKE '% _:%:%' THEN
            SUBSTR(your_date_col, 1, 11) || '0' || SUBSTR(your_date_col, 12)
          ELSE your_date_col
        END;
      
    2. 重新执行strftime提取年月:
      SELECT strftime('%Y-%m', your_date_col) AS year_month FROM your_table;
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 15:37:35