|
All, The User Defined Function that follows is receiving an SQL0181 error..." Value in date, time, or timestamp string not valid." when it is passed a date that falls outside the IBM date window (1940-2039). This is confusing because a long julian date contains a full 4 digit year. Why would the date window even come into play on this? If this is indeed a restriction of the DATE data type, does anyone have any suggestions on how to convert a 7 digit long julian date (passed as an integer) using SQL where we could put it into a function like this? I didn't write the code below and I am not an SQL expert by any means, so please go easy on me. Best regards, Dane CREATE FUNCTION TEST/JDTODATE (JD INTEGER) RETURNS DATE LANGUAGE SQL SPECIFIC TEST/JDTODATE NOT DETERMINISTIC CONTAINS SQL CALLED ON NULL INPUT DISALLOW PARALLEL BEGIN DECLARE VAR1 DATE; IF JD = 0 THEN SET VAR1 = NULL; ELSE SET VAR1 = DATE(DAYS(CONCAT(CAST(INTEGER(JD)/1000 AS CHAR (4)), '-01-01'))+MOD(INTEGER(JD),1000) - 1); END IF; RETURN VAR1; END NOTICE: This electronic mail message and any files transmitted with it are intended exclusively for the individual or entity to which it is addressed. The message, together with any attachment, may contain confidential and/or privileged information. Any unauthorized review, use, printing, saving, copying, disclosure or distribution is strictly prohibited. If you have received this message in error, please immediately advise the sender by reply email and delete all copies.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.