Author |
Message
|
LH33 |
Posted: Thu Nov 21, 2002 11:25 am Post subject: Date and Time Manipulation |
|
|
Master
Joined: 21 Nov 2002 Posts: 200
|
I have a need to add 48 hours to both a date and a time field that will be passed to me via XML. Can anyone help me with how to do this.
For example - I will be sent a CREATE DATE of say 20021114 I need to add 48 hours to this to form an END BEFORE DATE field.
Thanks!! |
|
Back to top |
|
 |
kirani |
Posted: Thu Nov 21, 2002 7:39 pm Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
Try something like this,
Code: |
DECLARE CURDT DATE;
SET CURDT = CURRENT_DATE;
DECLARE NEWDT DATE;
SET NEWDT = CURDT + INTERVAL '48' HOUR;
|
_________________ 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 |
|
 |
LH33 |
Posted: Fri Nov 22, 2002 3:28 am Post subject: |
|
|
Master
Joined: 21 Nov 2002 Posts: 200
|
|
Back to top |
|
 |
vmurdesh |
Posted: Wed Nov 19, 2003 4:58 pm Post subject: INTERVAL function does not work in v2.1 CSD02 ? |
|
|
Novice
Joined: 09 May 2002 Posts: 18
|
Hi,
I tried the following ESQL with the INTERVAL function and it does not work in v2.1 CSD02 on NT ?
DECLARE tempCovExpDateSQL DATE;
SET tempCovExpDateSQL = DATE '2003-08-31' + INTERVAL '3' MONTH;
The same statement works when DATE '2003-10-31'
Is this a bug ? Do we need CSD05?
Thanks in advance.. |
|
Back to top |
|
 |
LH33 |
Posted: Thu Nov 20, 2003 6:16 am Post subject: |
|
|
Master
Joined: 21 Nov 2002 Posts: 200
|
VMURDESH,
I used the code Kiran suggested above and it works fine. I am on version 2.1 CSD05 on NT.
Thanks, Lisa |
|
Back to top |
|
 |
vmurdesh |
Posted: Thu Nov 20, 2003 10:01 am Post subject: So is this a bug in CSD02 ? |
|
|
Novice
Joined: 09 May 2002 Posts: 18
|
Thanks Lisa....
So is this a bug in CSD02 ? does this mean we would have to do an upgrade for this to CSD05 fron CSD02 ?
Thanks again.. |
|
Back to top |
|
 |
LH33 |
Posted: Thu Nov 20, 2003 10:06 am Post subject: |
|
|
Master
Joined: 21 Nov 2002 Posts: 200
|
VMURDESH,
I'm not sure if the error is in the CSD02 since I always had CSD05. Since we are both on the same version of Control Center, I would upgrade to CSD05.
Thanks, Lisa |
|
Back to top |
|
 |
kirani |
Posted: Sat Nov 22, 2003 10:55 pm Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
vmurdesh,
I'd recommend that you open a PMR for this problem.
If you want to upgrade to a higher CSD then please go thru the readme files for CSD3, 4 and 5 before installing it. _________________ 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 |
|
 |
