首页 > 解决方案 > SAS PROC SQL - 如何将字符串转换为日期

问题描述

我想在 SAS 上使用基于日期字段的where条件创建一个 SQL 过程。例如,我需要计算 2002 年 1 月 1 日之后出生的所有学生代码是这样的:

PROC SQL;
SELECT COUNT(*) 
FROM students t
WHERE t.birth_date > '2002-01-01'

查看其他stackOverflow主题,我发现解决方案是使用input()函数,但我不清楚如何处理不同的格式。

在此示例中,birth_date 字段的格式为:01JUL2017:00:00:00

标签: sas

解决方案


您将需要使用该datepart函数仅从birth_date字段中提取日期而不是时间。此外,要让 SAS 识别日期,您需要添加d到日期字符串的末尾。

PROC SQL;
SELECT COUNT(*) 
FROM students t
WHERE datepart(t.birth_date) > '1JAN2002'd;
quit;

推荐阅读