|   | 
	 
  
    | 
RSS Feed - WebSphere MQ Support
 | 
RSS Feed - Message Broker Support
 |   
 
  
	     | 
	 | 
   
 
  
	|  String to DATE and TIMESTAMP conversion | 
	« View previous topic :: View next topic »  | 
   
  
  	
	  
		
		
		  | Author | 
		  Message
		 |  
		
		  | mqxplorer | 
		  
		    
			  
				 Posted: Thu Feb 10, 2011 7:58 am    Post subject: String to DATE and TIMESTAMP conversion | 
				     | 
			   
			 
		   | 
		 
		
		    Master
 
 Joined: 22 Jun 2009 Posts: 206
  
  | 
		  
		    
			  
				Hi All,
 
 
I have a question regarding the string to DATE and TIMESTAMP conversion.
 
 
I have a simple message flow which handles the CSV messages. In the message set, I  have an element named requestDate of data type 'xsd:string'. This is supposed to be of type 'xsd:date' or 'xsd:dateTime'. I have purposefully made its type to 'xsd:string' just to test the String to DATE and DATETIME scenarios.
 
 
When the incoming data is as below:
 
   
	| Code: | 
   
  
	HEADER,2002-05-30,X123456IB7,customer details
 
 | 
   
 
 
 
I have the below code to convert the incoming string type date to DATE data type:
 
 
   
	| Code: | 
   
  
	DECLARE resDate DATE;
 
      SET  resDate =   CAST(InputRoot.MRM.header.requestDate AS DATE CCSID 1208); | 
   
 
 
 
This successfuuly converts the string date to DATE type date
 
   
	| Code: | 
   
  
	| requestDate:CHARACTER:2002-05-30 | 
   
 
 
   
	| Code: | 
   
  
	resDate:DATE:java.util.GregorianCalendar[time=1022731200000,areFieldsSet=true,
 
areAllFieldsSet=false,lenient=true,zone=sun.util.calendar.ZoneInfo[id="America/New_York",
 
offset=-18000000,dstSavings=3600000,useDaylight=true,transitions=235,
 
lastRule=java.util.SimpleTimeZone[id=America/New_York,offset=-18000000,
 
dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=2,
 
startDay=8,startDayOfWeek=1,startTime=7200000,startTimeMode=0,endMode=3,
 
endMonth=10,endDay=1,endDayOfWeek=1,endTime=7200000,endTimeMode=0]],
 
firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=?,YEAR=2002,MONTH=4,WEEK_OF_YEAR=?,
 
WEEK_OF_MONTH=?,DAY_OF_MONTH=30,DAY_OF_YEAR=?,DAY_OF_WEEK=?,
 
DAY_OF_WEEK_IN_MONTH=?,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,
 
SECOND=0,MILLISECOND=?,ZONE_OFFSET=?,DST_OFFSET=?] | 
   
 
 
 
This is good. However, when I am sedning the incoming data as below:
 
   
	| Code: | 
   
  
	| HEADER,2002-05-30T09:00:00Z,X123456IB7,customer details | 
   
 
 by making the requestDate field length to 20 and try to convert it to TIMESTAMP data type, I am getting the exception.
 
 
Below is the code to convert the incoming string type date to TIEMSTAMP data type:
 
 
DECLARE resDateTime TIMESTAMP;
 
		SET resDateTime = CAST(InputRoot.MRM.header.requestDate AS TIMESTAMP CCSID 1208);
 
 
   
	| Code: | 
   
  
	| requestDate:CHARACTER:2002-05-30T09:00:00Z | 
   
 
 
 
