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

SAS PROC SQL按分钟过滤数据:WHERE子句时间条件报错求助

解决SAS中筛选接听时长小于1分钟通话记录的问题

你遇到的语法错误是因为时间常量的写法不符合SAS的规则,咱们直接来修正并给出几种简便的筛选方法:

错误原因

你写的1:00time20.3不是SAS认可的时间常量格式,SAS识别时间常量需要特定的写法,而且SAS的时间值本质是从午夜开始计算的秒数,所以咱们可以从这两个角度来处理:

方法1:使用标准时间常量格式

用单引号包裹时间字符串,后面加t后缀,SAS会自动将其转换为对应的秒数。筛选小于1分钟(即00:01:00)的记录,代码如下:

PROC SQL;
    SELECT call_date, pick_up
    FROM p1
    WHERE pick_up < '00:01:00't;
QUIT;

方法2:直接用秒数比较

因为1分钟等于60秒,而SAS的时间值存储的就是秒数,所以直接和60比较更简洁:

PROC SQL;
    SELECT call_date, pick_up
    FROM p1
    WHERE pick_up < 60;
QUIT;

扩展:灵活按分钟+秒筛选

如果之后需要筛选比如小于2分30秒的记录,两种方式都可以扩展:

  • 时间常量写法:'00:02:30't
  • 秒数计算:2*60 + 30 = 150,直接写WHERE pick_up < 150

这样就能轻松按你需要的时长条件筛选数据啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:35:49