REMAP_TIMESTAMP


Applies to: CELONIS 4.0 CELONIS 4.2 CELONIS 4.3 CELONIS 4.4

Description

The Remap Timestamp operator counts time units in specified intervals. Users can create intervals like working weeks with breaks in between and count the number of time units inside these time intervals.
Оператор Remap Timestamp считает единицы времени в указанных интервалах. Пользователи могут создавать интервалы, такие как рабочие недели с перерывами между ними, и подсчитывать количество единиц времени в этих интервалах времени.

Syntax


REMAP_TIMESTAMPS ( table.column, time unit)


REMAP_TIMESTAMPS ( table.column, time unit, DAY [HH:MM-HH:MM] )

  • Calendar specification: If no time is specified, a full day (00:00-24:00) is assumed.
  • Спецификация календаря: если время не указано, предполагается полный день (00: 00-24: 00).

REMAP_TIMESTAMPS ( table.column, time unit, FACTORY_CALENDAR ( table.start_date_column, table.end_date_column [, filter_condition ] ) )

  • Factory calendar specification
  • Спецификация заводского календаря

Tips

The query may have more than one calendar specification.
When the query has more than one calendar specification for the same day, only the last one is considered and others are ignored. Queries can have either a calendar specification or a factory calendar specification.

Запрос может иметь более одной спецификации календаря.
Если запрос имеет более одной спецификации календаря на один и тот же день, рассматривается только последняя, а остальные игнорируются. Запросы могут иметь либо спецификацию календаря, либо заводскую спецификацию календаря.

How It Works

In the basic case, the operator counts the number of specified time units from the date 01.01.1970 to the date value in the input column and returns it as INT value.
В базовом случае оператор подсчитывает количество указанных единиц времени от даты 01.01.1970 до значения даты в столбце ввода и возвращает его как значение INT.

Calendar Specification

A calendar specification allows to restrict the accounted time to the given time intervals per week. Input dates outside of the given intervals are moved to the beginning of the next interval. There are two types of calendar specifications:
  • Day Based Calendar
  • Time Based Calendar

Спецификация календаря позволяет ограничить учитываемое время указанными временными интервалами в неделю. Входные даты за пределами заданных интервалов перемещаются в начало следующего интервала. Существует два типа спецификаций календаря:
  • Дневной календарь
  • Календарь на основе времени

Day Based Calendar

A day based calendar is triggered when only full days (no times) are specified. Such a calendar works only on full days. The actual daytime is ignored. For example the result for 01.01.2018 00:00 and 01.01.2018 23:30 is the same if day based calendar is used.
If the behavior of the day based calendar is not desired but the specified interval should be based on full days, it is recommended to specify at least one day with a time range of 00:00-23:59. The tiny error margin should be negligible in most cases.

Дневной календарь запускается, когда указываются только полные дни (без времени). Такой календарь работает только в полные дни. Фактическое дневное время игнорируется. Например, результат для 01.01.2018 00:00 и 01.01.2018 23:30 одинаков, если используется календарь на основе дня.
Если поведение календаря на основе дней нежелательно, но указанный интервал должен основываться на полных днях, рекомендуется указать хотя бы один день с диапазоном времени 00: 00-23: 59. Крошечная погрешность должна быть незначительной в большинстве случаев.

Time Based Calendar

It is always applied, if at least on one weekday the daytime is restricted. A time based calendar takes the full timestamp into account.

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

Factory Calendar

The Factory Calendar allows to restrict the accounted time to fine grained intervals. The intervals are defined by the given start and end column. The Factory Calendar itself is a table, that has to be added to the data model. The table needs to have at least a start date column and an end date column, which can then be used by the Factory Calendar statement. For example, a Factory Calendar table could contain up-time intervals of a machine. Applying this to the Remap Timestamp operator allows to calculate exact throughput calculation for this machine's up-time.

Заводской календарь позволяет ограничить учитываемое время мелкозернистыми интервалами. Интервалы определяются заданным начальным и конечным столбцом. Заводской календарь - это таблица, которую нужно добавить в модель данных. В таблице должен быть хотя бы столбец начальной даты и столбец конечной даты, которые затем могут использоваться оператором Factory Calendar. Например, таблица Factory Calendar может содержать интервалы времени работы машины. Применение этого к оператору Remap Timestamp позволяет рассчитать точный расчет пропускной способности для времени работы машины.

Examples

Calculating duration in days based on a constant timestamp.
Расчет продолжительности в днях на основе постоянной метки времени.
Query
Column1

REMAP_TIMESTAMPS(TO_TIMESTAMP('02.01.1970', 'DD.MM.YYYY'), DAYS)

Input
Output
Result

Column1 : INT
1




