在 proc SQL (SAS) 中将时间(日期类型)转换为数字

Convert time (date type) to numeric in proc SQL (SAS)

我有一个日期时间变量 (x= '19NOV2021: 10:00:00'),它是一个日期类型。我正在尝试获取小时数并将其转换为数字。在这种情况下,只有 10.

proc sql;
create table abc as
select timepart(x) as x format=time2.

以上输出 10 作为日期类型。我使用下面的尝试将其转换为数字,但得到 3(数字类型)作为我的输出:

proc sql;
create table def as
select input(put(x,best.),8.) as x

如何将时间转换为数字并得到 10 作为我的输出?

使用hour().

timepart() returns SAS 时间,表示自午夜以来经过的秒数。您可以使用 hour(timepart(x)),但没有必要,因为 hour 适用于日期时间和时间。