Sql 如何根据单独列中的月份和年份参数对DB2结果进行排序
我正在使用DB2 我有一个以以下格式返回特定日期的查询:yyyy-mm-ddSql 如何根据单独列中的月份和年份参数对DB2结果进行排序,sql,date,db2,Sql,Date,Db2,我正在使用DB2 我有一个以以下格式返回特定日期的查询:yyyy-mm-dd SELECT DATE FROM ABC.DTS 然后我设计了另一个查询,它应该返回与上面返回的日期匹配的结果 SELECT COUNT(*) FROM ABC.ATY WHERE ID between 1 and 1000000000 AND MONTH(PRS) = MONTH(from DTS) AND YEAR(PRS) = YEA
SELECT DATE FROM ABC.DTS
然后我设计了另一个查询,它应该返回与上面返回的日期匹配的结果
SELECT COUNT(*)
FROM ABC.ATY
WHERE ID between 1 and 1000000000
AND MONTH(PRS) = MONTH(from DTS)
AND YEAR(PRS) = YEAR(from DTS)
AND CKPYE = ' '
;
当我运行第二个查询时,发现一个错误,该查询显示:非法符号“MONTH”。一些可能合法的符号是:xmlementxmlpi。SQLCODE=-104,SQLSTATE=42601,DRIVER=4.19.56。
如何返回与第一次查询返回的日期匹配的结果
我是否需要另一种路线/策略来代替我目前正在尝试的路线/策略
非常感谢。看看这是否适合您:
SELECT COUNT(*)
FROM ABC.ATY
JOIN ABC.DTS ON MONTH(PRS) = MONTH(Date) AND YEAR(PRS) = YEAR(DATE)
WHERE ID between 1 and 1000000000
AND CKPYE = ' '
;
你不应该加入表ABC.DTS吗?另外,
PRS
的数据类型是什么?我想我需要某种类型的连接,你能具体说明哪种类型吗?PRS的类型是DateTimeThank,但它不起作用。收到此错误:日期在使用它的上下文中无效。SQLCODE=-206,SQLSTATE=42703,DRIVER=4.19.56这将告诉我Date
字段实际上不是一个列。。。您可以发布两个表的表架构吗?这也是一个保留字,所以这可能是这里的另一个问题。等等,我很抱歉,哈哈,这确实有效!为了发布这篇文章,我更改了一些表名,但在查询更改的列名以保护无辜者时忘记了更改一个表名。:-)酷!