Subtract years from date
Hi all
Can someone please tell me how to subtract a number of years from a date. Had a look through the forums with little success.
Thanks
Thanks for the response, I forgot about this post as I found a solution:
public String SubtractYearsFromDate(int years)
SimpleDateFormat date = new SimpleDateFormat ("dd-MMM-yyyy");
Calendar cal = Calendar.getInstance();
DateFormat df = DateFormat.getDateInstance();
cal.set((cal.get(cal.YEAR) - years), cal.get(cal.MONTH), cal.get(cal.DAY_OF_MONTH) );
String dateString = date.format(cal.getTime());
return dateString;
Bit convoluted though, so will give the roll() method a go. Thanks again.
Similar Messages
-
How to derive month/year from date in SAP BW 3.5 data flow
Hi
How we can derive cal year/month and fiscal month/year from date in SAP BW 3.5 data flow (we're using transfer and update rule)..
Thanks,
PKHi,
if you have any date filed in source side you can just map to any time char system will automatically convert to target objects.
please look at the screen shot for understanding. (not 3.x it is 7.x)
Thanks,
Phani. -
I have a question. I want to rip of the year from date field. For e.g if date is 01/02/2006 I want just the 01/02 which month and date. I tried to use substr function but it;s giving weird result. I used substr(date, 0,5) but not working. Please suggest.
If it is a DATE column/variable it is conventional to use TO_CHAR with an appropriate date format, in your case TO_CHAR (date_column, 'MM/YY').
-
Hello,
Iam using obiee 11g, would like to extract the year from date
CAST(YEAR("ABC"."DATEADDED" ) as varchar(4))
so used like this
But i want like if the year is 2011 then only 11 i wants is there a direct function which does that.
ThanksYou can use the right function right(year, 2). Will return 11 if year is 2011
-
help me..urgent..
how set query to select year from date by using expression where.
ex: select sum(salary)
from table
where year(date)=2007
group by name;
just something like that..help me.plezz..select *
from (
select 1 as rn, to_date('09052007','ddmmyyyy') as dt from dual union all
select 1 as rn, to_date('09052006','ddmmyyyy') as dt from dual
where to_char(dt,'yyyy') = '2007'; or
select *
from (
select 1 as rn, to_date('09052007','ddmmyyyy') as dt from dual union all
select 1 as rn, to_date('09052006','ddmmyyyy') as dt from dual
where extract(year from dt) = 2007; -
SUBTRACT TIME FROM DATE & TIME
Hi.
I need FM which will SUBTRACT TIME from DATE & TIME.
Example:
Date = 05.05.2007
Time = 05:00:00
Time_subtract = 48:00:00
Return of FM:
Date = 03.05.2007
Time = 05:00:00
Do you know any FM?
Thanks!Hi, Check these function mod's
SD_DATETIME_DIFFERENCE
HRCM_TIME_PERIOD_CALCULATE
HR_ECM_GET_PERIOD_BETW_DATES
After you execute them in SE37 give the required input and you will get a correct output.
<b>REWARD IF USEFUL</b>
thanks n regards
Dinesh -
How to Calculate column (Month, Year) from date or timestamp
Hi,
Name
SQL Data Type
Dimension
Column Store Data Type
Key
Not Null
Default
Comment
T_STAMP
TIMESTAMP
LONGDATE
How to generate Month and Year from timestamp field in Analytic View.
Please provide me some valuable input. I have searched SCN before posting this discussion.Hi KD,
You can apply the following formulas in the expression:
For Year :
leftstr(string("Timestamp"),4)
For Month:
midstr(string("Timestamp"),6,2)
Regards,
Krishna Tangudu -
Extract Month & Year From Date
Hi All,
I have a key figure quantity and i want the data on date,for the month and for the year.
i create the variables for the date,for the month(ie from date to date) and for the year(ie, from date to date) seperatly that means i have three input variables which may sometimes create confusion.
My problem is that I want to enter only date and the variable itself calculate the month and year from the date so that it returns the data as desired above.
for eg. : Now i to enter date : 3/14/2009
enter MTD (FROM/TO) : 3/01/2009 - 3/14/2009
enter YTD (FROM/TO) : 4/01/2008 - 3/14/2009
I want to enter only date : 3/14/2009
and the variable itself extract the month and year till date.
and also the same variable calculates number of days so that need not to take the formula variable of date difference to calculate the average qty.
Neha..Hi,
1. Create User Entry Variable on 0CALDAY : Name = ZCDAY.
2. Craete a Customer Exit Variable on 0CALDAY: Name = ZMTD.
3. Craete a Customer Exit Variable on 0CALDAY: Name = YMTD.
Properties of Customer Exit Variables.
Variable reporesents = Single
Variable Entry = Mandatory
Processing By = Customer Exit.
Character = Calender Day
Here I'm thinking that ZKF is your key figure.
In columns you create two selections one is for MTD and other is for YTD.
In MTD selection, drag and drop ZKF and Drag and Drop 0CALDAY and then Right Clcik and Restrict-->
Selection = Value Range. (In Between) and restrict with the follwoing Variables
[]ZMTD; ZCDAY.
In YTD selection, drag and drop ZKF and Drag and Drop 0CALDAY and then Right Clcik and Restrict-->
Selection = Value Range. (In Between) and restrict with the follwoing Variables
[]YTD; ZCDAY.
Then write the following code in I_STEP = 2.
DATA: ZT_DT1 TYPE SY-DATUM,
ZT_DT2 TYPE SY-DATUM,
ZT_SDT TYPE SY-DATUM,
ZT_YR(4) TYPE N,
ZT_DY(2) TYPE N,
ZT_MT(2) TYPE N,
ZE_TT(2) TYPE N,
ZPOPER TYPE POPER,
ZRELJR TYPE RELJR.
WHEN 'ZMTD_A'.
LOOP AT i_t_var_range INTO loc_var_range WHERE vnam = 'ZCDAY'.
IF sy-subrc = 0.
CLEAR: l_s_range.
ZT_DY = '01'.
ZT_SDT = loc_var_range-low.
ZT_MT = ZT_SDT+4(2).
ZT_YR = ZT_SDT+0(4).
CONCATENATE ZT_YR ZT_MT ZT_DY INTO ZT_DT1.
l_s_range-low = ZT_DT1.
l_s_range-sign = 'I'.
l_s_range-opt = 'EQ'.
APPEND l_s_range TO e_t_range.
ENDIF.
ENDLOOP.
WHEN 'ZYTD'.
LOOP AT i_t_var_range INTO loc_var_range WHERE vnam = 'ZCDAY'.
IF sy-subrc = 0.
CLEAR: l_s_range.
ZT_DY = '01'.
ZT_SDT = loc_var_range-low.
CALL FUNCTION 'DATE_TO_PERIOD_CONVERT'
EXPORTING
I_DATE = ZT_SDT
* I_MONMIT = 00
I_PERIV = 'V3'
IMPORTING
E_BUPER = zbuper
E_GJAHR = zbdatj
EXCEPTIONS
INPUT_FALSE = 1
T009_NOTFOUND = 2
T009B_NOTFOUND = 3
OTHERS = 4
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'FIRST_AND_LAST_DAY_IN_YEAR_GET'
EXPORTING
I_GJAHR = zbdatj
I_PERIV = 'V3'
IMPORTING
E_FIRST_DAY = ZT_DT2
* E_LAST_DAY =
EXCEPTIONS
INPUT_FALSE = 1
T009_NOTFOUND = 2
T009B_NOTFOUND = 3
OTHERS = 4
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
l_s_range-low = ZT_DT2.
l_s_range-sign = 'I'.
l_s_range-opt = 'EQ'.
APPEND l_s_range TO e_t_range.
ENDIF.
ENDLOOP.
Thanks
Reddy -
Getting Day, month and year from Date object
hello everybody,
Date mydate = Resultset.getDate(indexField);
Now i would like to get day, month and year from mydate.
In another words, i'm looking for something equivalent to
mydate.getDay() as this method is deprecated.
Can somebody help me out please?
Thank you in advance,swvc2000,
Here is a sample class that demonstrates two ways in which to do this.import java.util.*;
import java.text.*;
public class DateSplitter {
public static void main(String args[]) {
/* even though your date is from a result set,
pretend the following date is your date that
you are using. The try catch block is used
because I hand-crafted my date using
SimpleDateFormat. Substitute your date.*/
Date yourDate = null;
try {
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
yourDate = formatter.parse("05/06/2000");
} catch (ParseException e) { }
//the following gets the current date
Calendar c = Calendar.getInstance();
//use the calendar object to set it to your date
c.setTime(yourDate);
//note months start at zero
int month = c.get(Calendar.MONTH);
int year = c.get(Calendar.YEAR);
int dayOfMonth = c.get(Calendar.DAY_OF_MONTH);
System.out.println("Calendar Month: "+month);
System.out.println("Calendar Day: "+dayOfMonth);
System.out.println("Calendar Year: "+year);
System.out.println();
/* Simple date format can also be used to strip them
out of your date object. When you use it, notice that
months start at 1. Also, it returns string values. If
you need integer values, you will have to use
Integer.parseInt() as I did below. If you are
only concerned about the string values, just remove
the Integer.parseInt part. */
DateFormat formatter = new SimpleDateFormat("M");
month = Integer.parseInt(formatter.format(yourDate));
System.out.println("SDF Month: "+ month);
formatter = new SimpleDateFormat("d");
dayOfMonth = Integer.parseInt(formatter.format(yourDate));
System.out.println("SDF Day: "+ dayOfMonth);
formatter = new SimpleDateFormat("yyyy");
year = Integer.parseInt(formatter.format(yourDate));
System.out.println("SDF Year: "+ year);
}//end main
}//end DateSplitter classtajenkins -
Get month and year from date type
Hi all,
I need to get the month and year from the date type.
For example select to_date('2011-01-17', 'yyyy-mm-dd') from dual;Result needed:
01-2011Any ideas?
thanks in advance,
Bahchevanov.Hello Bahchevanov,
if you need the date to compute something, then you can
TRUNC(SYSDATE,'mm')This will give you a date with the days removed -> 01.01.2011
Regards
Marcus -
SELECT YEAR FROM DATE FROM VARCHAR2
Dear all,
i have a question aboute date and TO_DATE. The thing is i have a VARCHAR2 colum with data like:
12/09/1979
02/05/1978 etc etc etc
Now we like to know how old the person is at the beginning of the year. So we have to take the current year -1 -year of burth.
The first part is not so hard. We can take the current year from DUAL. Now here is the hard part how do we convert the varchar data to a date and extract only the years from it and not the rest of the date?
All bright and smart things are welcome :-)
Thanks already.Anupama and Christian,
thanks for the input buth i still have a question. I tried the option of Christian and moddified the query a little:
select months_between(trunc(sysdate, 'YEAR'),
to_date(
'27/08/1979',
'DD/MM/YYYY'
) / 12
from vak_werknemer where geboorte like '__/__/____'
This works fine buth. it is only working with 1 date, so i gives me a list +/1 1000 rows with the same conclusion i am correct aboute my age :-)
Now i like to do this with all the other people in the database. SO i have placed a subquery in the query instead of a date.
select months_between(trunc(sysdate, 'YEAR'),
to_date(
(select geboorte from vak_werknemer where geboorte like '__/__/____'),
'DD/MM/YYYY'
) / 12
from vak_werknemer where geboorte like '__/__/____'
This is giving me the error that a single-row subquery returns more than one row. That is correct there are 1000 returnd rows. How do i make the query so that it will give me a list of all the people and not the age of 1?
Thanks already. :-) -
Group by month/year from DATE FORMAT column
Hi Chaps,
I have a recordset that pulls data from a database, then presents the data in a table. The data is grouped by 'projid', repeated for every 'projid', with a show/hide control, to show all the 'jobid's' relating to that particular 'projid'
This is what I have so far:
Code:
SELECT
tbl_projects.projid,
tbl_projects.projtitle,
tbl_projects.projdue, DATE_FORMAT(tbl_projects.projdue, '%%d/%%m/%%Y') as projdue_format,
tbl_projects.projtype,
tbl_projects.projinvtype,
tbl_projects.FK_custid,
tbl_projects.projcompletedate
tbl_languaget.langtname,
tbl_doctype.doctypename,
tbl_jobs.jobid,
tbl_jobs.FK_projid,
tbl_jobs.jobname,
tbl_jobs.FK_langid,
tbl_jobs.jobpages,
tbl_jobs.jobshipped,
tbl_jobs.jobinvsent,
tbl_jobs.jobtranslatorcharge,
'tbl_jobs' as fromtable,
tbl_customers.custid,
FROM tbl_projects
INNER JOIN tbl_jobs
ON tbl_projects.projid=tbl_jobs.FK_projid
INNER JOIN tbl_languaget
ON tbl_languaget.langtid=tbl_jobs.FK_langid
INNER JOIN tbl_customers
ON tbl_customers.custid=tbl_projects.FK_custid
INNER JOIN tbl_costs
ON tbl_costs.FK_custid=tbl_customers.custid
INNER JOIN tbl_doctype
ON tbl_doctype.doctypeid=tbl_jobs.FK_doctypeid
WHERE tbl_projects.projstatus='Complete'
AND tbl_projects.projinvtype='Costing Sheet'
AND langtname!='TH'
AND langtname!='ID'
AND langtname!='KO'
AND langtname!='JP'
AND jobinvsent='y'
AND FK_custid = %s
ORDER BY projid ASC", GetSQLValueString($colname_rsInvPending, "int");
$rsInvPending = mysql_query($query_rsInvPending, $conndb2) or die(mysql_error());
//$row_rsInvPending = mysql_fetch_assoc($rsInvPending);
$totalRows_rsInvPending = mysql_num_rows($rsInvPending);
Code:
// REPEAT - FOR EVERY PROJECT
<?php
$previousProject = '';
if ($totalRows_rsInvPending > 0) {
// Show if recordset not empty
while ($row_rsInvPending = mysql_fetch_assoc($rsInvPending)) {
if ($previousProject != $row_rsInvPending['projid']) {
// for every Project, show the Project ID
?>
Code:
// SHOW/HIDE CONTROL
<tr>
<td colspan="9" class="highlight"><span class="blueBold"><a href="#" onclick="toggle2('proj1<?php echo $row_rsInvPending['projid'] ?>', this)"><img src="../../Images/plus.gif" border="0" /></a> <?php echo $row_rsInvPending['projid'] ?> - </a></span><span class="blueNOTBold"><em><?php echo $row_rsInvPending['projtitle'] ?></em></span></td>
</tr>
Code:
// SHOW/HIDE
<?php $previousProject = $row_rsInvPending['projid']; } ?>
<tr class="proj1<?php echo $row_rsInvPending['projid'] ?>" style="display:none">
<td>column 1</td>
<td>column 2</td>
What I want, is to put in another grouped by stage, where the 'projid's' themselves are in a show/hide region, grouped by 'projcompletedate' (year/month). 'projcompletedate' is in DATE format, but how to I get PHP/SQL to take the month and year and then group them correctly?Hi David, I'm not sure if I've got this right, would you mind looking at my latest code?:
<table border="0" cellpadding="0" cellspacing="0" id="tblinvoice">
<tr>
<th>Job Title</th>
<th>Type</th>
<th>Language</th>
<th>Translator</th>
<th>Total</th>
<th>Full</th>
<th>Fuzzy</th>
<th>Proof</th>
<th>Full Price</th>
<th>Discount Price</th>
<th>Document Format</th>
<th>Pages</th>
<th>Typesetting Cost</th>
<th>EN Proofreading Cost</th>
<th>Total</th>
<th>Translator Charge</th>
<th>Profit</th>
<th>Profit Percentage</th>
</tr>
<?php
$previousMonth = '';
if ($totalRows_rsInvPending > 0) {
// Show if recordset not empty
do ($row_rsInvPending = mysql_fetch_assoc($rsInvPending)) {
if ($previousMonth != $row_rsInvPending['themonth']) {
// for every Month, show the Month Name
?>
<tr>
<td colspan="18" class="highlight"><?php echo $row_rsInvPending['theyear'] ?> - <?php echo $row_rsInvPending['themonth'] ?></td>
</tr>
<?php $previousMonth = $row_rsInvPending['themonth']; } ?>
<?php
$previousProject = '';
if ($totalRows_rsInvPending > 0) {
// Show if recordset not empty
while ($row_rsInvPending = mysql_fetch_assoc($rsInvPending)) {
if ($previousProject != $row_rsInvPending['projid']) {
// for every Project, show the Project ID
?>
<tr>
<td colspan="18" class="highlight"><span class="blueBold"><a href="#" onclick="toggle2('proj1<?php echo $row_rsInvPending['projid'] ?>', this)"><img src="../../Images/plus.gif" border="0" /></a> <?php echo $row_rsInvPending['projid'] ?> - </a></span><span class="blueNOTBold"><em><?php echo $row_rsInvPending['projtitle'] ?></em></span></td>
</tr>
<?php $previousProject = $row_rsInvPending['projid']; } ?>
<tr class="proj1<?php echo $row_rsInvPending['projid'] ?>" style="display:none">
<td><?php echo $row_rsInvPending['jobname']; ?></td>
<td><?php echo $row_rsInvPending['projtype']; ?></td>
<td><?php echo $row_rsInvPending['langtname']; ?></td>
<td><?php echo $row_rsInvPending['translator']; ?></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<?php } while ($row_rsInvPending = mysql_fetch_assoc($rsInvPending)); ?>
<?php } // Show if recordset not empty ?> -
Removing 2 years from date in where clause
I have a table that has a date and I want to select all the rows where the date is between the current date and 2 years back.
What is the cleanest way to do it?
I have the this so far
select TO_DATE(CURRENT_DATE, 'DD-MON-YYYY') from dual
Thank youjerry8989 wrote:
I have a table that has a date and I want to select all the rows where the date is between the current date and 2 years back.
What is the cleanest way to do it?
I have the this so far
select TO_DATE(CURRENT_DATE, 'DD-MON-YYYY') from dual
Thank youHello
You should always compare dates to date. Don't convert to string as it is unnecessary and it will mess up the comparison for ranges. You can use the ADD_MONTHS function like so...
SELECT
FROM
your_table
WHERE
your_date_column >= ADD_MONTHS(TRUNC(sysdate),-24)
AND
your_date_column < TRUNC(SYSDATE) + 1HTH
David -
FISCAL year from Date in the Selection Screen.
Hi Folks,
Is there any function module which returns the Fiscal year if we provide the date in ranges.
I mean, I have a select option for date in the selection screen.So,if a user enters the date say 01042007 01042007 it should return the corresponding fiscal year.
Kindly let me know if anyone here has any idea regarding this.
Thanks,
K.Kiran.Hello,
Check these FM's
FTIS
FTI_FISCAL_YEAR_MONTH_GET
KBPA Budget/Plan - application-specific
KBPA_GET_START_FISCAL_YEAR Determine Start Year for Funds Management
KBPA_GET_START_FISCAL_YEAR_OPT
Vasanth -
Extract year from date and exclude Null
I have a calculated column that will pull the year out of a date column:
=TEXT([Date Impact Identified],"yyyy")
This formula works fine but if the column is blank then it returns the value as 1899. I have tried several variations of ISBLANK or ="" but nothing has worked so far. I think I am putting the formula in the wrong order. Can anyone help?
Thanks.Hello,
In order to save you weeding through other threads, here's what should work in your scenario:
=IF(ISBLANK([Date
Impact Identified]),"",TEXT([Date
Impact Identified],"yyyy"))
cheers, teylyn
Maybe you are looking for
-
CS4 Linking Text Boxes Together in Anchored Objects?
Hi. Using InDesign CS4 I have a Anchored Object that I would like to link part of it to the next one in the text frame. Example: I have grouped together a text box, a box with a placed UPC from Illustrator and another text box stacked on top of each
-
hi, there is not HDMI port on X201 so how to connect to HD TV and watch HD movies with HD audios from the harddisk? + ThinkPad X201 3626-FBG / Intel Core i5 M520 2.4Ghz / DDR3 8Gb / Intel SSD 730 Series 240Gb / 12.1" WXGA 1280x800px / Dual boot Win7
-
System freezes sometimes after logging out of x
For some reason when I go out of x the system (at that window) freezes so I cant input anything. I can kill the process from another tty. What is it that makes it so?
-
Issue during CO43 for Process Orders
Dear SAP Experts, I have a scenario where in Process Order is created in COR1, after that in COR2 i entered the qty then i did the confirmation for process order, now MIGO is done till now everything look fine with no errors. But now when i do CO43 f
-
Can somebody explain the error when i try to delete something off my Jlist?
type String name, password, phone and int currently salary and desired salary. press the add button. then click on the name and pres delete. theres a huge error on the command prompt. could some1 tell me how to solve it? here are the codes: import ja