2017-06-12 70 views
0

在Progress数据库(SQL92)SQL(在Progress数据库) - 日期 - 错误7481 - 不一致类型

使用的软件使用SQL(专为普及),允许的报告等书面形式,它可以是通过电子邮件发送给用户

我已经与我的SQL收到以下错误:

SQL调试:[DataDirect的] [ODBC驱动程序的进展] [进展]不一致的类型(7481)

下面的代码工作完美:

Select * FROM pub."stockmaster" 
Where ("sm-sold" = 0 OR ("sm-sold" = 1 AND "sm-selldate" >= '2017-06-01')) 

的问题(错误)是当我使用该软件内置的“变量”,如@[email protected]它显示为'01 2017' 年6月

Select * FROM pub."stockmaster" 
Where ("sm-sold" = 0 OR ("sm-sold" = 1 AND "sm-selldate" >= @[email protected])) 

我需要使用这个“系统变量”,所以我不必手动保持每月

改变SQL日期外地"sm-selldate"格式如进展

类型日期

这些系统变量工作在普适数据库

我搜索情侣论坛,看到的CONVERT(DATETIME,建议,但没有可行的解决方案

+0

进展的版本?总是很好的包括,因为行为可能已经改变。 – Jensd

+0

PROGRESS版本9.1E0422,OpenEdge版本10.2B08 – modhorat

回答

0

哎哟完全正常,9.1E是古...

也许CURDATE,TO_CHAR和TO_DATE的组合可以做到吗?

我不运行SQL对OpenEdge,所以我不能真正测试这个。

TO_DATE(TO_CHAR(MONTH(CURDATE()) + "/1/" + TO_CHAR(YEAR(CURDATE())) 

我的本意是IST内TO_DATE字符串应该下定决心像

'6/1/2017' 

(六月2017前)。

这里是为9.1E SQL-92的文档:

https://community.progress.com/community_groups/openedge_general/w/openedgegeneral/1777.9-1e-sql-92-guide-and-reference

+0

它采用_YYYY-MM-DD'_格式的日期(或者说字符串),在链接中:[documentation.progress.com](https:// documentation .progress.com/output/ua/OpenEdge_latest/index.html#page/dvint/format-specifiers-allowed-to-to-char-and-t.html)它显示'MM'而不是'MONTH' – modhorat

+0

改变这一点不会太棘手。 'TO_DATE(TO_CHAR(YEAR(CURDATE())+“ - ”+ TO_CHAR(MONTH(CURDATE()))'?然而:你链接到文档的版本11.7,它已于2017年4月发布。评论)是9.1 - 2004年发布,2015年退役 - 事情可能已经改变了。 – Jensd

+0

这就是最终的结果:''@ YEAR @'+' - '+'@ MONTH @'+' - '+ '01 “感谢所有的帮助 – modhorat

相关问题