【问题标题】:SQL DATEDIFF in a SELECT Statement ')' ErrorSELECT 语句中的 SQL DATEDIFF ')' 错误
【发布时间】:2012-01-20 20:25:20
【问题描述】:

我目前负责一个 SSRS 实例,但我的一个 select 语句遇到了一些问题。本质上,我想做的是用收到票的时间减去完成的时间,以计算出票的总持续时间。

我遇到的问题似乎是 DATEDIFF。有问题的两个字段 (IS_RECEIVED_DATETIME + RESOLVED) 都是数据库中的 Float(14) 字段。所以我试图转换这些字段以区分它们。目前,我在粗体字的行上收到“)”错误。已经做了我能想到的一切来删除 a ) 并纠正错误,但所有这些似乎都已关闭并位于正确的位置。任何建议或提示将不胜感激!!!!

这是我在这里的第一篇文章,如果您需要更多信息,或者我提交的内容有误,请告诉我。提前谢谢!

这是我的 Select 语句实例 -

,DATEDIFF(Day,CONVERT(datetime,LEFT(CAST(CAST(ISSUES.IS_RECEIVED_DATETIME as BIGINT) as VARCHAR(14)),4)+'/'+
SUBSTRING(CAST(CAST(ISSUES.IS_RECEIVED_DATETIME as BIGINT) as VARCHAR(14)),5,2) +'/'+
SUBSTRING(CAST(CAST(ISSUES.IS_RECEIVED_DATETIME as BIGINT) as VARCHAR(14)),7,2)+' '+
SUBSTRING(CAST(CAST(ISSUES.IS_RECEIVED_DATETIME as BIGINT) as VARCHAR(14)),9,2)+':'+
**SUBSTRING(CAST(CAST(ISSUES.IS_RECEIVED_DATETIME as BIGINT) as VARCHAR(14)),11,2)+':'+**
SUBSTRING(CAST(CAST(ISSUES.IS_RECEIVED_DATETIME as BIGINT) as VARCHAR(14)),13,2)+':'+) 
,CONVERT(datetime,LEFT(CAST(CAST(ISSUES.IS_RESOLVED_DATETIME as BIGINT) as VARCHAR(14)),4)+'/'+
SUBSTRING(CAST(CAST(ISSUES.IS_RESOLVED_DATETIME as BIGINT) as VARCHAR(14)),5,2) +'/'+
SUBSTRING(CAST(CAST(ISSUES.IS_RESOLVED_DATETIME as BIGINT) as VARCHAR(14)),7,2)+' '+
SUBSTRING(CAST(CAST(ISSUES.IS_RESOLVED_DATETIME as BIGINT) as VARCHAR(14)),9,2)+':'+
SUBSTRING(CAST(CAST(ISSUES.IS_RESOLVED_DATETIME as BIGINT) as VARCHAR(14)),11,2)+':'+
SUBSTRING(CAST(CAST(ISSUES.IS_RESOLVED_DATETIME as BIGINT) as VARCHAR(14)),13,2))) as 'DURATION'

【问题讨论】:

  • 字段中有哪些值?

标签: sql reporting-services casting datediff


【解决方案1】:

您遇到的具体错误是因为在您标记的行之后之后的“+)”组合。

是否有更好的方法来完成您正在做的事情是另一个问题,如果我们看到您的字段内容,我们或许可以回答。

【讨论】:

    【解决方案2】:

    在第二次转换之前,您的声明中有太多 +

    ,DATEDIFF(Day,CONVERT(datetime,LEFT(CAST(CAST(ISSUES.IS_RECEIVED_DATETIME as BIGINT) as VARCHAR(14)),4)+'/'+
    SUBSTRING(CAST(CAST(ISSUES.IS_RECEIVED_DATETIME as BIGINT) as VARCHAR(14)),5,2) +'/'+
    SUBSTRING(CAST(CAST(ISSUES.IS_RECEIVED_DATETIME as BIGINT) as VARCHAR(14)),7,2)+' '+
    SUBSTRING(CAST(CAST(ISSUES.IS_RECEIVED_DATETIME as BIGINT) as VARCHAR(14)),9,2)+':'+
    SUBSTRING(CAST(CAST(ISSUES.IS_RECEIVED_DATETIME as BIGINT) as VARCHAR(14)),11,2)+':'+
    SUBSTRING(CAST(CAST(ISSUES.IS_RECEIVED_DATETIME as BIGINT) as VARCHAR(14)),13,2)+':') 
    ,CONVERT(datetime,LEFT(CAST(CAST(ISSUES.IS_RESOLVED_DATETIME as BIGINT) as VARCHAR(14)),4)+'/'+
    SUBSTRING(CAST(CAST(ISSUES.IS_RESOLVED_DATETIME as BIGINT) as VARCHAR(14)),5,2) +'/'+
    SUBSTRING(CAST(CAST(ISSUES.IS_RESOLVED_DATETIME as BIGINT) as VARCHAR(14)),7,2)+' '+
    SUBSTRING(CAST(CAST(ISSUES.IS_RESOLVED_DATETIME as BIGINT) as VARCHAR(14)),9,2)+':'+
    SUBSTRING(CAST(CAST(ISSUES.IS_RESOLVED_DATETIME as BIGINT) as VARCHAR(14)),11,2)+':'+
    SUBSTRING(CAST(CAST(ISSUES.IS_RESOLVED_DATETIME as BIGINT) as VARCHAR(14)),13,2))) as 'DURATION'
    

    现在给自己找一个可以做paren hilightning的编辑器。

    【讨论】:

      猜你喜欢
      • 2012-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-21
      • 1970-01-01
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      相关资源
      最近更新 更多