Exception is:
 
 
   
	| Code: | 
   
  
	ExceptionList
 
   RecoverableException
 
         File:CHARACTER:F:\build\S700_P\src\DataFlowEngine\ImbComputeNode.cpp
 
         Line:INTEGER:489
 
         Function:CHARACTER:ImbComputeNode::evaluate
 
         Type:CHARACTER:ComIbmComputeNode
 
         Name:CHARACTER:CSV2XML#FCMComposite_1_3
 
         Label:CHARACTER:CSV2XML.CSV2XML
 
         Catalog:CHARACTER:BIPmsgs
 
         Severity:INTEGER:3
 
         Number:INTEGER:2230
 
         Text:CHARACTER:Caught exception and rethrowing
 
         RecoverableException
 
               File:CHARACTER:F:\build\S700_P\src\DataFlowEngine\ImbRdl\ImbRdlStatementGroup.cpp
 
               Line:INTEGER:641
 
               Function:CHARACTER:SqlStatementGroup::execute
 
               Type:CHARACTER:ComIbmComputeNode
 
               Name:CHARACTER:CSV2XML#FCMComposite_1_3
 
               Label:CHARACTER:CSV2XML.CSV2XML
 
               Catalog:CHARACTER:BIPmsgs
 
               Severity:INTEGER:3
 
               Number:INTEGER:2488
 
               Text:CHARACTER:Error detected, rethrowing
 
               Insert
 
                     Type:INTEGER:5
 
                     Text:CHARACTER:.CSV2XML_Compute.Main
 
               Insert
 
                     Type:INTEGER:5
 
                     Text:CHARACTER:11.3
 
               Insert
 
                     Type:INTEGER:5
 
                     Text:CHARACTER:SET resDateTime = CAST(InputRoot.MRM.header.requestDate AS TIMESTAMP CCSID 1208);
 
               RecoverableException
 
                     File:CHARACTER:F:\build\S700_P\src\DataFlowEngine\ImbRdl\ImbRdlTypeCast.cpp
 
                     Line:INTEGER:260
 
                     Function:CHARACTER:SqlTypeCast::evaluate
 
                     Type:CHARACTER:
 
                     Name:CHARACTER:
 
                     Label:CHARACTER:
 
                     Catalog:CHARACTER:BIPmsgs
 
                     Severity:INTEGER:3
 
                     Number:INTEGER:2521
 
                     Text:CHARACTER:Error while casting
 
                     Insert
 
                           Type:INTEGER:5
 
                           Text:CHARACTER:.CSV2XML_Compute.Main
 
                     Insert
 
                           Type:INTEGER:5
 
                           Text:CHARACTER:11.21
 
                     Insert
 
                           Type:INTEGER:5
 
                           Text:CHARACTER:'2002-05-30T09:00:00Z'
 
                     Insert
 
                           Type:INTEGER:5
 
                           Text:CHARACTER:TIMESTAMP
 
                     CastException
 
                           File:CHARACTER:F:\build\S700_P\src\CommonServices\ImbDateTime.cpp
 
                           Line:INTEGER:2797
 
                           Function:CHARACTER:ImbTimeStamp::fromString
 
                           Type:CHARACTER:
 
                           Name:CHARACTER:
 
                           Label:CHARACTER:
 
                           Catalog:CHARACTER:BIPmsgs
 
                           Severity:INTEGER:3
 
                           Number:INTEGER:2461
 
                           Text:CHARACTER:Invalid timestamp string
 
                           Insert
 
                                 Type:INTEGER:2
 
                                 Text:CHARACTER:-1
 
                           Insert
 
                                 Type:INTEGER:5
 
                                 Text:CHARACTER:S22007
 
                           Insert
 
                                 Type:INTEGER:5
 
                                 Text:CHARACTER:2002-05-30T09:00:00Z | 
   
 
 
 
Why can one type conversion work and why not the other one...
 
 
Please throw some light on this....
 
 
Thanks
 
mqxplorer | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | Vitor | 
		  
		    
			  
				 Posted: Thu Feb 10, 2011 8:05 am    Post subject: Re: String to DATE and TIMESTAMP conversion | 
				     | 
			   
			 
		   | 
		 
		
		    Grand High Poobah
 
 Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA 
  | 
		  
		    
			  
				
   
	| mqxplorer wrote: | 
   
  
	| Please throw some light on this.... | 
   
 
 
 
Does it work if you specify the IU format? _________________ Honesty is the best policy.
 
