sas - 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
解决方案
您将需要使用该datepart
函数仅从birth_date
字段中提取日期而不是时间。此外,要让 SAS 识别日期,您需要添加d
到日期字符串的末尾。
PROC SQL;
SELECT COUNT(*)
FROM students t
WHERE datepart(t.birth_date) > '1JAN2002'd;
quit;
推荐阅读
- docusignapi - 由于 mime 类型不匹配,来自 https://account-d.docusign.com/error?aspxerrorpath=/oauth/token 的脚本被阻止
- odoo - Odoo中ir作为前缀的含义
- mysql - 将数据框写入mysql表并设置主键等属性
- java - PDFBox - “没有主要清单属性”
- kubernetes - kubernetes-coredns 无法解析裸机配置中的 kubernetes.default
- java - 如何创建 JList 和灰色按钮当用户从列表中选择项目时,按钮颜色变为黑色?
- r - 将汇总结果转换为汇总表
- python - ImportError:没有名为 google.cloud.error_reporting 的模块
- node.js - Azure App Service 中的节点应用程序 npm install 超时,即使对于单个包,无论如何,非常不可靠
- php - ftp_connect 无法连接到 $ftp_server