【问题标题】:Error in datetime query日期时间查询错误
【发布时间】:2015-06-17 03:10:52
【问题描述】:

我在 asp.net 中使用以下 sql 查询以 Group by 三个表使用 inner join

  SELECT tblVendorItem.Name, 
  tblEventItem.Quantity * tblEventItem.Price AS 'Sale', 
  tblEventService.ServiceDate
  FROM tblEventService 
  INNER JOIN  tblEventItem ON 
  tblEventService.EventServiceID = tblEventItem.EventServiceID 
  INNER JOIN  tblVendorItem ON 
  tblEventItem.VendorItemID = tblVendorItem.VendorItemID
  INNER JOIN  tblVendor ON 
  tblVendorItem.VendorID = tblVendor.VendorID
  WHERE (tblEventService.VendorID = 1) 
  AND (tblEventService.ServiceDate BETWEEN '20-04-2015 00:00:00' AND '23-04-2015 00:00:00')
  GROUP BY 
  tblVendorItem.Name, tblEventItem.Quantity, tblEventItem.Price, tblEventService.ServiceDate

这里,VendorIDDates 是静态的。查询已解析,但在执行时,显示以下错误:

我已经检查了 model 类和 table 中的数据类型,它显示了 datetime

谁能告诉我查询中有什么问题或者如何解决这个错误?

【问题讨论】:

  • in where condition :convert(VARCHAR(20),tblEventService.ServiceDate,103) BETWEEN (convert(VARCHAR(20),'20-04-2015 00:00:00',103) AND (转换(VARCHAR(20),'23-04-2015 00:00:00',103))

标签: c# mysql sql-server datetime


【解决方案1】:

尝试对常量使用 ISO 标准格式:

tblEventService.ServiceDate BETWEEN '2015-04-20' AND '2015-04-23'

另外,时间组件是不必要的。

另外,我建议只对字符串和日期常量使用单引号。不要将它们用作列别名。

【讨论】:

    【解决方案2】:

    尝试添加 MM-DD-YYYY 日期 即

    > where mydatecol BETWEEN CONVERT(datetime, '04-20-2015 00:00:00') AND
    > CONVERT(datetime, '04-20-2015 00:00:00')
    

    否则您必须应用为 DD-MM-YYYY 指定的格式

    > mydatecol BETWEEN CONVERT(datetime, '20-04-2015 00:00:00', 103) AND
    > CONVERT(datetime, '20-04-2015 00:00:00', 103)
    

    【讨论】:

      【解决方案3】:

      如果您希望在结果中出现Time,并且查看您的查询,您似乎需要 3 个参数。VendorIDFromDateToDate。因此,在您的方法中添加以下代码。 VendorID你需要以不同的方式访问..

       string startdate = Convert.ToDateTime(txtDateTo.Text + " 00:00:00").ToString("yyyy-MM-dd" + " 00:00:00");
       string enddate = Convert.ToDateTime(txtDateFrom.Text + " 00:00:00").ToString("yyyy-MM-dd" + " 00:00:00");
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-04-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-16
        • 2018-10-27
        • 2018-03-14
        相关资源
        最近更新 更多