| Author | 
		  Message
		 | 
		
		  | venky | 
		  
		    
			  
				 Posted: Sun Dec 07, 2003 5:33 pm    Post subject: Subtracting two dates. | 
				     | 
			   
			 
		   | 
		
		
		    Master
 
 Joined: 08 Jul 2003 Posts: 205
  
  | 
		  
		    
			  
				Hello All,
 
 
Iam trying to Subtract two dates, 
 
 
(CURRENT_DATE - DATE Temp) DAY;
 
 
Where Temp is a variable which holds a Date in the format 
 
yyyy-mm-dd
 
 
Can I get the difference in day for such a Condition ?
 
 
Please help 
 
 
Thanks,
 
Venky
 
-- | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | kirani | 
		  
		    
			  
				 Posted: Sun Dec 07, 2003 11:25 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Jedi Knight
 
 Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA 
  | 
		  
		    
			  
				Yes you can. Make sure Temp is of DATE data type. Your final result will be in INTERVAL datatype. _________________ Kiran
 
 
 
IBM Cert. Solution Designer & System Administrator - WBIMB V5
 
IBM Cert. Solutions Expert - WMQI
 
IBM Cert. Specialist - WMQI, MQSeries
 
IBM Cert. Developer - MQSeries
 
 
 | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | venky | 
		  
		    
			  
				 Posted: Mon Dec 08, 2003 8:02 am    Post subject: Date Manipulation. | 
				     | 
			   
			 
		   | 
		
		
		    Master
 
 Joined: 08 Jul 2003 Posts: 205
  
  | 
		  
		    
			  
				Hello Kirani, 
 
 
This is my Date format:
 
 
DECLARE Temp CHARACTER;
 
DECLARE Temp1 DATE;
 
 
SET Temp = '12/04/2003';
 
 
CALL FIX_DATE(Temp);
 
-- The above function call returns date in 'yyyy/mm/dd' format.
 
 
SET Temp1 = CAST (substring(Temp from 1 for 10) AS DATE);
 
SET OutputRoot.XML.Date.Difference 	=
 
  (CURRENT_DATE - DATE Temp1 ) DAY;
 
 
 
Will This work, please help.
 
 
Thanks,
 
Venky
 
-- | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | kirani | 
		  
		    
			  
				 Posted: Mon Dec 08, 2003 9:33 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Jedi Knight
 
 Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA 
  | 
		  
		    
			  
				Unfortunately this will not work!
 
When casting any char date to a DATE datatype, it should be in this format DATE 'CCYY-MM-DD'. So your function FIX_DATE should return the char string DATE '2003-12-04'. 
 
 
Your final ESQL statement would be:
 
   
	| Code: | 
   
  
	
 
SET OutputRoot.XML.Date.Difference = (CURRENT_DATE - Temp1 ) DAY; 
 
 | 
   
 
 
 
Hope this helps. _________________ Kiran
 
 
 
IBM Cert. Solution Designer & System Administrator - WBIMB V5
 
IBM Cert. Solutions Expert - WMQI
 
IBM Cert. Specialist - WMQI, MQSeries
 
IBM Cert. Developer - MQSeries
 
 
 | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | venky | 
		  
		    
			  
				 Posted: Tue Dec 09, 2003 2:03 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Master
 
 Joined: 08 Jul 2003 Posts: 205
  
  | 
		  
		    
			  
				Hello Kirani,
 
 
I tried to follow the Code you gave but still my code gets a Error, 
 
 
DECLARE Temp CHARACTER; 
 
DECLARE Temp1 DATE; 
 
SET Temp = '12/04/03'; 
 
 
CALL PROC_FixQADDateFormat(Temp); 
 
SET Temp1 = CAST(Temp AS DATE); 
 
 
SET OutputRoot.XML.Test.Difference.Date    = (CURRENT_DATE - Temp1) DAY; 
 
 
-- Procedure
 
CREATE FixDate (INOUT Date_1 CHARACTER)  
 