Insanity is the best defence. | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | mqxplorer | 
		  
		    
			  
				 Posted: Thu Feb 10, 2011 11:29 am    Post subject:  | 
				     | 
			   
			 
		   | 
		 
		
		    Master
 
 Joined: 22 Jun 2009 Posts: 206
  
  | 
		  
		    
			  
				Hi Vitor,
 
 
It worked using the below code...
 
 
   
	| Code: | 
   
  
	DECLARE resDateTime TIMESTAMP;
 
      SET resDateTime = CAST(InputRoot.MRM.header.requestDate AS TIMESTAMP FORMAT 'IU'); | 
   
 
 
 
The incmong data value is: 
 
 
   
	| Code: | 
   
  
	| requestDate:CHARACTER:2002-05-30T09:00:00Z | 
   
 
 
 
The resulting data value after casting : 
   
	| Code: | 
   
  
	| 2002-05-30 05:00:00.000 | 
   
 
 
 
while casting, 4 hours were deducted from the incoming date data (9-4 = 5). If the audit mechanism provided by WMBV6.1 and above and if we audit this particular element, the date of the incmoming date will be different from the message sent out to the backend application.
 
 
Actually, the reason to start this thread is just a continuation to my original post regarding auditing events in the below link. I just did not want to cinfuse people by posting this question in that long thread. 
 
 
http://www.mqseries.net/phpBB2/viewtopic.php?t=55888&postdays=0&postorder=asc&start=0
 
 
I am capturing the payload using the below code in my audit flow. 
 
 
I have specfied $Body in the monitoring event tab for the payload and it is generating exceptions for MRM domain messages with incoming data of dataTime value.
 
 
When the incoming data field is let's say 'reqDate' of type 'xsd:dateTime' and has a value of '2002-05-30T09:00:00Z' and broker logical tree structure has the values as below.
 
 
   
	| Code: | 
   
  
	| requestDate   2002-05-30 09:00:00.000 | 
   
 
 
 
   
	| Code: | 
   
  
	requestDate:TIMESTAMP:java.util.GregorianCalendar
 
[time=1022763600000,areFieldsSet=true,areAllFieldsSet=false,lenient=true,
 
zone=sun.util.calendar.ZoneInfo[id="America/New_York",offset=-18000000,
 
dstSavings=3600000,useDaylight=true,transitions=235,lastRule=java.util.SimpleTimeZone
 
[id=America/New_York,offset=-18000000,dstSavings=3600000,useDaylight=true,
 
startYear=0,startMode=3,startMonth=2,startDay=8,startDayOfWeek=1,
 
startTime=7200000,startTimeMode=0,endMode=3,endMonth=10,endDay=1,
 
endDayOfWeek=1,endTime=7200000,endTimeMode=0]],
 
firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=?,YEAR=2002,MONTH=4,
 
WEEK_OF_YEAR=?,WEEK_OF_MONTH=?,DAY_OF_MONTH=30,DAY_OF_YEAR=?,
 
DAY_OF_WEEK=?,DAY_OF_WEEK_IN_MONTH=?,AM_PM=0,HOUR=9,HOUR_OF_DAY=9,
 
MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=?,DST_OFFSET=?] | 
   
 
 
 
When the audit event is generated the part of the payload is as below:
 
 
   
	| Code: | 
   
  
	<wmb:complexContent wmb:elementName="MRM">
 
   <MRM>
 
    <header>
 
     <requestDate>2002-05-30T09:00:00Z</requestDate>
 
     <requestID>X123456IB7</requestID>
 
     <requestType>customer details</requestType>
 
    </header>
 
   </MRM>
 
