Могу ли я стандартизировать / преобразовать данные в datetime, чтобы иметь те же «минуты»? - PullRequest
0 голосов
/ 18 сентября 2018

Я разработчик SAS, использующий SAS Data Integration Studio.

В настоящее время у меня есть сценарий, в котором данные на многих вкладках Excel имеют различное значение времени (минуты). Например

Tab A will have datetime
2010-Jan-01 01:00:00
2010-Jan-02 01:00:00
2010-Jan-03 01:00:00

Tab B will have datetime below:
2010-Jan-01 01:25:00
2010-Jan-02 01:25:00
2010-Jan-03 01:25:00

Обратите внимание, что таблица A и таблица B будут иметь разные столбцы, кроме ОДНОГО ЖИДКОСТИ (но не минут).

Когда я объединяю эти 2 таблицы, я хочу игнорировать минуты или, вернее, стандартизировать их до 01: 00: 00.

Есть ли способ сделать это?

В настоящее время, если я объединю эти две таблицы, у меня будет «Дублировать» (я имею в виду тот же день, но другую запись / результат из-за разных минут).

Представьте, что в таблице A у меня есть столбец с именем Age Таблица B, у меня есть столбец с именем Net Worth.

Когда я объединю эти 2 таблицы, я ожидаю, что таблица будет иметь 1 запись в одну строку за 2010-январь-01 01:00:00 с возрастом и собственным капиталом.

Однако, когда дата и время не совпадают, у них будет новая запись с возрастом, содержащим значение, но с чистой чистой стоимостью или аналогичным образом.

В поисках вашей помощи, как этого добиться.

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Вы можете сократить до ближайшего часа, используя функцию intnx перед сопоставлением:

data _null_;
  mydatetime = datetime();
  mydatehour = intnx('dthour',mydatetime, 0, 'b');
  put mydatetime= is8601dt. / mydatehour= is8601dt.;
run;
0 голосов
/ 18 сентября 2018

Есть функция DATEPART(datetime)

Пример:

data _null_;
   conn='01feb94:8:45'dt;
   servdate=datepart(conn);
    dhms = dhms(datepart(conn),hour(conn),0,0);
put  dhms datetime.;;
run;

результат в журнале

01FEB94:08:00:00
...