Calculating duration in days based on a constant timestamp and specified calendar.
Расчет продолжительности в днях на основе постоянной метки времени и указанного календаря.
Query
Column1

REMAP_TIMESTAMPS(TO_TIMESTAMP('01.12.1969 06:30.30', 'DD.MM.YYYY HH:mm.SS'), DAYS, MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY)

Input
Table1

Column1 : DATE
null
Thu Jan 01 1970 00:00:00.000

Output
Result

Column1 : INT
-23




Calculating duration in hours based on a constant timestamp and specified calendar with time intervals.
Расчет продолжительности в часах на основе постоянной метки времени и указанного календаря с временными интервалами.
Query
Column1

REMAP_TIMESTAMPS(TO_TIMESTAMP('29.12.1969 06:30.30', 'DD.MM.YYYY HH:mm.SS'), HOURS, MONDAY 8:00-13:00 WEDNESDAY 8:00-13:00)

Input
Table1

Column1 : DATE
null
Thu Jan 01 1970 00:00:00.000

Output
Result

Column1 : INT
-10




Calculating duration in unit seconds by using a factory calendar.
Расчет продолжительности в единицах секунд с использованием заводского календаря.
Query
Column1

REMAP_TIMESTAMPS("activity"."time", SECONDS, FACTORY_CALENDAR("calendar"."start", "calendar"."end"))

Input
activity

id : INT
case : INT
act : STRING
time : DATE
1
1
'a'
Thu Jan 01 1970 00:00:00.000
2
1
'b'
Thu Jan 01 1970 00:01:00.000
3
1
'c'
Thu Jan 01 1970 00:02:00.000
4
1
'd'
Thu Jan 01 1970 00:03:00.000
5
2
'a'
Thu Jan 01 1970 00:01:00.000
6
2
'b'
Thu Jan 01 1970 00:02:00.000
7
2
'c'
Thu Jan 01 1970 00:04:00.000
8
2
'd'
Thu Jan 01 1970 00:05:00.000
9
3
'a'
Thu Jan 01 1970 00:00:00.000
10
3
'b'
Thu Jan 01 1970 00:01:00.000
11
3
'b'
Thu Jan 01 1970 00:02:00.000
12
3
'b'
Thu Jan 01 1970 00:03:00.000

calendar

id : INT
start : DATE
end : DATE
1
Thu Jan 01 1970 00:00:00.000
Thu Jan 01 1970 00:01:00.000
2
Thu Jan 01 1970 00:02:00.000
Thu Jan 01 1970 00:03:00.000
3
Thu Jan 01 1970 00:04:00.000
Thu Jan 01 1970 00:05:00.000
4
Thu Jan 01 1970 00:06:00.000
Thu Jan 01 1970 00:07:00.000

Output
Result

Column1 : INT
0
60
60
120
60
60
120
180
0
60
60
120




Calculating duration in unit seconds by using a factory calendar with a filter.
Расчет длительности в единичных секундах с использованием заводского календаря с фильтром.
Query
Column1

REMAP_TIMESTAMPS("activity"."time", SECONDS, FACTORY_CALENDAR("calendar"."start", "calendar"."end", "calendar"."filter" = 1))

Input
activity

id : INT
case : INT
act : STRING
time : DATE
1
1
'a'
Thu Jan 01 1970 00:00:00.000
2
1
'b'
Thu Jan 01 1970 00:01:00.000
3
1
'c'
Thu Jan 01 1970 00:02:00.000
4
1
'd'
Thu Jan 01 1970 00:03:00.000
5
2
'a'
Wed Dec 31 1969 23:59:00.000
6
2
'b'
Thu Jan 01 1970 00:02:00.000
7
2
'c'
null
8
2
'd'
Thu Jan 01 1970 00:05:00.000
9
3
'a'
Thu Jan 01 1970 00:00:00.000
10
3
'b'
Thu Jan 01 1970 00:01:00.000
11
3
'b'
Thu Jan 01 1970 00:02:00.000
12
3
'b'
Thu Jan 01 1970 00:03:00.000

calendar

id : INT
filter : INT
start : DATE
end : DATE
1
1
Thu Jan 01 1970 00:00:00.000
Thu Jan 01 1970 00:01:00.000
2
1
null
Thu Jan 01 1970 00:03:00.000
3
1
Thu Jan 01 1970 00:04:00.000
null
4
2
Thu Jan 01 1970 00:04:00.000
Thu Jan 01 1970 00:03:00.000

Output
Result

Column1 : INT
0
60
60
60
0
60
null
60
0
60
60
60




Example for a Day Based Calendar. The actual day time is ignored. 01.01.1970 was a Thursday.
Пример для календаря на основе дня. Фактическое дневное время игнорируется. 01.01.1970 был четверг.
Query
Column1

