U-SQL存储过程Datetime.Tryparse在哪里

时间:2018-02-08 13:48:11

标签: azure u-sql

我们有什么办法可以在U-SQL DateTime.TryParse条件下使用WHERE吗? 我正在Azure U-SQL目录中创建存储过程。

简单的U-SQL脚本支持C#功能。

对于存储过程,脚本不会向我的自定义C#代码添加任何程序集引用,或者在调用存储过程时添加它时没有使用它。

3 个答案:

答案 0 :(得分:1)

是的,可以使用内联功能。 This article显示了如何做到这一点。这是一个简单的例子:

//Name[1]

如果要使用已创建的程序集作为U-SQL类项目并进行注册,则可以使用Name在存储过程中引用它:

Opportunity

答案 1 :(得分:0)

Using Function dt_TryParse_USQL
Using above code-behind and calling function. Function consumes a string and attempts to convert the string to a DateTime value using DateTime.TryParse. Using the Code-Behind above.

@employees = 
    SELECT * FROM 
        ( VALUES
        (1, "Noah",   "2/16/2008"),
        (2, "Sophia", "2/16/2008 12:15:12 PM"),
        (3, "Liam",   "16/02/2008 12:15:12"),
        (4, "Amy",    "2017-01-11T16:52:07"),
        (5, "Justin", "")
        ) AS T(EmpID, EmpName, StartDate);

@result = 
    SELECT  
        EmpID,
        EmpName,
        ReferenceGuide_Examples.MyClass.dt_TryParse_USQL(StartDate) AS validated_StartDate
    FROM @employees;

OUTPUT @result
TO "/Output/ReferenceGuide/DDL/Functions/dt_TryParse_USQL.csv"
USING Outputters.Csv(outputHeader: true);

https://msdn.microsoft.com/en-us/azure/data-lake-analytics/u-sql/u-sql-functions

其他信息:Click here

答案 2 :(得分:0)

回答这部分问题:

对于存储过程,脚本不会向我的自定义C#代码添加任何程序集引用,或者在调用存储过程时添加它没有被使用。

U-SQL函数和过程带有自己的静态上下文,不会从调用上下文继承静态名称上下文。这允许独立于被调用的位置理解函数/过程的语义。

因此,为了引用汇编代码,您需要在目录中注册程序集,并使用REFERENCE ASSEMBLY在过程中显式引用它。代码隐藏不应在程序中使用(因为程序存储以备将来使用)。