CONVERT INVERTED-DATE

Hi Experts,
                can anybody explain below example..
DATA: odate TYPE d VALUE '19955011',
           idate LIKE odate.
CONVERT DATE odate INTO INVERTED-DATE idate.
CONVERT INVERTED-DATE idate INTO DATE odate.
Thanks in advance..
shobha henry

Hi,
Convert date routine is mainly used in case you are querying date field in a currency table example TCURR.
Assume an internal table containing following dates:
18.3.2006
17.3.2006
19.3.2006.
If we sort the internal table by date ascending, then the sequence would be:
17.3.2006, 18.3.2006 and 19.3.2006.
Now in another internal table have another internal table with actual date and converted date. Convert the actual date into inverted date and populate into the second field.
Now if you give a sort ascending by the converted date field the sequence will be:
19.3.2006, 18.3.2006 and 17.3.2006. This means the latest(youngest) gets on top.
This will be very useful when querying currency table to find latest exchange rates / exchange rate between a given period.
TABLES: tcurr.
PARAMETERS: p_date LIKE sy-datum.
DATA: c_date LIKE sy-datum.
SELECT SINGLE ukurs INTO tcurr-ukurs FROM tcurr WHERE
                                          kurst = '1001' AND
                                          fcurr = 'DEM' AND
                                          tcurr = 'USD' AND
                                          gdatu = p_date.
WRITE:/ tcurr-ukurs.
CONVERT DATE p_date INTO INVERTED-DATE c_date.
SELECT SINGLE ukurs INTO tcurr-ukurs FROM tcurr WHERE
                                          kurst = '1001' AND
                                          fcurr = 'DEM' AND
                                          tcurr = 'USD' AND
                                          gdatu = c_date.
WRITE:/ tcurr-ukurs.
Put a breakpoint after convert statement and see for yourself.
Thanks and regards,
S. Chandra Mouli.