REMAP_TIMESTAMPS(TO_TIMESTAMP('01.01.1970 04:00', 'DD.MM.YYYY HH:mm'), HOURS, THURSDAY FRIDAY)

Input
Output
Result

Column1 : INT
0




Example for a Day Based Calendar. The actual day time is ignored. 01.01.1970 was a Thursday.
Пример для календаря на основе дня. Фактическое дневное время игнорируется. 01.01.1970 был четверг.
Query
Column1

REMAP_TIMESTAMPS(TO_TIMESTAMP('01.01.1970 04:00', 'DD.MM.YYYY HH:mm'), HOURS, THURSDAY FRIDAY 00:00-12:59)

Input
Output
Result

Column1 : INT
4





Содержание

  1. Data Types
  2. DATE
  3. FLOAT
  4. INT
  5. STRING
  6. Functions
  7. Aggregation Functions
  8. GLOBAL
  9. Pull Up Aggregation Functions
  10. PU_AVG
  11. PU_COUNT
  12. PU_COUNT_DISTINCT
  13. PU_FIRST
  14. PU_LAST
  15. PU_MAX
  16. PU_MEDIAN
  17. PU_MIN
  18. PU_QUANTILE
  19. PU_SUM
  20. Standard Aggregation Functions
  21. AVG
  22. COUNT
  23. COUNT_TABLE
  24. COUNT DISTINCT
  25. MAX
  26. MEDIAN
  27. MIN
  28. QUANTILE
  29. STDEV
  30. SUM
  31. TRIMMED_MEAN
  32. VAR
  33. Moving Aggregation Functions
  34. MOVING_AVG
  35. MOVING_COUNT
  36. MOVING_COUNT_DISTINCT
  37. MOVING_MAX
  38. MOVING_MEDIAN
  39. MOVING_MIN
  40. MOVING_STDEV
  41. MOVING_SUM
  42. MOVING_TRIMMED_MEAN
  43. RUNNING_TOTAL
  44. HOUR_NOW
  45. TODAY
  46. DATE_BETWEEN
  47. DAYS_BETWEEN
  48. HOURS_BETWEEN
  49. MILLIS_BETWEEN
  50. MINUTES_BETWEEN
  51. MONTHS_BETWEEN
  52. SECONDS_BETWEEN
  53. WORKDAYS_BETWEEN
  54. YEARS_BETWEEN
  55. ADD_DAYS
  56. ADD_HOURS
  57. ADD_MILLIS
  58. ADD_MINUTES
  59. ADD_MONTHS
  60. ADD_SECONDS
  61. ADD_WORKDAYS
  62. ADD_YEARS
  63. CALENDAR_WEEK
  64. DATE_MATCH
  65. DAY
  66. DAY_OF_WEEK
  67. HOURS
  68. MILLIS
  69. MINUTES
  70. MONTH
  71. QUARTER
  72. REMAP_TIMESTAMP
  73. SECONDS
  74. TO_TIMESTAMP
  75. YEAR
  76. DateTime Rounding Functions
  77. ROUND_DAY
  78. ROUND_HOUR
  79. ROUND_MINUTE
  80. ROUND_MONTH
  81. ROUND_QUARTER
  82. ROUND_SECOND
  83. ROUND_WEEK
  84. ROUND_YEAR
  85. DECISION_TREE
  86. KMEANS
  87. LINEAR_REGRESSION
  88. Math Functions
  89. ABC
  90. ABS
  91. CEIL
  92. FLOOR
  93. LOG
  94. POWER
  95. ROUND
  96. SQRT
  97. SQUARE
  98. ISNULL
  99. Process Functions
  100. ACTIVATION_COUNT
  101. CALC_CROP
  102. CALC_CROP_TO_NULL
  103. CALC_REWORK
  104. CALC_THROUGHPUT
  105. MATCH_PROCESS
  106. PROCESS_ORDER
  107. PROCESS EQUALS
  108. SOURCE / TARGET
  109. VARIANT
  110. Statistic Functions
  111. QNORM
  112. ZSCORE
  113. CONCAT
  114. LEFT
  115. LEN
  116. LOWER
  117. LTRIM
  118. REVERSE
  119. RIGHT
  120. RTRIM
  121. STR_TO_INT
  122. SUBSTRING
  123. UPPER
  124. Operators
  125. CASE WHEN
  126. FILTER
  127. Math Operators
  128. Addition Operator
  129. Division Operator
  130. MODULO
  131. Multiplication Operator
  132. Subtraction Operator
  133. Predicate Operators
  134. IN
  135. LIKE
  136. Ссылки на мануалы