</wmb:complexContent> | 
   
 
 
 
and the requestDate shown above is a string type as per the audit schema provided by IBM.
 
 
I have the below code to handle the payload part in MRM domain.
 
 
   
	| Code: | 
   
  
	IF Environment.Content[I].name = 'Properties' THEN
 
               SET OutputRoot.Properties   =   contentRef.*[<];
 
            ELSEIF Environment.Content[I].name IN ('MRM', 'XMLNSC', 'SOAP', 'DataObject', 'XMLNS', 'JMSMap', 'JMSStream', 'MIME', 'BLOB') THEN
 
                DECLARE chkDomain CHARACTER;
 
                SET chkDomain = FIELDVALUE(Environment.Content[I].name);
 
                CASE chkDomain 
 
                WHEN 'MRM' THEN
 
                   CREATE LASTCHILD OF OutputRoot DOMAIN 'MRM';
 
                   SET OutputRoot.MRM = contentRef.*[<];
 
                   DECLARE propRef REFERENCE TO OutputRoot.Properties;
 
                  DECLARE inCCSID INT propRef.CodedCharSetId;
 
                  DECLARE inEncoding INT propRef.Encoding;
 
                  DECLARE msgSet CHARACTER propRef.MessageSet;
 
                  DECLARE msgType CHARACTER propRef.MessageType;
 
                  DECLARE msgFormat CHARACTER propRef.MessageFormat;
 
                  DECLARE msgBitStream BLOB ASBITSTREAM(OutputRoot.MRM, inEncoding, inCCSID, msgSet, msgType, msgFormat);
 
                  SET msgChar = CAST(msgBitStream AS CHAR CCSID inCCSID); | 
   
 
 
 
 
The reason to execute the statement  
 
SET msgChar = CAST(msgBitStream AS CHAR CCSID inCCSID)
 
