#azure #azure-data-factory #azure-data-factory-2
#azure #azure-data-factory #azure-data-factory-2
Вопрос:
Я изо всех сил пытаюсь получить временную метку Unix для текущего времени в ADF. В принципе, мне нужно количество миллисекунд (мс) с момента эпохи. Я пытался использовать встроенную функцию ticks в ADF, но это не то, что мне нужно. Также документация по тикам не совсем понятна. В нем говорится, что функция возвращает количество тиков с момента указанной метки времени. 1 тик = 100 наносекунд и 1000000 наносекунд = 1 мс. Поэтому, учитывая это, я использовал следующее выражение в заданной переменной activity:-
@{ div(ticks('1970-01-01T00:00:00.0000000Z'),10000) }
Таким образом, ожидается, что всякий раз, когда я его запускаю, он должен давать мне количество миллисекунд с момента начала эпохи (до момента выполнения) — так что по этому определению каждый раз, когда я его запускаю, он должен возвращать мне другое значение. Но он возвращает фиксированное значение 62135568000000 каждый раз, когда я его запускаю. Так что либо документация неверна, либо она на самом деле не вычисляет то, что мне действительно нужно.
Ответ №1:
Функция ticks() возвращает количество тиков из ‘0001-01-01T00:00:00.0000000Z’ в параметр ticks(), а не из ‘1970-01-01T00:00:00.0000000Z’.Вот почему вы всегда получаете фиксированное значение 62135568000000.
Я пробовал @{ticks('0001-01-01T00:00:00.0000000Z')}
, результат равен 0.
Итак, если вы хотите получить ms от ‘1970-01-01T00: 00: 00.0000000Z’ до текущего времени, вы можете попробовать это : @{div(sub(ticks(utcnow()),ticks('1970-01-01T00:00:00.0000000Z')),10000)}
.