vmurdesh |
Posted: Tue Nov 25, 2003 12:31 pm Post subject: proplem persists even with CSD 5 |
|
|
Novice
Joined: 09 May 2002 Posts: 18
|
Hi Kiran,
Thanks for your reply.
I installed CSD 5 on NT and tried the foll ESQL in a simple compute node:
DECLARE tempCovExpDateSQL DATE;
DECLARE covExpDateSQL DATE;
SET covExpDateSQL = DATE '2003-08-31';
SET Environment.Variables.MYcovExpDateSQL = covExpDateSQL;
SET tempCovExpDateSQL = DATE '2003-08-31' + INTERVAL '3' MONTH;
SET Environment.Variables.MYtempCovExpDateSQL = tempCovExpDateSQL;
(it works with SET tempCovExpDateSQL = DATE '2003-10-31' + INTERVAL '3' MONTH;)
Thanks.
Vinayak
This is what happens on the red statement on NT.
==================
Trace Contents
==================
(
(0x3000000)MYcovExpDateSQL = DATE '2003-08-31'
)
(
(0x1000000)RecoverableException = (
(0x3000000)File = 'F:\build\S210_P\src\DataFlowEngine\ImbDataFlowNode.cpp'
(0x3000000)Line = 536
(0x3000000)Function = 'ImbDataFlowNode::createExceptionList'
(0x3000000)Type = 'ComIbmComputeNode'
(0x3000000)Name = '10dd2023-f200-0000-0080-ea4d9762a08c'
(0x3000000)Label = 'SyntaxTest.SyntaxTest'
(0x3000000)Text = 'Node throwing exception'
(0x3000000)Catalog = 'WMQIv210'
(0x3000000)Severity = 3
(0x3000000)Number = 2230
(0x1000000)RecoverableException = (
(0x3000000)File = 'F:\build\S210_P\src\DataFlowEngine\ImbRdl\ImbRdlBinaryExpression.cpp'
(0x3000000)Line = 297
(0x3000000)Function = 'SqlBinaryPlus::evaluate'
(0x3000000)Type = 'ComIbmComputeNode'
(0x3000000)Name = '10dd2023-f200-0000-0080-ea4d9762a08c'
(0x3000000)Label = 'SyntaxTest.SyntaxTest'
(0x3000000)Text = 'error evaluating expression'
(0x3000000)Catalog = 'WMQIv210'
(0x3000000)Severity = 3
(0x3000000)Number = 2439
(0x1000000)Insert = (
(0x3000000)Type = 2
(0x3000000)Text = '12'
)
(0x1000000)Insert = (
(0x3000000)Type = 2
(0x3000000)Text = '43'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'DATE '2003-08-31' + INTERVAL INTERVAL '3' MONTH'
)
(0x1000000)RecoverableException = (
(0x3000000)File = 'F:\build\S210_P\src\CommonServices\ImbDateTime.cpp'
(0x3000000)Line = 3026
(0x3000000)Function = 'ImbDate::operator+='
(0x3000000)Type = ''
(0x3000000)Name = ''
(0x3000000)Label = ''
(0x3000000)Text = 'Bad date'
(0x3000000)Catalog = 'WMQIv210'
(0x3000000)Severity = 3
(0x3000000)Number = 2327
(0x1000000)Insert = (
(0x3000000)Type = 2
(0x3000000)Text = '2003'
)
(0x1000000)Insert = (
(0x3000000)Type = 2
(0x3000000)Text = '11'
)
(0x1000000)Insert = (
(0x3000000)Type = 2
(0x3000000)Text = '31'
)
)
)
)
) |
|
Back to top |
|
 |
mgk |
Posted: Wed Nov 26, 2003 3:38 am Post subject: |
|
|
 Padawan
Joined: 31 Jul 2003 Posts: 1642
|
DATE '2003-08-31' + INTERVAL '3' MONTH;
This will give you the Date '2003-11-31' which is invalid as November only has 30 days. I will check whether we should actually be rounding this, but I don't think so... _________________ MGK
The postings I make on this site are my own and don't necessarily represent IBM's positions, strategies or opinions. |
|
Back to top |
|
 |
vmurdesh |
Posted: Wed Nov 26, 2003 8:39 am Post subject: i think thats a bug |
|
|
Novice
Joined: 09 May 2002 Posts: 18
|
thanks mgk,
i know it calculates it to 2003-11-31 but when the date is a variable this would imply that you have to check the input date before using the INTERVAL statement which makes it pointless.
I have opened a PMR with IBM for this.
for example:
adding 3 months to '2003-08-31' should be '2003-11-30' ? (it seems to be calculating 2003-11-31 and blowing up)
adding 90 days to '2003-08-31' will be '2003-11-29'..
This is how we would code it in our java or cobol apps.
Thanks.
Vinayak. |
|
Back to top |
|
 |
|