sql - 在 PROC SQL 和 Teradata 中使用数据语句过滤记录时遇到麻烦
问题描述
在 proc sql 中,我希望通过日期范围过滤我的结果,并且我不断收到错误。我的日期变量是 DATE8,格式是 04JUL1776。
我尝试在代码中的特定日期周围添加一些输入。那没有产生任何结果。
proc sql noprint;
%tdconnectTo;
create table ptemp.DL2_2018_IDS as
select * from connection to Teradata (
select distinct
PERS_ID
, REC_EFF_DT
, REC_TERM_DT
from oeauacbrgdlp1.DV_DIM_MBR
where PERS_ID is not null
and REC_EFF_DT <= '31DEC2018'd and REC_TERM_DT >= '01JAN2018'd
order by PERS_ID
);
disconnect from teradata;
quit;
解决方案
如果您使用的是传递 SQL,那么您需要以数据库可接受的形式提供值。对于 SQL 日期文字:
REC_EFF_DT <= date'2018-12-31' and REC_TERM_DT >= date'2018-01-01'
或者如果您出于某种原因确实需要以 SAS DATE9 形式提供字符串值,则应明确告诉数据库将该字符串转换为日期:
REC_EFF_DT <= to_date('31DEC2018','DDMONYYYY') and REC_TERM_DT >= to_date('01JAN2018','DDMONYYYY')
或者
REC_EFF_DT <= CAST('31DEC2018' AS DATE FORMAT'DDMMMYYYY') and REC_TERM_DT >= CAST('01JAN2018' AS DATE FORMAT'DDMMMYYYY')
推荐阅读
- c# - 如何在 stripe.net NuGet Package 15.3.2 版本中使用 Persons 对象
- r - 如何通过滞后日期和ID根据另一个数据框替换数据框中列的某些值?
- python - 从 gridlayout 中删除最后一个小部件
- kotlin - 通过杰克逊序列化“Nothing?”属性
- bigcommerce - Bigcommerce 模具产品网格或卡片
- visual-studio-code - 在不使用鼠标的情况下在 VSCode 编辑器中运行 python 代码时如何交换焦点?
- firebase - 从 Firebase 数据库中读取数据
- javascript - 使用javascript单击按钮时如何在ul中显示多个div的p标签的内容
- c++ - generic_category 和 system_category 之间有什么区别?
- kotlin - 在 Kotlin 中,是否通过标准库支持栈、队列、堆、树等数据结构?