SQl:用以下的代码来查询数据,语法没错,但执行时就有错误,错误是从字符串向datetime转换时失败,why?
selectOrderDate,ProductName,QuantityfromOrderso1joinOrderDetailso2ono1.OrderID=o2.Ord...
select OrderDate,ProductName,Quantity
from Orders o1 join OrderDetails o2 on o1.OrderID=o2.OrderID
join Products p on o2.ProductID=p.ProductID
where OrderDate='2006-12' 展开
from Orders o1 join OrderDetails o2 on o1.OrderID=o2.OrderID
join Products p on o2.ProductID=p.ProductID
where OrderDate='2006-12' 展开
1个回答
展开全部
OrderDate是日期型,2006-12是字符型,数据类型不匹配。
在ORACLE中应该写成 trunc(to_date('2006-12','yyyy-mm'),'mm') 转换为日期再比较。
不知道你用的什么数据库,不过应该道理差不多。
另外,OrderDate存储的是年月啊?还是年月日。
如果是年月日,那么还应该trunc(OrderDate,'mm)才行
在ORACLE中应该写成 trunc(to_date('2006-12','yyyy-mm'),'mm') 转换为日期再比较。
不知道你用的什么数据库,不过应该道理差不多。
另外,OrderDate存储的是年月啊?还是年月日。
如果是年月日,那么还应该trunc(OrderDate,'mm)才行
追问
谢谢!
追答
trunc(OrderDate,'mm)应为trunc(OrderDate,'mm')
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询