Converting a number to a date
I am getting data in from an outside source table as a number ex: 200807 which stands for July 2008.
I need to move the data from the source table to another table and have it be a date.
So 200807 will end up as 07/01/2008 in the final table.
Any assistance is welcome.
Thanks
Use to_date:
SQL> select to_date('200807','YYYYMM') from dual;
TO_DATE('200807','YY
01-JUL-2008 00:00:00
Similar Messages
-
Hi, from my database there is a field for date and it is a number like this: 1295944970. This corresponds to a date displayed as 1/25/2011 displayed on the website. Does anybody know how to convert the data 1295944970 from the database date field to the actual date of 1/25/2011? thanks in advance for any help.
SteveThe number you are trying to convert to a date is a Unix timestamp and it counts the number of seconds since 1/1/1970
So to convert that into a date in Crystal you use the following formula:
dateadd ("s",1295944970-18000, #1/1/1970#) -
How can I convert a number field in a to Date?
I have two columns in a table, and i would like to concate this two fiels to read Januaray-2010
CREATE TABLE "CATDB"."SC_DTL_MEASURE_DETAIL"
"TIME_YEAR" NUMBER(*,0),
"TIME_INCREMENT" NUMBER(*,0),
)Time_Incriment data need to be changed to month MON Januaray to December
1
2
3
etc
12
Time_year data is
2010
2010
etcWell one way easiy way without changing your column datatypes (this would be the best way) is to first convert the numbers into text. Then concat this text. Then convert the text into a date value. Then print the date value as you want it to appear.
example
with testdata as (select 2010 TIME_YEAR, 1 TIME_INCREMENT from dual union all
select 2010 TIME_YEAR, 12 TIME_INCREMENT from dual)
select time_year, time_increment,
to_char(to_date('01-'||to_char(TIME_INCREMENT,'FM00')||'-'||to_char(TIME_YEAR,'FM0000'),'DD-MM-YYYY') ,'FMMonth-YYYY')
from testdata;
2010 1 January-2010
2010 12 December-2010 -
Convert a number value to a date
Post Author: Jeremiah
CA Forum: Formula
I'm using Crystal Reports XI. I'm coming across a problem trying to convert a
number value to a date. I'm using formula below: if not isnull({qryStoreCheckIn.CHECKINDATE}) or {qryStoreCheckIn.CHECKINDATE}="0"the(stringvar MyDate:= ToText({StoreCheckIn.CHECKINDATE},0,"");cdate(2000 + val(left(MyDate,1)),val(mid(MyDate,2,2)),val(right(MyDate,2))))
For this line, I'm receiving an error msg of that "A month number must be between 1 and 12
Here are some of the field's data examples
70608
70501
0
61231 Would anybody have any ideas on how to solve this?Post Author: SKodidine
CA Forum: Formula
You are getting the error "A month number must be between 1 and 12" because you are trying to convert 0 to a date. The third data item in your field data.
I suggest you default the date to some date when it is zero or eliminate 0 as a date from your formula such as:
if not isnull({qryStoreCheckIn.CHECKINDATE})
then(stringvar MyDate:= ToText({StoreCheckIn.CHECKINDATE},0,"")
else
If {qryStoreCheckIn.CHECKINDATE} = 0 then (stringvar MyDate:= "00101"); // If date is zero then it is set to 2000/01/01
After this, you will not have problems with a zero date. -
Hello,
I've a problem with Essbase(Planning?) Scripts on version 9.3. It looks simple but I do not find any (clean) solution :
On my Essbase database, I have a member called "Reference_Date" on my axis Indicators. It is a date data type, that is to say, it displays a number corresponding to a YYYYMMDD format. For example : 20091029 for October 29th 2009.
In calc scripts I often need to compare the month included in that "Reference_Date" with the current Member of my Time Axis (I have 12 Months members based on the format M02 for February for example). The final aim is to calculate a number of complete years since that "Reference_Date".
But theses two elements are not of the same "type" (one is a number value and the other is a "member" in Time Axis). So I'm forced to convert one of this two elements in order to compare it.
For example I can extract the month value of the "Reference_Date"' and put an "M" before it to have a Time member equivalent or I can convert the member Name M10 to a number (10))
in both cases I have the same type problem : I don't know how to convert a string into a number nor how to convert a number into a string.
(For example @CONCATENATE doesn't work with numbers). and that my only remaining problem.
I didn't find any Essbase Function which do this (conversion number <=>string).
Is anyone have an Idea ?
Thanks for your help
Best regardsI don't know any way for you to compare your data against your metadata. Not directly. To me it makes little enough sense to try that I'm not surprised the developers didn't provide for it.
I've converted member names to strings, manipulated the strings (calc script functions are not good at this), and turned them back into member names, but that's really the only use I've had for string manipulation. I don't think an equivalency operator even exists for string data. And I see no way to begin thinking of a member name, once converted to a string, as a number.
It makes even less sense to me to try thinking of a data value as a string. Even text values in Sys 11 are stored as numbers. Not encoded characters, but just a number to look up somewhere.
I think you can do what you want though, with something like this...
IF (@ISMBR("FY08"))
vYr = 2008;
ELSEIF (@ISMBR("FY09"))
vYr = 2009;
ENDIF;
IF (@ISMBR("M01"))
vMth = 1;
ELSEIF (@ISMBR("M02"))
vMth = = 2;
ENDIF;
"Years_Since_Reference" = ((vYr * 100) + Mth) - ("Reference_Date" / 12);
Obviously, the math will need some work, coz that doesn't actually work, but the logic above essentially turns your metadata into numbers, which is what you are after.
Good luck,
-- Joe -
Convert sysdate to a julian date 'YYDDD' format to a number format
Hi
I need to be able to convert sysdate to a julian date 'YYDDD' and update the julian as a number data type. Thanks for your help.Hi,
Use TO_CHAR to get a string representation of a date, such as '110008'.
Use TO_NUMBER to get a NUMBER represnetation of that string.
SELECT TO_NUMBER ( TO_CHAR (SYSDATE, 'YYDDD'))
FROM dual
;Edited by: Frank Kulash on Jan 8, 2011 1:32 PM
It looks like you accidentally posted 3 copies of the same question, and then, after you realized the msitake, marked them as "Answered". That's very considerate of you. It would be even better if you changed the subject line of all but one of them to "Duplicate - Sorry!"; the remaining one you can leave as "Unanswered" until it really is. -
Convert this number (2454664,29112) to Date and Time.
Hi,
I want to convert this number (2454664,29112) to Date and Time.
I wrote the query :
select to_date(2454664,'J')+ numtodsinterval(29112,'second') from dual
It give the results 16/07/2008 08:05:12
but the correct results is 15/07/2008 08:05:12
Is it correct?
Please help me.Don't know whether the result is correct or not, but has select to_char(sysdate,'J') from dual to do anything with it?
Regards
Etbin
to be more specific
select to_char(now,'J') || ',' || to_char(now,'sssss') the_number
from (select sysdate now from dual)Message was edited by:
Etbin -
Convert Number to the date format
Hello,
In CRM, i want to input the number as a parameter and convert the number into Date format. Is there any function module in CRM which accepts the number and gives the date as output .
Example.
suppose input given is 734484
output : 12-12-2011 .
The number 734484 reflects the total number of days from '0000' to 12-12-2011
Regards,
Rohini920575 wrote:
I have a sql like this:
select to_date('MAR','Mon', 'NLS_DATE_LANGUAGE=American') m from dualI want to display '3' instead of showing MAR...
I tried to use to_char(date,'MM') but the result will return '03'.
I would like to have the output exactly equal to 3.3 (without single-quotes) is a NUMBER. It is exactly equal to the NUMBER 03.
'3' is a string. It is not equalt to the string '03'.
Do you want a NUMBER or a string?
If you want the 1-character string '3', then use 'fmMM' instead of 'MM'.
select TO_CHAR ( to_date ('MAR', 'Mon', 'NLS_DATE_LANGUAGE=American')
, 'FMMM'
) AS m
from dualTO_CHAR sometimes adds padding (sometimes spaces, sometimes '0's) to make elements a constant width. For example, some months need 2 characters for the 'MM' format, so TO_CHAR, by default, left-pads with '0's to make all months 2 characters, whether they need 2 characters or not. Using 'FM' (case insensitive) IN the format string changes whether or not this kind of padding will be added.
You could also use LTRIM to remove the leading '0's in this case, but why remove them when it's easier not to generate them in the first place? -
Gettin error Cannot convert to number in RTF Template
Hi,
I am working on xml template development i am getting the followinf error
Font Dir: C:\Program Files\Oracle\XML Publisher Desktop\Template Builder for Word\fonts
Run XDO Start
RTFProcessor setLocale: en-us
FOProcessor setData: D:\Tickets\Remittance Advice XMLP\canada_report1.xml
FOProcessor setLocale: en-us
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at oracle.apps.xdo.common.xml.XSLT10gR1.invokeProcessXSL(XSLT10gR1.java:586)
at oracle.apps.xdo.common.xml.XSLT10gR1.transform(XSLT10gR1.java:383)
at oracle.apps.xdo.common.xml.XSLT10gR1.transform(XSLT10gR1.java:201)
at oracle.apps.xdo.common.xml.XSLTWrapper.transform(XSLTWrapper.java:161)
at oracle.apps.xdo.template.fo.util.FOUtility.generateFO(FOUtility.java:1015)
at oracle.apps.xdo.template.fo.util.FOUtility.generateFO(FOUtility.java:968)
at oracle.apps.xdo.template.fo.util.FOUtility.generateFO(FOUtility.java:209)
at oracle.apps.xdo.template.FOProcessor.createFO(FOProcessor.java:1561)
at oracle.apps.xdo.template.FOProcessor.generate(FOProcessor.java:951)
at RTF2PDF.runRTFto(RTF2PDF.java:626)
at RTF2PDF.runXDO(RTF2PDF.java:460)
at RTF2PDF.main(RTF2PDF.java:251)
Caused by: oracle.xdo.parser.v2.XPathException: Cannot convert to number.
at oracle.xdo.parser.v2.XSLStylesheet.flushErrors(XSLStylesheet.java:1526)
at oracle.xdo.parser.v2.XSLStylesheet.execute(XSLStylesheet.java:517)
at oracle.xdo.parser.v2.XSLStylesheet.execute(XSLStylesheet.java:485)
at oracle.xdo.parser.v2.XSLProcessor.processXSL(XSLProcessor.java:264)
at oracle.xdo.parser.v2.XSLProcessor.processXSL(XSLProcessor.java:150)
at oracle.xdo.parser.v2.XSLProcessor.processXSL(XSLProcessor.java:187)
... 16 more
I have checked the code and problem was due to following code i dont know where i went wrong
<xsl:variable xdofo:ctx="incontext" name="inner_group" select=".//G_SEL_INV_DATA"/><?for-each:$inner_group?><?if:(position()-1) mod $no_of_lines_per_page=0?><xsl:variable name="first_rec" xdofo:ctx="incontext" select="position()"/>
Please help me to solve this issue...
Thanks
RajeshWhat was the problem in the template? I am facing the same error, when I put a conditional in the data field, it throws the XML-22036: (Error) Cannot convert to number.
error, where if the element was printed directly it works fine.
error
<Line 984, Column 130>: XML-22036: (Error) Cannot convert to number.
@Line 984 ==> <xsl:variable name="v148" select="format-number(string(xdoxslt:one($v147)), string('###0.00'), string('_DECIMALFORMAT'))"/>
End of Process.
<format>
Number, ###0.00
<DATA >BROKEN
If (to_number(../DocumentPayableCount) + to_number(Extend/NumberOfPO) + sum(to_number(../DocumentPayable/Extend/Commentlength))) <= 7 then Extend/InvoiceAmount end if
<DATA >ALSO BROKEN
If (../DocumentPayableCount + Extend/NumberOfPO + sum(../DocumentPayable/Extend/Commentlength)) <= 7 then Extend/InvoiceAmount end if
<DATA> WORKS
then Extend/InvoiceAmount -
Converting seconds value to a date
Hi,
I have date column as integer like 1212638737.Could anyone tell me the way of converting this value to corresponding date value?user11365275 wrote:
I have date column as integer like 1212638737.Could anyone tell me the way of converting this value to corresponding date value?How is the number to be converted to a date? Its not a Julain date because the number is way too big -
Optimize function to correct a string to be converted to number
Hi,
I have imported almost 6.5 milion rows into a table (using sql loader) from a flat file (which contains the NUL caracter (ASCII 0) - not space, not NULL). To make the load easier I set the datatype as VARCHAR2 for all columns. For columns with string data I used a TRIM(REPLACE(field,' ','')) to get rid of the NUL and it works.
But for the column that must be converted to numeric I am trying to use to_number () function and it fails because the numeric data is mixed with other characters.
To solve this problem I created this function :
CREATE OR REPLACE
FUNCTION string_to_number
(p_string_source IN VARCHAR2 ) RETURN VARCHAR2 IS v_output_string varchar2(150);
-- This function takes a string as parameter and has 2 outputs:
-- 1. If the source string cannot be converted to number throw 'Error' as the output message to identify the line with the issue
-- 2. A string that can be converted successfully as Number;
-- The necessity of this function came up after an import from a flat file where the resulted string contained strange characters shown as spaces
--check if '-' is exists and is on the first position or if in the source string exists more than one '.'
-- ASCII codes accepted in the string :
-- 45 '-' ; 46 '.' ; from 48 (0) to 57 (9)
BEGIN
DECLARE v_minus VARCHAR2(1);
v_dot INTEGER;
BEGIN
SELECT substr(p_string_source,1,1) INTO v_minus FROM dual;
SELECT instr(p_string_source,'.',1,2) INTO v_dot FROM dual;
--check if '-' is exists and is on the first position or if in the source string exists more than one '.'
-- ASCII codes accepted in the string :
-- 45 '-' ; 46 '.' ; from 48 (0) to 57 (9)
IF v_minus NOT IN ('-','.','0','1','2','3','4','5','6','7','8','9')
-- or there are two dots '.' in the string
OR v_dot <> 0
THEN v_output_string := 'Error';
ELSE
BEGIN
-- for every character of the string we'll check if it's a number to add it to the outcome string;
-- if it's not an accepted character it will be ignored
DECLARE v_length_source int := length(p_string_source);
v_counter int :=1;
v_add_in_number VARCHAR2(1);
BEGIN
FOR v_counter IN 1..v_length_source LOOP
BEGIN
SELECT SUBSTR(p_string_source,v_counter,1) into v_add_in_number from dual;
IF v_add_in_number IN ('-','.','0','1','2','3','4','5','6','7','8','9')
THEN v_output_string := v_output_string ||v_add_in_number;
END IF;
END;
END LOOP;
END;
-- in case the string is in format '.00034' we'll add a 0 in front of the string to be accepted as argument by TO_NUMBER function
IF v_minus = '.'
THEN v_output_string := '0'||v_output_string;
ELSE
BEGIN
v_output_string := v_output_string;
END;
END IF;
END;
END IF;
END;
RETURN v_output_string;
END;
The main idea is to check every string (the parameter will be the value from the Amount column) for permitted characters that compose a numeric value:
1. To begins with numeric, '-' or '.'
2. To have only one '.' (as a decimal separator);
3. To compare every character of the string with the permitted ones - the non-compliant will be rejected
This way the resulting string (v_output_string) will be successfully converted to number
I admit that I don't have much experience using PL/SQL that is why I am asking your help to optimize this function to improve its performance. Could you help me on this, please ?
TIA,
JohnP
Edited by: petresion on 04-Oct-2012 01:33Perform a function here on all 6.5 million of rows will never be efficient.
I would modify Peter's approach a little bit,
1. Load directly into staging t1 without any checking (or create an external table)
2. Transfer from t1 to a list partitioned t2 with list values in ('yes', 'no','null','other')
--simple check using translate()
3. Apply your special function only on rows in the 'other' partition (hopefully much fewer rows left)
--other checks -
Need Help on How to Convert a Number Field to an Hour/Minute
Post Author: syracuse2
CA Forum: Crystal Reports
I have a field that shows a duration, i.e. 125. I would like to convert the number of 125 to 2hr and 5 min. Any suggestions on how to do this?Post Author: GraemeG
CA Forum: Crystal Reports
Create a formula and paste the following into it (sorry I use Basic Syntax):
'Ive laboured a point here a bit so you can get an idea of what you can do.
'Heres 3 variables - one with your duration and two others for hours and minutesshared xDuration as numbershared xHours as numbershared xMins as number
'Put some data into the duration and calculate the hours and minutesxDuration = 125xHours = truncate(xDuration/60)xMins = remainder(xDuration,60)
'You can then use the variables to get a string with unformatted hours and mins'formula = xHours + "hours " + xMins + "Mins"
'or you format the hours and minutes nicely'formula = CStr(xHours,0) + "hours " + CStr(xMins,0) + "Mins"
'or you can make it all into one formula without the need for xHours and xMins variablesformula = CStr((truncate(xDuration/60)),0) + "hours " + CStr(remainder(xDuration,60),0) + "Mins" -
Converting Oracle 7-Byte Internal Date FOrmat to MM/DD/YYYY format.
I can get the date stored in the database in 7-Byte Internal representation.
I want to convert this number to mm/dd/yyyy format,using PRO*C-SQLDA(Method 4),overriding any NLS DATE Format.
nullOnly Oracle Spatial questions
here please.
null -
Using number datatype for date column
Hi
Is there a side effect for using "number" datatype for "date" column?
If so, what is the disadvantage?
Many thanksHi,
Ora_83 wrote:
Hi
Is there a side effect for using "number" datatype for "date" column?
If so, what is the disadvantage?Yes, there's a definite disadvantage.
Oracle provides date arithmetic and a number of functions for manipulating DATEs. None of them work with numbers.
For example,
SELECT TRUNC (order_date, 'MONTH') AS order_month
, AVG (ship_date - order_date) AS avg_delay
FROM orders
GROUP BY TRUNC (order_date, 'MONTH')
;order_month involves a DATE function; it's pretty easy to find the month that conatins order_date.
avg_delay involves date arithmetic. It's extrememly easy to find how much the time passed between order_date and ship_date.
Depending on how you code dates as numbers, doing either one of the above may be just as easy, but doing the other will be very difficult. You'll waste a lot of effort converting the NUMBERs to real DATEs whenever you need to manipulate them.
Validation can be very difficult for NUMBERs, also.
Watch this forum. It's a rare day when there's not some question about how to get around a problem caused by storing dates in a NUMBER (or VARCHAR2) column. Don't add to that. Always use DATE columns for dates. -
can anybody tell me the logic to convert ssn number
421-64-8951 to 421648951 .Plz answer urgently,points will be awarded undoubtedly.u can use REPLACE statement
DATA : TEST1(11) type C VALUE '421-64-8951'.
REPLACE ALL OCCURRENCES OF '-' IN TEST1 WITH ''.
*Note : its two times single qoute at last in above statement without any space between quotes
OR
USE CONCATENATE with Offset settings...
See below code
DATA:TEST1(11) type C VALUE '421-64-8951',
TEST2(3) type c,
TEST3(2) type c,
TEST4(6) type c,
TEST5(9) TYPE C.
move test1+0(3) to test2.
move test1+4(2) to test3.
move test1+7(6) to test4.
concatenate test2 test3 test4 into test5.
write:/ test5.
Hope it will solve your problem..
Thanks & Regards
ilesh 24x7
Maybe you are looking for
-
FI MM account determination user exit
Dear All, In FI-MM integration, GL account for material movements is determined based on the settings in OBYC. The GL account is determined based on chart of accounts, valuation class, general modifier, transaction key etc. The transaction key is in
-
I cannot get my seagate HDD to work correctly with Time Capsule USB
I have been using my seagate expansion 2tb powered HDD happily with itunes connected directly to my imac. i would like to move it to my TC via usb. it is having none of it. it is formatted using mac os extended (journaled) and it will only show up in
-
I just installed WebLogic 5.1 with SP5 for research on a company project. It starts fine from the shortcut in Win2k start menu but when I try to start it from the WebLogic Console, it gets these errors and will not start: any ideas? The WebLogic Serv
-
How can I export formatted text from a string indicator?
Does someone know how I can export formatted text (i.e., parts of the text have different formatting, such as color, fontsize, etc.) from a string indicator? Using copy/paste does not work, as it only exports unformatted plain text.
-
Unable to Specify credentials during service call
Hi I want to call CHECKIN_UNIVERSAL service from a JSPX page. I have added the following tag in my jspx... <wcm:idcService service="CHECKIN_UNIVERSAL" var="callStatus"> <wcm:idcParameter name="doFileCopy" value="1"/> <wcm:idcParameter name="dUser" va