用TIME构建案例陈述

时间:2018-03-19 19:22:34

标签: sql time sas

这是我的代码示例。

PROC SQL;

CREATE TABLE SUCCESS_TIME_INTERVALS AS

SELECT

A.*,

CASE 

WHEN A.TIME BETWEEN  9:00:00 AND 11:00:00 THEN '9AM_11AM'

WHEN A.TIME BETWEEN 11:00:00 AND 13:00:00 THEN '11AM_1PM'

ELSE 'OTHER' END AS TIME_INTERVALS

FROM TABLE1 A

;QUIT; 

运行代码时出现此错误

  

ERROR 22-322:语法错误,期待以下之一:!!,*,**,   +, - ,/,AND,||。

     

ERROR 76-322:语法错误,语句将被忽略。

不确定如何解决此问题。

非常感谢

1 个答案:

答案 0 :(得分:3)

时间常数需要单引号:

PROC SQL;
CREATE TABLE SUCCESS_TIME_INTERVALS AS
    SELECT A.*,
           (CASE WHEN A.TIME BETWEEN '09:00:00' AND '11:00:00' THEN '9AM_11AM'
                 WHEN A.TIME BETWEEN '11:00:00' AND '13:00:00' THEN '11AM_1PM'
                 ELSE 'OTHER'
            END) AS TIME_INTERVALS
    FROM TABLE1 A;
QUIT; 

显然,如果time不是字符串,那么你需要恰当地表达常量:

PROC SQL;
CREATE TABLE SUCCESS_TIME_INTERVALS AS
    SELECT A.*,
           (CASE WHEN A.TIME BETWEEN '09:00:00't AND '11:00:00't THEN '9AM_11AM'
                 WHEN A.TIME BETWEEN '11:00:00't AND '13:00:00't THEN '11AM_1PM'
                 ELSE 'OTHER'
            END) AS TIME_INTERVALS
    FROM TABLE1 A;
QUIT;