【发布时间】:2014-11-20 01:59:43
【问题描述】:
我正在尝试在 proc SQL 中使用 SAS 中的一些 SQL 代码。 SQL Server 中的原始代码可以正常工作。
case
when entry_stamp between '2011-10-29 21:00:00.000' and '2011-11-06 02:00:00.000'
then dateadd(hour, 5, cast(convert (char(16), entry_stamp, 121) as datetime))
... ... else dateadd(hour, 6, cast(convert (char(16), entry_stamp, 121) as datetime)) end ,
我在 121 的括号中收到语法错误。稍微搜索一下表明 proc SQL 不支持 dateadd?
谢谢。
错误 22-322:语法错误,应为以下之一:!、!!、&、、*、+、-、/、、=、 >, >=, ?, AND, BETWEEN, CONTAINS, ELSE, END, EQ, EQT, GE, GET, GT, GTT, IN, IS, LE, LET, LIKE, LT, LTT, NE, NET, NOT, NOTIN, OR, WHEN, ^, ^=, |、||、~、~=。
【问题讨论】:
-
请注意,SAS 将日期时间存储为整数秒,因此添加一个小时只是将 3600 添加到日期时间(并且无需担心类型转换)。