BEGIN
 
      DECLARE YEAR_1	CHARACTER;
 
      DECLARE MONTH_1	CHARACTER;
 
      DECLARE DAY_1	CHARACTER;
 
 
      SET Date_1 = TRIM(Date_1);
 
      IF (Date_1 IS NULL OR Date_1 = '') THEN
 
         SET Date_1 = NULL;
 
      ELSE
 
         SET YEAR_1  = '20' || SUBSTRING(Date_1 FROM 7 FOR 2);
 
         SET MONTH_1 = SUBSTRING(Date_1 FROM 1 FOR 2);
 
         SET DAY_1   = SUBSTRING(Date_1 FROM 4 FOR 2);
 
         SET Date_1 = 'DATE ''' || YEAR_1 || '-' || MONTH_1 || '-' || DAY_1 || '' ;
 
      END IF;
 
   END;
 
 
The above code gives me a ERROR:
 
'Error casting from %3 to %4'
 
 
Please Help.
 
 
Thanks,
 
Venky. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | kirani | 
		  
		    
			  
				 Posted: Tue Dec 09, 2003 11:23 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Jedi Knight
 
 Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA 
  | 
		  
		    
			  
				Can you post your exceptionlist completely? Also, try making this change in your code,
 
   
	| Code: | 
   
  
	
 
SET OutputRoot.XML.Test.Difference."Date" = CAST((CURRENT_DATE - Temp1) DAY AS INT); 
 
 | 
   
 
 _________________ Kiran
 
 
 
IBM Cert. Solution Designer & System Administrator - WBIMB V5
 
IBM Cert. Solutions Expert - WMQI
 
IBM Cert. Specialist - WMQI, MQSeries
 
IBM Cert. Developer - MQSeries
 
 
 | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | venky | 
		  
		    
			  
				 Posted: Thu Dec 11, 2003 2:22 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Master
 
 Joined: 08 Jul 2003 Posts: 205
  
  | 
		  
		    
			  
				Here is the Exception list.
 
pls help.
 
 
Thanks,
 
Venky
 