is - I am puting the payload as character type in the database of column type 'ntext'.
 
 
The code DECLARE msgBitStream BLOB ASBITSTREAM(OutputRoot.MRM, inEncoding, inCCSID, msgSet, msgType, msgFormat);
 
 is genearting the below exception.
 
 
   
	| Code: | 
   
  
	ExceptionList
 
   RecoverableException
 
         File:CHARACTER:F:\build\S700_P\src\DataFlowEngine\ImbDataFlowNode.cpp
 
         Line:INTEGER:1073
 
         Function:CHARACTER:ImbDataFlowNode::createExceptionList
 
         Type:CHARACTER:ComIbmMQInputNode
 
         Name:CHARACTER:Audit_Flow_Local_Payload#FCMComposite_1_1
 
         Label:CHARACTER:Audit_Flow_Local_Payload.AuditEvent_Queue
 
         Catalog:CHARACTER:BIPmsgs
 
         Severity:INTEGER:3
 
         Number:INTEGER:2230
 
         Text:CHARACTER:Node throwing exception
 
         RecoverableException
 
               File:CHARACTER:F:\build\S700_P\src\DataFlowEngine\ImbComputeNode.cpp
 
               Line:INTEGER:489
 
               Function:CHARACTER:ImbComputeNode::evaluate
 
               Type:CHARACTER:ComIbmComputeNode
 
               Name:CHARACTER:Audit_Flow_Local_Payload#FCMComposite_1_2
 
               Label:CHARACTER:Audit_Flow_Local_Payload.Compute
 
               Catalog:CHARACTER:BIPmsgs
 
               Severity:INTEGER:3
 
               Number:INTEGER:2230
 
               Text:CHARACTER:Caught exception and rethrowing
 
               RecoverableException
 
                     File:CHARACTER:F:\build\S700_P\src\DataFlowEngine\ImbRdl\ImbRdlStatementGroup.cpp
 
                     Line:INTEGER:641
 
                     Function:CHARACTER:SqlStatementGroup::execute
 
                     Type:CHARACTER:ComIbmComputeNode
 
                     Name:CHARACTER:Audit_Flow_Local_Payload#FCMComposite_1_2
 
                     Label:CHARACTER:Audit_Flow_Local_Payload.Compute
 
                     Catalog:CHARACTER:BIPmsgs
 
                     Severity:INTEGER:3
 
                     Number:INTEGER:2488
 
                     Text:CHARACTER:Error detected, rethrowing
 
                     Insert
 
                           Type:INTEGER:5
 
                           Text:CHARACTER:.Audit_Flow_Local_Payload_Compute.Main
 
                     Insert
 
                           Type:INTEGER:5
 
                           Text:CHARACTER:46.3
 
                     Insert
 
                           Type:INTEGER:5
 
                           Text:CHARACTER:ContentCount(appDataRef, payLoad);
 
                     RecoverableException
 
                           File:CHARACTER:F:\build\S700_P\src\DataFlowEngine\ImbRdl\ImbRdlRoutine.cpp
 
                           Line:INTEGER:628
 
                           Function:CHARACTER:SqlRoutine::invoke
 
                           Type:CHARACTER:ComIbmComputeNode
 
                           Name:CHARACTER:Audit_Flow_Local_Payload#FCMComposite_1_2
 
                           Label:CHARACTER:Audit_Flow_Local_Payload.Compute
 
                           Catalog:CHARACTER:BIPmsgs
 
                           Severity:INTEGER:3
 
                           Number:INTEGER:2934
 
                           Text:CHARACTER:Error occured in procedure
 
                           Insert
 
                                 Type:INTEGER:5
 
                                 Text:CHARACTER:ContentCount
 
                           RecoverableException
 
                                 File:CHARACTER:F:\build\S700_P\src\DataFlowEngine\ImbRdl\ImbRdlStatementGroup.cpp
 
                                 Line:INTEGER:641
 
                                 Function:CHARACTER:SqlStatementGroup::execute
 
                                 Type:CHARACTER:ComIbmComputeNode
 
                                 Name:CHARACTER:Audit_Flow_Local_Payload#FCMComposite_1_2
 
                                 Label:CHARACTER:Audit_Flow_Local_Payload.Compute
 
                                 Catalog:CHARACTER:BIPmsgs
 
                                 Severity:INTEGER:3
 
                                 Number:INTEGER:2488
 
                                 Text:CHARACTER:Error detected, rethrowing
 
                                 Insert
 
                                       Type:INTEGER:5
 
                                       Text:CHARACTER:.Audit_Flow_Local_Payload_Compute.ContentCount
 
                                 Insert
 
                                       Type:INTEGER:5
 
                                       Text:CHARACTER:36.7
 
                                 Insert
 
                                       Type:INTEGER:5
 
                                       Text:CHARACTER:DECLARE msgBitStream BLOB ASBITSTREAM(OutputRoot.MRM ENCODING inEncoding CCSID inCCSID SET msgSet TYPE msgType FORMAT msgFormat);
 
                                 ParserException
 
                                       File:CHARACTER:F:\build\S700_P\src\MTI\MTIforBroker\MtiImbParser2\MtiImbParser.cpp
 
                                       Line:INTEGER:1872
 
                                       Function:CHARACTER:MtiImbParser::refreshBitStreamFromElements - 9 par
 
                                       Type:CHARACTER:ComIbmMQInputNode
 
                                       Name:CHARACTER:Audit_Flow_Local_Payload#FCMComposite_1_1
 
                                       Label:CHARACTER:Audit_Flow_Local_Payload.AuditEvent_Queue
 
                                       Catalog:CHARACTER:BIPmsgs
 
                                       Severity:INTEGER:3
 
                                       Number:INTEGER:5286
 
                                       Text:CHARACTER:ImbRecoverableException caught from worker when attempting to write out the bitstream.
 
                                       Insert
 
                                             Type:INTEGER:5
 
                                             Text:CHARACTER:CSV
 
                                       Insert
 
                                             Type:INTEGER:2
 
                                             Text:CHARACTER:1
 
                                       Insert
 
                                             Type:INTEGER:5
 
                                             Text:CHARACTER:CSV
 
                                       Insert
 
                                             Type:INTEGER:5
 
                                             Text:CHARACTER:/CSV_5
 
                                       ParserException
 
                                             File:CHARACTER:F:\build\S700_P\src\cpi\pwf\nxd\tdswriter.cpp
 
                                             Line:INTEGER:272
 
                                             Function:CHARACTER:CTDSWriter::write
 
                                             Type:CHARACTER:
 
                                             Name:CHARACTER:
 
                                             Label:CHARACTER:
 
                                             Catalog:CHARACTER:BIPmsgs
 
                                             Severity:INTEGER:3
 
                                             Number:INTEGER:5447
 
                                             Text:CHARACTER:TDS writing error
 
                                             Insert
 
                                                   Type:INTEGER:5
 
                                                   Text:CHARACTER:/CSV_5/header/requestDate
 
                                             ParserException
 
                                                   File:CHARACTER:F:\build\S700_P\src\MTI\MTIforBroker\MtiImbParser2\MtiImbValueValidator.cpp
 
                                                   Line:INTEGER:1865
 
                                                   Function:CHARACTER:MtiImbValueValidator::basicValidate
 
                                                   Type:CHARACTER:
 
                                                   Name:CHARACTER:
 
                                                   Label:CHARACTER:
 
                                                   Catalog:CHARACTER:BIPmsgs
 
                                                   Severity:INTEGER:3
 
                                                   Number:INTEGER:5164
 
                                                   Text:CHARACTER:Exception thrown when casting to the expected logical type
 
                                                   Insert
 
                                                         Type:INTEGER:5
 
                                                         Text:CHARACTER:requestDate
 
                                                   Insert
 
                                                         Type:INTEGER:5
 
                                                         Text:CHARACTER:DATETIME
 
                                                   Insert
 
                                                         Type:INTEGER:5
 
                                                         Text:CHARACTER:STRING
 
                                                   Insert
 
                                                         Type:INTEGER:5
 
                                                         Text:CHARACTER:2002-05-30T09:00:00Z
 
                                                   CastException
 
                                                         File:CHARACTER:F:\build\S700_P\src\CommonServices\ImbDateTime.cpp
 
                                                         Line:INTEGER:2797
 
                                                         Function:CHARACTER:ImbTimeStamp::fromString
 
                                                         Type:CHARACTER:
 
                                                         Name:CHARACTER:
 
                                                         Label:CHARACTER:
 
                                                         Catalog:CHARACTER:BIPmsgs
 
                                                         Severity:INTEGER:3
 
                                                         Number:INTEGER:2461
 
                                                         Text:CHARACTER:Invalid timestamp string
 
                                                         Insert
 
                                                               Type:INTEGER:2
 
                                                               Text:CHARACTER:-1
 
                                                         Insert
 
                                                               Type:INTEGER:5
 
                                                               Text:CHARACTER:S22007
 
                                                         Insert
 
                                                               Type:INTEGER:5
 
                                                               Text:CHARACTER:2002-05-30T09:00:00Z
 
 
 | 
   
 
 
 
