sql
  • excel
  • stored-procedures
  • powerquery
  • 2017-04-05 60 views 0 likes 
    0

    我想调用一个存储过程与可空的日期时间值,但我正在用这个循环运行。下面你可以看到我已经尝试了所有组合和相关的错误:电力查询M字符串datetime转换

    FromDate = Excel.CurrentWorkbook(){[Name="FromDate"]}[Content]{0}[Column1], 
    FromDateQuery = if FromDate = "" then "" else "@FromDate = '"& DateTime.From(FromDate)&"',", 
    
    Expression.Error: We cannot apply operator & to types Text and DateTime. 
    Details: 
        Operator=& 
        [email protected] = ' 
        Right=15/03/2017 00:00:00 
    

    如果我按照说明并删除&的建议,我得到以下几点: Expression.SyntaxError:令牌逗号预期。

    尝试过将其通过作为字符串:

    FromDate = Excel.CurrentWorkbook(){[Name="FromDate"]}[Content]{0}[Column1], 
    FromDateQuery = if FromDate = "" then "" else "@FromDate = '"& Text.From(FromDate) &"',", 
    

    消息=误差变换数据类型为varchar到日期时间。

    查询:

    [Query="EXECUTE dbo.bsp_GetReport 
    "& UserQuery &" 
    "& FromDateQuery &"] 
    

    使用CAST和CONVERT一切都是徒劳...

    回答

    1

    您可以使用DateTime.ToText与要求的格式,例如也试过

    FromDateQuery = if FromDate = "" then "" else "@FromDate = '"& DateTime.ToText(DateTime.From(FromDate), "dd/MM/yyyy HH:mm:ss")&"',", 
    
    +0

    谢谢您的回复,这也将返回:“错误转换数据类型为varchar到日期时间。”我要更新我的原始问题,详细说明我如何调用存储过程 –

    +0

    我不知道为什么,但在将日期格式换成yyyy/MM/dd后HH:mm:ss工作正常。 (仅供参考,我没有在任何地方使用此格式) –

    +0

    该错误来自SQL数据库。您需要使用数据库可以理解的日期时间格式。 –

    相关问题