--
 
 
 
 
Exception List: (
 
  (0x1000000)RecoverableException = (
 
    (0x3000000)File                 = '/build/S210_P/src/DataFlowEngine/ImbComputeNode.cpp'
 
    (0x3000000)Line                 = 453
 
    (0x3000000)Function             = 'ImbComputeNode::evaluate'
 
    (0x3000000)Type                 = 'ComIbmComputeNode'
 
    (0x3000000)Name                 = '8273e55c-f900-0000-0080-c9e6211fbd11'
 
    (0x3000000)Label                = 'CHECK - CREATED TIME.Date'
 
    (0x3000000)Text                 = 'Caught exception and rethrowing'
 
    (0x3000000)Catalog              = 'WMQIv210'
 
    (0x3000000)Severity             = 3
 
    (0x3000000)Number               = 2230
 
    (0x1000000)RecoverableException = (
 
      (0x3000000)File                 = '/build/S210_P/src/DataFlowEngine/ImbRdl/ImbRdlTypeCast.cpp'
 
      (0x3000000)Line                 = 194
 
      (0x3000000)Function             = 'SqlTypeCast::evaluate'
 
      (0x3000000)Type                 = ''
 
      (0x3000000)Name                 = ''
 
      (0x3000000)Label                = ''
 
      (0x3000000)Text                 = 'Error casting from %3 to %4'
 
      (0x3000000)Catalog              = 'WMQIv210'
 
      (0x3000000)Severity             = 3
 
      (0x3000000)Number               = 2521
 
      (0x1000000)Insert               = (
 
        (0x3000000)Type = 2
 
        (0x3000000)Text = '34'
 
      )
 
      (0x1000000)Insert               = (
 
        (0x3000000)Type = 2
 
        (0x3000000)Text = '13'
 
      )
 
      (0x1000000)Insert               = (
 
        (0x3000000)Type = 5
 
        (0x3000000)Text = 'CHARACTER'
 
      )
 
      (0x1000000)Insert               = (
 
        (0x3000000)Type = 5
 
        (0x3000000)Text = 'DATE'
 
      )
 
      (0x1000000)RecoverableException = (
 
        (0x3000000)File     = '/build/S210_P/src/DataFlowEngine/ImbRdl/ImbRdlValueOperations.cpp'
 
        (0x3000000)Line     = 2895
 
        (0x3000000)Function = 'castCharacterToDate'
 
        (0x3000000)Type     = 'ComIbmComputeNode'
 
        (0x3000000)Name     = '8273e55c-f900-0000-0080-c9e6211fbd11'
 
        (0x3000000)Label    = 'CHECK - CREATED TIME.Date'
 
        (0x3000000)Text     = 'String '%1' cannot be converted to a date'
 
        (0x3000000)Catalog  = 'WMQIv210'
 
        (0x3000000)Severity = 3
 
        (0x3000000)Number   = 2460
 
        (0x1000000)Insert   = (
 
          (0x3000000)Type = 5
 
          (0x3000000)Text = ''DATE '2003-12-04''
 
        ) | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | venky | 
		  
		    
			  
				 Posted: Sun Dec 14, 2003 7:59 pm    Post subject: Subtracting dates, please reply....... | 
				     | 
			   
			 
		   | 
		
		
		    Master
 
 Joined: 08 Jul 2003 Posts: 205
  
  | 
		  
		    
			  
				Hello Kirani, 
 
 
I have the Exception list as you requested, thanks,
 
 
Pls help,
 
venky | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | jefflowrey | 
		  
		    
			  
				 Posted: Mon Dec 15, 2003 5:31 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Grand Poobah
 
 Joined: 16 Oct 2002 Posts: 19981
  
  | 
		  
		    
			  
				Counting the quotes, it looks to me like 
   
	| Quote: | 
   
  
	|           (0x3000000)Text = ''DATE '2003-12-04'' | 
   
 
 is missing a trailing single-quote.
 
 
That is, you're trying to convert the string |DATE '2003-12-04| (pipes used as delimiters to avoid confusion) instead of the string |DATE '2003-12-04'| _________________ I am *not* the model of the modern major general. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | kirani | 
		  
		    
			  
				 Posted: Mon Dec 15, 2003 4:47 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Jedi Knight
 
 Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA 
  | 
		  
		    
			  
				As Jeff pointed out, you are missing ' at the end.
 
 
You should modify your code following,
 
 
   
	| Code: | 
   
  
	
 
DECLARE Temp CHARACTER; 
 
DECLARE Temp1 DATE; 
 
SET Temp = '12/04/03'; 
 
 
CALL FixDate(Temp); 
 
SET Temp1 = CAST(Temp AS DATE); 
 
 
SET OutputRoot.XML.Test.Difference."Date" = CAST((CURRENT_DATE - Temp1) DAY AS INT);
 
 
-- Procedure 
 
CREATE PROCEDURE FixDate(INOUT Date_1 CHARACTER) 
 
BEGIN 
 
DECLARE YEAR_1 CHARACTER; 
 
DECLARE MONTH_1 CHARACTER; 
 
DECLARE DAY_1 CHARACTER; 
 
 
SET Date_1 = TRIM(Date_1); 
 
IF (Date_1 IS NULL OR Date_1 = '') THEN 
 
SET Date_1 = NULL; 
 
ELSE 
 
SET YEAR_1 = '20' || SUBSTRING(Date_1 FROM 7 FOR 2); 
 
SET MONTH_1 = SUBSTRING(Date_1 FROM 1 FOR 2); 
 
SET DAY_1 = SUBSTRING(Date_1 FROM 4 FOR 2); 
 
SET Date_1 = 'DATE ''' || YEAR_1 || '-' || MONTH_1 || '-' || DAY_1 || ''' ; 
 
END IF; 
 
END; 
 
 | 
   
 
 _________________ Kiran
 
 
 
IBM Cert. Solution Designer & System Administrator - WBIMB V5
 
IBM Cert. Solutions Expert - WMQI
 
IBM Cert. Specialist - WMQI, MQSeries
 
IBM Cert. Developer - MQSeries
 
 
 | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | 
		    
		   |