Я использую U-SQL для получения смещения даты в соответствии с диапазоном (смещение, начальная дата и конечная дата доступны в другом наборе).
Я пытался использовать подзапрос, но он выдает ошибку.
@partnerships =
EXTRACT name string,
createdon DateTime?,
address1_stateorprovince string
FROM "/Data/Partnerships"
USING Extractors.Text(skipFirstNRows : 1, silent : true, quoting : false, delimiter : '\u0001');
@timeZones =
EXTRACT Year int,
DateFrom DateTime,
DateTo DateTime,
Offset int
FROM "/Data/ESTTimeZones.csv"
USING Extractors.Text(skipFirstNRows : 1, silent : true, quoting : false, delimiter : '\u0001');
@output =
SELECT P.createdon,
Convert.ToDateTime(P.createdon).AddHours(SELECT Offset from @timeZones WHERE P.createdon >= T.DateFrom AND P.createdon <= T.DateTo) AS CreatedOn,
T.Offset AS Offset
FROM @partnerships AS P;
OUTPUT @output
TO "/Data/PartnershipwithOffset"
USING Outputters.Text(outputHeader : true, quoting : false, delimiter : '\u0001');
У меня есть два файла: один Partnerships
, который содержит createdon
дату, а другой файл ESTTimeZones
, который содержит DateFrom
и DateTo
со смещением.Я хочу найти смещение, где createdon
дата лежит между DateFrom
и DateTo
.
и добавить это offset
в createdOn
дату и снова преобразовать эту createdon
дату в datetimeoffset
сконкретное смещение с использованием U-SQL.
Я пытался найти и добавить смещение определенной createdon
даты.Но я получаю синтаксическую ошибку около SELECT Offset
(потому что может быть подзапрос недоступен в U-SQL).
Итак, есть ли какая-либо опция, чтобы получить мое требование или любые изменения, требуемые сверхуподход.