我在使用SAS中的PROc SQL选择公式时遇到问题。 我做错了什么?谢谢你们。 问候,杰夫
我使用此编码器:
FROM
VTXBUSS.s
WHERE
t1.ifrs_stage_date_at_start IS ’ 31DEC2017% ’
ORDER BY
t1.customer_id,
我收到语法错误。日期的格式为:31DEC2017:00:00:00.000000
SAS给出日志:
错误:值'’'不是有效的SAS名称。警告:明显 宏的调用未解决。 45在哪里 t1.ifrs_stage_at_start NOT = t1.ifrs_stage_PROV AND t1.ifrs_stage_date_at_start =‘31DEC2017%’, _ 76错误22-322:语法错误,预期下列其中一项:;,!, !!,&,(,*,**,+,-,'。',/,<,<=,<>,=,>,> =,AND,EQ,EQT, 除,GE,GET,GROUP,GT,GTT,HAVING,INTERSECT,LE,LET,LT,LTT,NE,NET,NET,NOT,OR,ORDER,OUTER,UNION,^,^ =, |,||,〜,〜=。
答案 0 :(得分:0)
尝试一下:
FROM
VTXBUSS.s
WHERE
t1.ifrs_stage_date_at_start = '31DEC2017'd
ORDER BY
t1.customer_id,
如果您要查找特定的“日期时间”,则应使用例如:
FROM
VTXBUSS.s
WHERE
t1.ifrs_stage_date_at_start = '31DEC2017:00:00:00.000000'dt
ORDER BY
t1.customer_id,
这是因为,在PROC SQL中处理日期时,必须指定要查找的数据类型。如果DATE放置“ d”,如果DATETIME放置“ dt”
答案 1 :(得分:0)
如果要按DATETIME值所代表的日期来过滤它们,可以将其转换为DATE值。
app/views/things/new.html.erb
或转换为特定的DATETIME值
WHERE datepart(t1.ifrs_stage_date_at_start) = '31DEC2017’d
使用DATETIME值范围
WHERE intnx('dtday',t1.ifrs_stage_date_at_start,0) = '31DEC2017:00:00’dt
或者可能转换为字符串
WHERE t1.ifrs_stage_date_at_start between '31DEC2017:00:00’dt and '01JAN2018:00:00’dt