As per my analysis, this is because the broker does not support the implicit string to TIMESTAMP type convesrion which is not a problem from string to DATE type.
 
 
Is this a bug in the product?
 
 
Thanks
 
mqxplorer[/b] | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | fjb_saper | 
		  
		    
			  
				 Posted: Thu Feb 10, 2011 8:50 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		 
		
		    Grand High Poobah
 
 Joined: 18 Nov 2003 Posts: 20768 Location: LI,NY 
  | 
		  
		    
			  
				Well I do know that TIMESTAMP has some challenges. You'd probably be better off holding all your values in GMTTIMESTAMP.
 
 
Have fun   _________________ MQ & Broker admin | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | mqxplorer | 
		  
		    
			  
				 Posted: Fri Feb 11, 2011 8:50 am    Post subject:  | 
				     | 
			   
			 
		   | 
		 
		
		    Master
 
 Joined: 22 Jun 2009 Posts: 206
  
  | 
		  
		    
			  
				@fjb_saper,
 
 
   
	| Quote: | 
   
  
	Well I do know that TIMESTAMP has some challenges. You'd probably be better off holding all your values in GMTTIMESTAMP. 
 
 
 | 
   
 
 
 
Ok. that is good.
 
 
Could you answer  my question regarding the implicit string type dateTime value to TIMESTAMP conevrsion? As my first post says - implicit string type date value to DATE conversion happens without any comaplaints. Why can't it be the same behavior with string type dateTime value? Is it a bug? 
 
 
As my second lengthy answer explains the issue with my custom audit flow....it would be really helpful, if you could answer my question regarding the audit.
 
 
Thanks
 