Similar Messages

  • Inverte - Date function in Update Rules

    Hi All,
    We are writing a code for converting the data into a date field using INVERTE-DATE function.
    The field GDATU in the Table TCURR needs to be converted.
    GDATU - Date As of Which the Exchange Rate Is Effective. This is not in proper format, hence we used the below code to converte in to a proper one.
    TABLES: TCURR.
    DATA: tcurr_tab TYPE TABLE OF tcurr.
    data: date_normal type sy-datum.
    FIELD-SYMBOLS
    <tcurr_wa> TYPE tcurr.
    SELECT gdatu FROM tcurr INTO corresponding fields of
    TABLE tcurr_tab.
    SORT tcurr_tab BY gdatu.
    LOOP AT tcurr_tab ASSIGNING <tcurr_wa>.
    break-point.
    CONVERT INVERTED-DATE <tcurr_wa>-gdatu
    INTO DATE date_normal.  "move that to normal date field
    write:/ date_normal.    "take a normal date field
    ENDLOOP.
    when I check for this code... it gives us the below error message
    E:Variants with INVERTED-DATE are no longer supported in the OO context.
    Use TRANSLATE ... USING '1928374664738291' instead
    Can anyone suggest me what could be done to solve this issue.
    Thanks,
    Maddy

    Hi Maddy,
    If you do F1 help for 'Inverted-Date' you will get the reason as:
    Cannot Convert Dates
    The statements CONVERT DATE and CONVERT INVERTED DATE are not allowed.
    An error message occurs in ABAP Objects if the following syntax is used:
    CONVERT DATE f1 INTO INVERTED-DATE f2.
    CONVERT INVERTED-DATE f2 INTO DATE f1.
    Correct syntax:
    CONSTANTS comp_nine(20) TYPE c VALUE '09182736455463728190'.
    f2 = f1.
    TRANSLATE f2 USING comp_nine.
    f1 = f2.
    TRANSLATE f1 USING comp_nine.
    Reason:
    Date conversions are used mainly to influence the sort sequence in in internal tables. This function can be replaced by the additions ASCENDING or DESCENDING of the statement SORT. If required, you can easily program the nines complement yourself using TRANSLATE.
    Regards,
    Saba

  • What is the use of inverted date format

    In table TCURR - Exchange rates, the field GDATU - Date As of Which the Exchange Rate Is Effective is stored as an inverted date. So 01/01/2008 is actually stored as 79919898.
    What is the use of inverted dates. Why does SAP use them. Why not just use normal date format? If I want the latest record from the table, instead of sorting by descending, I actually have to sort by ascending because the date is stored in inverted format.

    Hi,
    Inverted date is a old concept which helps in soring the dates sometimes. but now ASCENDING and DESCENDING sorting is more easy and quick. Check this application help. maybe useful for you
    1. CONVERT DATE f1 INTO INVERTED-DATE f2.
    2. CONVERT INVERTED-DATE f1 INTO DATE f2.
    Effect
    Calculates the nine's complement of the internal date format (YYYYMMDD - for more information about internal display, meaning and initial values of types, see TYPES) and places it in the field f2. For example, 19950511 becomes 80049488 and 80049488 becomes 19950511.
    In the inverse date format, the most recent date has the numerically smallest value. You can make use of this effect when sorting dates.
    Note
    The technique of manipulating the sort sequence of dates by inverting the internal date format is now rarely used. You can sort internal tables in order of ascending or descending date values much more efficiently using the ... ASCENDING or ... DESCENDING additions to the SORT statement.
    Example
    DATA DATE_INV LIKE SY-DATUM.
    CONVERT DATE SY-DATUM INTO INVERTED-DATE DATE_INV.
    Suppose, for example, SY-DATUM contains the date 11.05.1995 in its internal format 19950511. After execution of the CONVERT statement, DATE_INV would contain the internal format 80049488.
    //Kothand

  • How can I convert a .dat to a .zip on a Mac?

    Hi -
    I friend wanted me to update his company's website which runs on a MS Exchange Server/Sharepoint set up.  He zipped all the html, jpeg, and assorted text files and attached that zip file to an email.  When I received it on my Mac it had been converted to a ".dat" file.  He tells me that this is the result of sending a zipped file over the MS Exchange Server mail system to a Mac. (Whatever happened to cross-platform?)
    Is there a Mac utility I can use to convert this dat file back to a zip file that I then can open on my Mac?
    TIA
    Josh

    Hello:
    This article addresses your issue:
    http://docs.info.apple.com/article.html?path=Mail/10.7/en/mlhlp1141.html
    Barry

  • How can i convert the date from M to MM ?

    Dear Guru ,
    I need to upload my list to SAP table , and in the list , we are using YYYY/M/D format ( Eg. 2010/5/20 , 2010/10/1 ) .
    And now i want to convert all date format to YYYY/MM/DD , Is it possibile to do that ?
    Here is my code , but it doesn't work . It returned "2009//3//5" format .
    data: ld_date_int type datum.
    data : test(10) type c.
    test = '2009/3/5' .
    ld_date_int = test .
    WRITE : SY-SUBRC , LD_DATE_int .
    Does SAP provide a standard function can convert the date format ?
    Thanks .
    Best Regards,
    Carlos Zhang

    Hi Dear
    You can try in this way :::
    data: ld_date_int type string.
    DATA : ld_string TYPE string.
    data : test(10) type c,
           ld_res1(4) TYPE c,
           ld_res2(2) TYPE c,
           ld_res3(2) TYPE c.
    DATA : ll_res2 TYPE i,
           ll_res3 TYPE i.
    test = '2009/03/5' .
    ld_date_int = test .
    ld_string = strlen( ld_date_int ).
    CASE ld_string.
      WHEN 10.
       WRITE : SY-SUBRC , LD_DATE_int.
      WHEN OTHERS.
        SPLIT ld_date_int at '/' INTO ld_res1 ld_res2 ld_res3 in CHARACTER MODE.
        ll_res2 = strlen( ld_res2 ).
        ll_res3 = strlen( ld_res3 ).
        IF NOT ll_res2 eq 2 and not ll_res3 eq 2.
          CONCATENATE: '0' ld_res2 INTO ld_res2.
          CONCATENATE: '0' ld_res3 INTO ld_res3.
          CONCATENATE ld_res1 '/' ld_res2 '/' ld_res3 INTO ld_date_int.
          WRITE : SY-SUBRC , LD_DATE_int.
        ENDIF.
        IF ll_res2 eq 2 and not ll_res3 eq 2.
          CONCATENATE '0' ld_res3 INTO ld_res3.
          CONCATENATE ld_res1 '/' ld_res2 '/' ld_res3 INTO ld_date_int.
          WRITE : SY-SUBRC , LD_DATE_int.
        ENDIF.
        IF NOT ll_res2 eq 2 and ll_res3 eq 2.
           CONCATENATE: '0' ld_res2 INTO ld_res2.
            CONCATENATE ld_res1 '/' ld_res2 '/' ld_res3 INTO ld_date_int.
             WRITE : SY-SUBRC , LD_DATE_int.
        ENDIF.
    ENDCASE.

  • How can i convert the data from mutiple-table to the other database(MSSQL)?

    Dears,
    How can i convert the data from mutiple-table to the other database such as MS-SQL?
    I have a third party system based on MS-SQL 2000.
    Now we want to make a integration between SAP R/3(Oracle) and SQL server.
    When my user releases the purchase order in R/3, the application we coded will convert the releated data to the temp database on the SQL server.
    But i don't know which tools will help me reach the purpose.  BAPI, LSMW, IDoc... ???
    Would anybody tell me which way is better and how to do?
    Thanks a lot!
    Kevin Wang

    Hello Kevin,
    The question to use which method depend on your detail requirements. If you use BAPI, you need to find which Bapi can provide the data you want. Bapi normally use as a function called by external system. So you need to develop an external program like VB/Java to call this Bapi and move it to SQL. LSMW is use when you want to upload data from an external system to SAP. So it does not serve your requirement. Idoc can be use to export data to an external system. Again like Bapi, you need to find what Idoc can provide the data you want. However, it does not any programming from the external system. If I were you, based on your requirements, I think writing an Abap program that read the data you want and download it to NT/SQL server will be faster and easier.

  • Convert a date in String format to a Date

    Hi,
    How can I convert a date in String format to a Date object?
    I have tried:
    import java.text.*;
    import java.io.*;
    import java.util.Date;
    import java.util.Locale;
    import java.sql.*;
    public class casa {
    public static Connection con = null;
    public static Statement s = null;
    public static String sql = null;
    public static String mydate = "01.01.2001";
    /** Creates a new instance of casa */
    public casa() {
    public static void main(String[] args) throws SQLException{
    try {
    DateFormat shortFormat = DateFormat.getDateInstance(DateFormat.SHORT);
    Date date = shortFormat.parse(mydate);
    //Open Database
    con = getConnection();
    s = con.createStatement();
    sql = "select date1 from table1 where date1 <= '"+date+"'";
    ResultSet rs = s.executeQuery(sql);
    while(rs.next()){
    String aba = rs.getString("datum");
    System.out.println("New Datum = "+aba);
    } catch (Exception ex ) {
    ex.printStackTrace();
    closeConnection(s, con);
    //Connection
    private static Connection getConnection() {
    Connection con = null;
    String user ="aouzi";
    String passe ="aouzi";
    String url = "jdbc:db2:EjbTest";
    try {
    //Datenbanktreiber laden
    Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");
    //Verbindung herstellen
    con = DriverManager.getConnection(url,user,passe);
    }catch(ClassNotFoundException e){
    } catch(SQLException e){}
    return con;
    //close Connection
    private static void closeConnection(Statement s, Connection con) {
    try {
    s.close();
    } catch (SQLException e) {}
    try {
    con.close();
    } catch (SQLException e) {}
    I'm getting the following errors:
    COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver][DB2/NT] SQL0180N
    The syntax of the representation of a date/time of day value as character sequence is false. .SQLSTATE=22007

    I'm pretty sure it won't understand what date.toString() returns. If you know what format the database understands, you do it like this:
    SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yy"); // e.g. 18-Apr-02
    String datestring = sdf.parse(date);
    and use that instead of date in your sql string. Some databases understands it if you do
    "to_date('18-Apr-02')"
    so you could include that in your sql string as well..
    You could also try to make it a java.sql.Date and hope your jdbc driver knows how to convert it to a string that the database understands if you don't know the format:
    con = getConnection();
    PreparedStatement ps = con.prepareStatement("select date1 from table1 where date1 <= ?");
    ps.setDate(new java.sql.Date(date.getTime()));
    ResultSet rs = s.executeQuery(sql);

  • How to convert the date time from MM-DD-YYYThh:mm:ss to YYYY-MM-DDThh:mm:ss format

    Hi All,
    I have a requirement in my project like to convert the date time from one format to another.my situation is like to convert the date time from MM-DD-YYYThh:mm:ss to YYYY-MM-DDThh:mm:ss format. I am using the soa suite 11.1.1.6.
    Can any one suggest me how to convert in the BPEL transformation.
    Thanks,
    Sanju.

    Hi Sanju,
    Store the date to be converted into a variable viz. dateVar. Now, process an expression in assign as: xp20:format-dateTime($dateVar,'[Y0001]-[M01]-[D01] [h]:[m01]:[s01]').
    Regards

  • ABAP code in update rules to convert the date

    Hi,
    Could any one send me the ABAP code that is written in the update rules to convert the date (DD/MM/YYYY  -- lenght 10) to YYYYMMDD ---  length 8  format.
    Also please let me know where I should write this code; while creating update rules or while creating infosource.
    Thanks,

    Hi Bharath,
    Hi Bharath,
    I suggest you do the conversion of dates in the transfer rules. Here is the correct code you need:
    * Assuming the source data field is called MYDATE
    * Place the ff. in the routine in the transfer rules:
    concatenate tran_structure-mydate+6(4) tran_structure-mydate+3(2) tran_structure-mydate(2) into result.
    replace MYDATE with the name of the source field (10 chars) in the transfer structure. Hope this helps.

  • Which  Function Module is used for converting the DATE in BDC

    HI,
    Which  Function Module is used for converting the DATE Format in BDC for Uploading purpose please help me.

    data : date like sy-datum.
    data : odate(10) type c.
    date = sy-datum.        " in format YYYYMMDD
    CALL FUNCTION 'CONVERSION_EXIT_PDATE_OUTPUT'
      EXPORTING
       input         = date
    IMPORTING
       OUTPUT        = odate         .
    write:/ odate.  "in ur format '.
    1.
    In ur itab make a field for date as 10 characters and use this Fm to store the date .
    2. Pass the date as the charcter field to the screen and now check .

  • Sample code converting binary data to image file

    Hi experts ,
    I need sample code to convert binary data (bytes) in to an image file.
    any help will be appreciated.
    Thanks and Regards,
    Naresh

    You need to show binary and decimal?  Or now just decimal?
    If binary and decimal, you can right click on your indicator and choose "Display Format...".  If you select the Advanced Editing Mode, you can make soft interesting display formats.  This includes showing the same value in mulitple ways in the indicator.  Try something like "%032b - %d" for the format string.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Converting a date time to a date only

    Post Author: Dockman
    CA Forum: Formula
    I am working on a report that has a running total field.  The running total field keeps a running total and resets every time that a date changes.  the problem is that my dates include times, therefore the running total resets on every line.  How can I convert my date (in date time format) to be only a date so that it does not reset on every line?
    Obviously, I am not a programmer so I apologize if this is a stupid question.

    Post Author: yangster
    CA Forum: Formula
    if you are doing it inside crystal you can use the date functiondate({your.datetimefield})if you are doing it at the db level in a command this will vary depending on your db

  • Converting a Date in UTC to the current timezone

    I have a library which returns a Date in UTC.
    I need to convert this Date to the current timezone, and then format it using SimpleDateFormat.
    I've been trying for a while now, and I can't figure it out? Can anyone help?
    Thanks,
    Adam

    SimpleDateFormat takes a timezone.
    Date d = getDateInUTC();
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
    TimeZone tz = TimeZone.getTimeZone("PST")
    sdf.setTimeZone(tz);
    String sDate = sdf.format(d);

  • I need a formula to convert a date into an integer (for use in Lookout)

    I have a DATA logger with the following:
    40001 = 4 (2004)
    40002 = 2 (February)
    40003 = 5 (5th)
    40004 = 13 (1:00pm)
    40005 = 12 (12 minutes)
    Lookout requires a date that it understands (eg. January 1, 1900).
    All I need is a basic formula to convert the date and time.
    This formula does not need to be specifically written for Lookout. Just a basic formula that I can do on paper or a calculator.
    I can integrate that formula into the Lookout software myself.

    Hello Smigman,
    First of all, I apologize in advance for not giving you "just the formula." And for the lengthy explanation (had to wait till after work hours), which you are very likely aware of already. I am writing this response in much detail so that it may benefit others.. hopefully And so that we understand the underlying principle involved, which will hopefully help us in building the formula the best way that suits us.
    As you have figured out, the data and time in Lookout is represented as a real number. This real number's integer portion represents days, and the decimal portion denotes time. The integer portion is basically the number of days since 01/01/1900. And the decimal portion is the number of seconds since midnight.
    So, for instance, if you insert the today() Expression in Lookout, you'll get a integer 38022 (which corresponds to today, Feb. 5th, 2004). In other words, today is the 38022nd day since 01/01/1900. Tomorrow, Feb. 6th 2004, will be 38023 and so on.
    The decimal part denotes time. A day has 24*60*60 = 86400 seconds, obviously. So, 1/86400 = 1.15741E-5 roughly represents one second. For instance, 38022.00001157 will give 02/05/2004 00:00:01.
    Coming to the formula now, for Time, first convert it to total seconds from midnight. E.g., 5:15:07pm would be (17*60*60) + (15*60) + 7 = 62107 seconds total since midnight. To get the Lookout's decimal part, divide this by 86400.
    62107/86400 = 0.71883102
    Therefore, 38022.71883102 would now give 02/05/2004 17:15:07. Computing Time is relatively easy.
    For the Date -- which is more complicated-- you could keep track of the total number of days either from 01/01/1900, or better still, a more recent day, like say 12/31/2003, which corresponds to 37986. To this reference you will keep adding 1 for each additional day to get the number for the current day. Note, you will have to accomodate leap years (Feb. 29th of this year, for instance).
    It's very helpful to have the reference day as the last day of the past year. That can be derived by counting the number of days since 01/01/1900 as follows:
    104 years * 365 days = 37960;
    + 1 day for each leap year
    A leap year is a year divisible by 4 (and 400 if the year ends with two zeros). There were 26 leap years from 1900 till 2003.
    So, 37960 + 26 = 37986. 12/31/2003 is thus represented by 37986.
    To get the integer for the Current Date we would first find what day of the year it is. Then add it to the reference day. Feb 5th, is the 36th day of the year. Adding this to 37986, gets us 38022.
    In your case you will have to come up with the correct day of the year using registers 40002 and 40003. Not sure if this helped or confused you more.
    I tried
    Khalid

  • Convert Epoch Date Time to Date Time format

    I am trying to convert Epoch Date time in GMT to Human Readable Date time format in UTC. I used the one below but it returns just the date in GMT but how can get datetime in UTC ?
    select To_Char( To_Date( '01.01.1970 06:00:00','DD.MM.YYYY HH24:Mi:Ss') + STARTIME / 86400,'DD.MM.YYYY HH24:Mi:ss') FROM HQ_AVAIL_DATA_RLE;
    I refered a couple of forums and applied everything, but still I wouldn't get the timestamp.
    Please note that i'm looking for datetime stamp, not just the date.
    Thanks in advance!
    Edited by: 830754 on Jan 27, 2011 11:18 AM
    Edited by: 830754 on Jan 27, 2011 11:19 AM

    Works for me. I see date and time (submitted 1000 for STARTTIME):
    select To_Char( To_Date( '01.01.1970 06:00:00','DD.MM.YYYY HH24:Mi:Ss') + 1000 / 86400,'DD.MM.YYYY HH24:Mi:ss')
    from dual
    TO_CHAR(TO_DATE('01
    01.01.1970 06:16:40Or do you mean something else?

Maybe you are looking for

  • FTP in BI Publisher

    we want to ftp'ing the report from the BI Publisher. waht is the encryption of the report to FTp and how to encrypt the ftp . anybody have more knowledge on this please let me know some knowldge about ftp in bi publisher?

  • Restoring music files from iPod

    No backup made of the libraries through iTunes, but have a backup of the computer that has crashed. Can the backup files from that pc be transferred to the directories on a new computer?

  • PHP5 SOAP WSDL and Xcelsius 2008 communication error

    Hi, I wood like to use PHP5 Soap server and WSDL for Xcelsius2008. Now Xcelsius 2008 can read WSDL parameters, and data from Xcelsius appear in Soap server, but in the Soap Response is the error message: <?xml version="1.0" encoding="UTF-8"?> <SOAP-E

  • Junk Mail from a specific individual making me insane....how can I block it

    I'm getting junk mail from a friend of a friend, and I mark his messages as junk EVERY TIME I GET ONE. Yet, somehow, alas, every message from him gets through to my inbox. How can this (and a homicide) be prevented? If you mark a message "Junk" why i

  • Create/Drop/Compile Table, Views, Triggers, Sequences, etc.

    Is there a way to create, drop, and compile objects on an Oracle database with the ADF library? If so, any good examples? Can the results be captured as well?