【发布时间】:2020-06-26 14:02:21
【问题描述】:
我有一个表值函数如下
CREATE FUNCTION ABELIBLE.TVFBOEGETSHIPMENTS (STARTDATE DATE, ENDDATE DATE, ADDRESSCODE CHAR(9))
RETURNS TABLE (ID INT, JOBNUMBER CHAR(9), CUSTOMERREFERENCE CHAR(18),
CONSIGNEENAME CHAR(30), CREATEDDATE DATE, AIRPORTOFORIGIN CHAR(3), AIRPORTOFARRIVAL CHAR(3),
AIRPORTOFDESTINATION CHAR(3), COUNTRYOFDESTINATION CHAR(3), ADDRESSCODE CHAR(9), CONSIGNMENTNUMBER CHAR(25))
LANGUAGE SQL
NOT DETERMINISTIC
READS SQL DATA
RETURN
SELECT
ROW_NUMBER() OVER(ORDER BY EMJOBN DESC),
A.EMJOBN,
A.EMCREF,
A.EMOSNM,
DATE(TIMESTAMP_FORMAT(DIGITS(A.EMCRTD), 'DDMMYY')),
A.EMAOFO,
A.EMAOFA,
A.EMAOFD,
A.EMCOFD,
A.EMUKCD,
A.EMRPRT
FROM DTALIBLE.EMASTER A WHERE A.EMPSFT = 'Y' AND A.EMUKCD = ADDRESSCODE AND
DATE(TIMESTAMP_FORMAT(DIGITS(A.EMCRTD), 'DDMMYY')) >= DATE(STARTDATE) AND DATE(TIMESTAMP_FORMAT(DIGITS(A.EMCRTD), 'DDMMYY')) <= DATE(ENDDATE)
但是,当我运行以下查询时,我没有得到任何结果
SELECT * FROM TABLE(ABELIBLE.TVFBOEGETSHIPMENTS(DATE('06/06/2019'), DATE('06/07/2020'),'MUL0044')) AS XXX
我正在使用 DBeaver 在 AS400 上运行查询。
为了我自己的理智,我厌倦了带有文字的 select 语句,我得到了以下结果
然后,当我尝试使用以下日期时,它没有获取任何结果并且我收到此错误。
非常感谢任何帮助。提前谢谢你。
【问题讨论】:
-
如果您运行与函数的 SELECT 语句中相同的查询,使用提供给函数的文字值(带有 ISO 格式的日期),结果是什么
-
我很好奇这个问题和C#的关系
-
你使用的格式是 mm/dd/yyyy 不是 dd/mm/yyyy 用
values to_char('06/07/2020', 'dd month yyyy'), to_char('06.07.2020', 'dd month yyyy')看区别 -
或者学习在你的日期文字中使用 ISO 格式以及为什么这很重要。
标签: sql db2 user-defined-functions db2-400