mqxplorer | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | rekarm01 | 
		  
		    
			  
				 Posted: Sat Feb 12, 2011 5:34 pm    Post subject: Re: String to DATE and TIMESTAMP conversion | 
				     | 
			   
			 
		   | 
		 
		
		   Grand Master
 
 Joined: 25 Jun 2008 Posts: 1415
  
  | 
		  
		    
			  
				
   
	| mqxplorer wrote: | 
   
  
	| I have a question regarding the string to DATE and TIMESTAMP conversion. | 
   
 
 
The WMB InfoCenter is a useful resource for answering questions regarding the string to DATE and TIMESTAMP conversion.
 
 
   
	| mqxplorer wrote: | 
   
  
	
   
	| Code: | 
   
  
	| SET resDate = CAST(InputRoot.MRM.header.requestDate AS DATE CCSID 1208); | 
   
 
 | 
   
 
 
The CCSID parameter is only useful for CASTing to/from BIT or BLOB.
 
 
   
	| mqxplorer wrote: | 
   
  
	This successfuuly converts the string date to DATE type date
 
   
	| Code: | 
   
  
	| requestDate:CHARACTER:2002-05-30 | 
   
 
 | 
   
 
 
Really?  How well does this work after 8 PM?  Is it off by one day?
 
 
   
	| mqxplorer wrote: | 
   
  
	
   
	| Code: | 
   
  
	| SET resDateTime = CAST(InputRoot.MRM.header.requestDate AS TIMESTAMP CCSID 1208); | 
   
 
   
	| Code: | 
   
  
	CastException
 
   Number:INTEGER:2461
 
   Text:CHARACTER:Invalid timestamp string
 
   Insert
 
      Type:INTEGER:2
 
      Text:CHARACTER:-1
 
   Insert
 
      Type:INTEGER:5
 
      Text:CHARACTER:S22007
 
   Insert
 
      Type:INTEGER:5
 
      Text:CHARACTER:2002-05-30T09:00:00Z | 
   
 
 | 
   
 
 
The WMB InfoCenter is a useful resource for explaining BIP error codes, SQL states, and how to resolve user errors:
 
 
   
	| Quote: | 
   
  
	BIP2461: Error casting character string '2002-05-30T09:00:00Z' to a TIMESTAMP. State = -1 'S22007' '0'
 
 
Explanation: The character string must have a the form 'TIMESTAMP 'yyyy-mm-dd hh:mm:ss[.f+]'', or 'yyyy-mm-dd hh:mm:ss[.f+]' to be valid for casting to a timestamp.
 
 
Response: Ensure that the string represents a valid time value. | 
   
 
 
   
	| Quote: | 
   
  
	| SqlState = 'S22007': Date time format not valid. A character string used in a cast from character to a datetime type had either the wrong basic format (for example, '01947-10-24') or had values outside the ranges allowed by the Gregorian calendar (for example, '1947-21-24'). | 
   
 
 
 
Either provide a character string that matches the expected format, or provide a FORMAT parameter that matches the given string.
 
 
   
	| mqxplorer wrote: | 
   
  
	| Is this a bug in the product? | 
   
 
 
No, not in the product.
 
 
   
	| mqxplorer wrote: | 
   
  
	
   
	| Code: | 
   
  
	| SET resDateTime = CAST(InputRoot.MRM.header.requestDate AS TIMESTAMP FORMAT 'IU'); | 
   
 
 
while casting, 4 hours were deducted from the incoming date ... | 
   
 
 
... as it should, when converting from GMT to EDT.  To avoid converting dates and times to the local timezone, CAST to GMTDATE or GMTTIMESTAMP instead. | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | 
		    
		   | 
		 
	   
	 | 
   
 
  
	     | 
	 | 
	Page 1 of 1 | 
   
 
 
 
  
  	
	  
		
		  
 
  | 
		  You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
  | 
  		 
	   
	 | 
   
 
  	 | 
	  |