Я пытаюсь динамически установить последний измененный фильтр в наборе данных фабрики данных Azure.
Я использую следующее выражение:
@formatDateTime(adddays(utcnow(),-2),'yyyy-mm-ddThh:mm:ss.fffZ')
Я получаю следующую ошибку:
Activity Copy1 failed: Failure happened on 'Source' side. ErrorCode=UserErrorInvalidValueInPayload,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Failed to convert the value in 'modifiedDatetimeStart' property to 'System.Nullable`1[[System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]' type. Please make sure the payload structure and value are correct.,Source=Microsoft.DataTransfer.DataContracts,''Type=System.Reflection.TargetInvocationException,Message=Exception has been thrown by the target of an invocation.,Source=mscorlib,''Type=System.FormatException,Message=The DateTime represented by the string is not supported in calendar System.Globalization.GregorianCalendar.,Source=mscorlib,'
Я также не могу просмотреть данные с помощью этого фильтра. Думаю, здесь что-то не так. Есть идеи?
Из сообщения об ошибке я понимаю, что строковое представление даты не поддерживается календарем.
The DateTime represented by the string is not supported in calendar
Зачем нужно форматировать строку для сравнения?
Возможно, в качестве обходного пути вы могли бы использовать это выражение, чтобы избавиться от лишних символов в выражении даты и времени:
@substring(formatDateTime(adddays(utcnow(),-2), 'o'), 0, 23)
Я проверил это с помощью utcnow(), и он должен возвращать дату и время в нужном формате:
"value": "2019-04-12T10:11:51.108Z"
На самом деле следующие команды протестированы и работают после публикации и запуска:
@utcnow()
@adddays(utcnow(),-2)
Это функция предварительного просмотра во внешнем интерфейсе, которая не может работать с выражениями. Мы надеемся, что Microsoft решит эту проблему.
Добавление этого через динамический контент работало для меня по состоянию на июль 2020 г.
оказывается, вы можете решить вышеизложенное, добавив преобразование в строку к вашей строке выше, поэтому из
@formatDateTime(adddays(utcnow(),-2),'yyyy-mm-ddThh:mm:ss.fffZ')
изменить его на
@string(formatDateTime(adddays(utcnow(),-2),'yyyy-mm-ddThh:mm:ss.fffZ'))
это работает на моем конце
Столкнулся с той же проблемой в потоке данных:
currentUTC()
не работало для извлечения последнего измененного файла в хранилище BLOB-объектов, но
currentTimestamp()
сделал
я пробовал со многими выражениями: @utcnow() тоже не работает. Не знаю, какой должен быть правильный формат.