Convert string of length 8 to *EUR date for comparing
I want to convert a string of length 8 to a date type for comparing it. The string is formatted as DDMMYYYY (*EUR).
It has no periods for seperating the days from months and months from years. If I input a value like '01012018' to the %date BIF the compiler tells me that the expression is too short for the format *EUR:
D dateEUR s d datfmt(*EUR)
C eval dateEUR = %date('01012018':*EUR)
My previous way to compare to two dates was to take both of them, store them in datastructues, reorder the date with subfields and take the resulting, reordered date from a overlaying subfield.
Has anyone a idea of how to convert the 8A string to a DATE type in RPGLE?
datetime ibm-midrange datetime-format rpgle
add a comment |
I want to convert a string of length 8 to a date type for comparing it. The string is formatted as DDMMYYYY (*EUR).
It has no periods for seperating the days from months and months from years. If I input a value like '01012018' to the %date BIF the compiler tells me that the expression is too short for the format *EUR:
D dateEUR s d datfmt(*EUR)
C eval dateEUR = %date('01012018':*EUR)
My previous way to compare to two dates was to take both of them, store them in datastructues, reorder the date with subfields and take the resulting, reordered date from a overlaying subfield.
Has anyone a idea of how to convert the 8A string to a DATE type in RPGLE?
datetime ibm-midrange datetime-format rpgle
add a comment |
I want to convert a string of length 8 to a date type for comparing it. The string is formatted as DDMMYYYY (*EUR).
It has no periods for seperating the days from months and months from years. If I input a value like '01012018' to the %date BIF the compiler tells me that the expression is too short for the format *EUR:
D dateEUR s d datfmt(*EUR)
C eval dateEUR = %date('01012018':*EUR)
My previous way to compare to two dates was to take both of them, store them in datastructues, reorder the date with subfields and take the resulting, reordered date from a overlaying subfield.
Has anyone a idea of how to convert the 8A string to a DATE type in RPGLE?
datetime ibm-midrange datetime-format rpgle
I want to convert a string of length 8 to a date type for comparing it. The string is formatted as DDMMYYYY (*EUR).
It has no periods for seperating the days from months and months from years. If I input a value like '01012018' to the %date BIF the compiler tells me that the expression is too short for the format *EUR:
D dateEUR s d datfmt(*EUR)
C eval dateEUR = %date('01012018':*EUR)
My previous way to compare to two dates was to take both of them, store them in datastructues, reorder the date with subfields and take the resulting, reordered date from a overlaying subfield.
Has anyone a idea of how to convert the 8A string to a DATE type in RPGLE?
datetime ibm-midrange datetime-format rpgle
datetime ibm-midrange datetime-format rpgle
asked Nov 22 '18 at 9:25
RadinatorRadinator
1,014630
1,014630
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
The format you specify will depend on whether or not you store the date separators. If your date is in a 10-byte character field as DD-MM-YYYY (with the dashes), this is again EUR format:
%date(alpha_date : *eur)
If you don'tt need standard separators with your date (DDMMYYYY in an 8-byte character field) simply append the number zero (0) to the end of the format name:
%date(alpha_date : *eur0)
is this possible too for numeric (zoned) fields?
– Radinator
Nov 22 '18 at 13:56
Yes, it's possible, but if you don't need separator must do 2 steps, an example:%char( %date(num_date : *iso) : *eur0)
– Nifriz
Nov 23 '18 at 8:37
If you want to convert a numeric field with DDMMYYY to a date, use %date(num_date:*eur).
– Barbara Morris
Nov 27 '18 at 13:49
Nifriz's suggestion converts a YYYYMMDD numeric field to a date, and then converts the date to a character field in DDMMYYYY format, which is probably not what is wanted here.
– Barbara Morris
Nov 27 '18 at 13:50
Yes, it was to invert %date( %char(num_date : *iso) : *eur0)... SORRY. @Barbara_Morris numeric field support *EUR and *ISO but doesn't support *EUR0 and *ISO0.
– Nifriz
Nov 27 '18 at 14:06
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53427606%2fconvert-string-of-length-8-to-eur-date-for-comparing%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
The format you specify will depend on whether or not you store the date separators. If your date is in a 10-byte character field as DD-MM-YYYY (with the dashes), this is again EUR format:
%date(alpha_date : *eur)
If you don'tt need standard separators with your date (DDMMYYYY in an 8-byte character field) simply append the number zero (0) to the end of the format name:
%date(alpha_date : *eur0)
is this possible too for numeric (zoned) fields?
– Radinator
Nov 22 '18 at 13:56
Yes, it's possible, but if you don't need separator must do 2 steps, an example:%char( %date(num_date : *iso) : *eur0)
– Nifriz
Nov 23 '18 at 8:37
If you want to convert a numeric field with DDMMYYY to a date, use %date(num_date:*eur).
– Barbara Morris
Nov 27 '18 at 13:49
Nifriz's suggestion converts a YYYYMMDD numeric field to a date, and then converts the date to a character field in DDMMYYYY format, which is probably not what is wanted here.
– Barbara Morris
Nov 27 '18 at 13:50
Yes, it was to invert %date( %char(num_date : *iso) : *eur0)... SORRY. @Barbara_Morris numeric field support *EUR and *ISO but doesn't support *EUR0 and *ISO0.
– Nifriz
Nov 27 '18 at 14:06
add a comment |
The format you specify will depend on whether or not you store the date separators. If your date is in a 10-byte character field as DD-MM-YYYY (with the dashes), this is again EUR format:
%date(alpha_date : *eur)
If you don'tt need standard separators with your date (DDMMYYYY in an 8-byte character field) simply append the number zero (0) to the end of the format name:
%date(alpha_date : *eur0)
is this possible too for numeric (zoned) fields?
– Radinator
Nov 22 '18 at 13:56
Yes, it's possible, but if you don't need separator must do 2 steps, an example:%char( %date(num_date : *iso) : *eur0)
– Nifriz
Nov 23 '18 at 8:37
If you want to convert a numeric field with DDMMYYY to a date, use %date(num_date:*eur).
– Barbara Morris
Nov 27 '18 at 13:49
Nifriz's suggestion converts a YYYYMMDD numeric field to a date, and then converts the date to a character field in DDMMYYYY format, which is probably not what is wanted here.
– Barbara Morris
Nov 27 '18 at 13:50
Yes, it was to invert %date( %char(num_date : *iso) : *eur0)... SORRY. @Barbara_Morris numeric field support *EUR and *ISO but doesn't support *EUR0 and *ISO0.
– Nifriz
Nov 27 '18 at 14:06
add a comment |
The format you specify will depend on whether or not you store the date separators. If your date is in a 10-byte character field as DD-MM-YYYY (with the dashes), this is again EUR format:
%date(alpha_date : *eur)
If you don'tt need standard separators with your date (DDMMYYYY in an 8-byte character field) simply append the number zero (0) to the end of the format name:
%date(alpha_date : *eur0)
The format you specify will depend on whether or not you store the date separators. If your date is in a 10-byte character field as DD-MM-YYYY (with the dashes), this is again EUR format:
%date(alpha_date : *eur)
If you don'tt need standard separators with your date (DDMMYYYY in an 8-byte character field) simply append the number zero (0) to the end of the format name:
%date(alpha_date : *eur0)
edited Nov 22 '18 at 13:11
answered Nov 22 '18 at 10:59
NifrizNifriz
183111
183111
is this possible too for numeric (zoned) fields?
– Radinator
Nov 22 '18 at 13:56
Yes, it's possible, but if you don't need separator must do 2 steps, an example:%char( %date(num_date : *iso) : *eur0)
– Nifriz
Nov 23 '18 at 8:37
If you want to convert a numeric field with DDMMYYY to a date, use %date(num_date:*eur).
– Barbara Morris
Nov 27 '18 at 13:49
Nifriz's suggestion converts a YYYYMMDD numeric field to a date, and then converts the date to a character field in DDMMYYYY format, which is probably not what is wanted here.
– Barbara Morris
Nov 27 '18 at 13:50
Yes, it was to invert %date( %char(num_date : *iso) : *eur0)... SORRY. @Barbara_Morris numeric field support *EUR and *ISO but doesn't support *EUR0 and *ISO0.
– Nifriz
Nov 27 '18 at 14:06
add a comment |
is this possible too for numeric (zoned) fields?
– Radinator
Nov 22 '18 at 13:56
Yes, it's possible, but if you don't need separator must do 2 steps, an example:%char( %date(num_date : *iso) : *eur0)
– Nifriz
Nov 23 '18 at 8:37
If you want to convert a numeric field with DDMMYYY to a date, use %date(num_date:*eur).
– Barbara Morris
Nov 27 '18 at 13:49
Nifriz's suggestion converts a YYYYMMDD numeric field to a date, and then converts the date to a character field in DDMMYYYY format, which is probably not what is wanted here.
– Barbara Morris
Nov 27 '18 at 13:50
Yes, it was to invert %date( %char(num_date : *iso) : *eur0)... SORRY. @Barbara_Morris numeric field support *EUR and *ISO but doesn't support *EUR0 and *ISO0.
– Nifriz
Nov 27 '18 at 14:06
is this possible too for numeric (zoned) fields?
– Radinator
Nov 22 '18 at 13:56
is this possible too for numeric (zoned) fields?
– Radinator
Nov 22 '18 at 13:56
Yes, it's possible, but if you don't need separator must do 2 steps, an example:
%char( %date(num_date : *iso) : *eur0)
– Nifriz
Nov 23 '18 at 8:37
Yes, it's possible, but if you don't need separator must do 2 steps, an example:
%char( %date(num_date : *iso) : *eur0)
– Nifriz
Nov 23 '18 at 8:37
If you want to convert a numeric field with DDMMYYY to a date, use %date(num_date:*eur).
– Barbara Morris
Nov 27 '18 at 13:49
If you want to convert a numeric field with DDMMYYY to a date, use %date(num_date:*eur).
– Barbara Morris
Nov 27 '18 at 13:49
Nifriz's suggestion converts a YYYYMMDD numeric field to a date, and then converts the date to a character field in DDMMYYYY format, which is probably not what is wanted here.
– Barbara Morris
Nov 27 '18 at 13:50
Nifriz's suggestion converts a YYYYMMDD numeric field to a date, and then converts the date to a character field in DDMMYYYY format, which is probably not what is wanted here.
– Barbara Morris
Nov 27 '18 at 13:50
Yes, it was to invert %date( %char(num_date : *iso) : *eur0)... SORRY. @Barbara_Morris numeric field support *EUR and *ISO but doesn't support *EUR0 and *ISO0.
– Nifriz
Nov 27 '18 at 14:06
Yes, it was to invert %date( %char(num_date : *iso) : *eur0)... SORRY. @Barbara_Morris numeric field support *EUR and *ISO but doesn't support *EUR0 and *ISO0.
– Nifriz
Nov 27 '18 at 14:06
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53427606%2fconvert-string-of-length-8-to-eur-date-for-comparing%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown