Динамическое форматирование последнего модифицированного фильтра в фабрике данных DataSet

Я пытаюсь динамически установить последний измененный фильтр в наборе данных фабрики данных Azure.

Я использую следующее выражение:

@formatDateTime(adddays(utcnow(),-2),'yyyy-mm-ddThh:mm:ss.fffZ')

Динамическое форматирование последнего модифицированного фильтра в фабрике данных DataSet

Я получаю следующую ошибку:

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,'

Я также не могу просмотреть данные с помощью этого фильтра. Думаю, здесь что-то не так. Есть идеи?

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
1
0
2 980
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Из сообщения об ошибке я понимаю, что строковое представление даты не поддерживается календарем.

The DateTime represented by the string is not supported in calendar 

Зачем нужно форматировать строку для сравнения?

я пробовал со многими выражениями: @utcnow() тоже не работает. Не знаю, какой должен быть правильный формат.

Wim 09.04.2019 13:40

Возможно, в качестве обходного пути вы могли бы использовать это выражение, чтобы избавиться от лишних символов в выражении даты и времени:

@substring(formatDateTime(adddays(utcnow(),-2), 'o'), 0, 23)

Я проверил это с помощью utcnow(), и он должен возвращать дату и время в нужном формате:

"value": "2019-04-12T10:11:51.108Z"

Ответ принят как подходящий

На самом деле следующие команды протестированы и работают после публикации и запуска:

@utcnow()

@adddays(utcnow(),-2)

Это функция предварительного просмотра во внешнем интерфейсе, которая не может работать с выражениями. Мы надеемся, что Microsoft решит эту проблему.

screenshot

Добавление этого через динамический контент работало для меня по состоянию на июль 2020 г.

Brian Vallelunga 01.07.2020 17:11

оказывается, вы можете решить вышеизложенное, добавив преобразование в строку к вашей строке выше, поэтому из

@formatDateTime(adddays(utcnow(),-2),'yyyy-mm-ddThh:mm:ss.fffZ')

изменить его на

@string(formatDateTime(adddays(utcnow(),-2),'yyyy-mm-ddThh:mm:ss.fffZ'))

это работает на моем конце

Столкнулся с той же проблемой в потоке данных:

currentUTC()

не работало для извлечения последнего измененного файла в хранилище BLOB-объектов, но

currentTimestamp()

сделал

Другие вопросы по теме