How to sum hours which is varchar2 data type in oracle

Hi My table is like this
emp_ngtshthrs (empno number(10),nightshifthrs varchar2(20));
now I want sum employee nightshifthrs how to do sum of hrs, this is my hours data 01:00,05:00,08:00,10:00,07:00 and 09:00
I want sum the varchar2 type of hours how to do it? and I want to display even the sum is more than 24:00 hrs

Well, first you have posted your question in the wrong forum. You should have posted your question in the PL/SQL forum.
The second problem I see is that you are being too generic when you have your employees enter their night shift hours worked. If you are able, I recommend you modify your table to record hours seperately from minutes and make the columns of type NUMBER instead of type VARCHAR2(). Then you can use simply arithmatic to total the hours and minutes worked.
If you are locked into your table and can't change it, then you can convert the characters to numbers and then perform your summary arithmatic on the values. For example:
  1  with tab1 as (
  2  select 10 as empno, '01:00' as nightshifthrs from dual union all
  3  select 10 as empno, '05:00' as nightshifthrs from dual union all
  4  select 10 as empno, '08:00' as nightshifthrs from dual union all
  5  select 10 as empno, '10:00' as nightshifthrs from dual union all
  6  select 10 as empno, '07:00' as nightshifthrs from dual union all
  7  select 10 as empno, '09:00' as nightshifthrs from dual)
  8  select sum(to_number(replace(nightshifthrs,':','.'))) AS hours_worked
  9* from tab1
SQL> /
HOURS_WORKED
          40
SQL> Of course, if your users can and do enter minutes, then that complicates the example I provided. You will have to convert the minutes to decimal, sum the amount, then convert the decimal back to time and add this to your hours. For example:
  1  with tab1 as (
  2  select 10 as empno, '01:15' as nightshifthrs from dual union all
  3  select 10 as empno, '05:00' as nightshifthrs from dual union all
  4  select 10 as empno, '08:30' as nightshifthrs from dual union all
  5  select 10 as empno, '10:00' as nightshifthrs from dual union all
  6  select 10 as empno, '07:45' as nightshifthrs from dual union all
  7  select 10 as empno, '09:00' as nightshifthrs from dual)
  8  select sum(to_number(substr(nightshifthrs,1,2))) + SUM(to_number(SUBSTR(nightshifthrs,4,5)))/60
  9* from tab1
SQL> /
HOURS_WORKED
        41.5
SQL> Hope this helps.
Craig...

Similar Messages

  • Need help :: how to search in nested table/varray data type

    I have the following structure...
    CREATE TYPE lang_con AS VARRAY(15) OF VARCHAR2(50);
    CREATE TYPE rel_con AS VARRAY(15) OF VARCHAR2(50);
    CREATE TABLE Country_n(
    "NAME" VARCHAR2(40 BYTE) CONSTRAINT "COUNTRY_NAME_NOTNULL_N" NOT NULL ENABLE,
    "CODE" CHAR(2 BYTE),
    "CAPITAL" VARCHAR2(40 BYTE),
    "PROVINCE" VARCHAR2(40 BYTE),
    "POPULATION" NUMBER,
    "AREA" NUMBER,
    "LANGUAGES" lang_con,
    "RELIGIONS" rel_con
    after inserting data from 3 different table (country, language, religion) the table looks like this....
    Cyprus cy Nicosia Government controlled area 775927 9250 VARCHAR(English,Greek,Turkish) VARCHAR(Greek Orthodox,Muslim)
    Czech Republic cz Prague Prague 10246178 78866 VARCHAR(Czech) VARCHAR(Orthodox,Protestant,Roman Catholic)
    Germany de Berlin Berlin 82424609 357021 VARCHAR(German) VARCHAR(Muslim,Protestant,Roman Catholic)
    Djibouti dj Jibuti Jibuti 466900 23000 VARCHAR(Afar,Arabic,French,Somali) VARCHAR(Christian,Muslim)
    Denmark dk Copenhagen Frederiksberg Kommune 5413392 43094 VARCHAR(Danish,Faroese,German,Greenlandic) VARCHAR(Evangelical Lutheran,Muslim)
    now I want to get the countries in which german language is being spoken. Actually I need to know how to search in this custom data type of mine....I also need to perform other operation further so really need to know how can I search in this custom data type...
    when I execute the following query....
    select * from country_n cn where cn.languages like '%German%' order by name
    I got the following error....
    Error starting at line 1 in command:
    select * from country_n cn where cn.languages like '%German%' order by name
    Error at Command Line:1 Column:33
    Error report:
    SQL Error: ORA-00932: inconsistent datatypes: expected NUMBER got AHMADM.LANG_CON
    00932. 00000 - "inconsistent datatypes: expected %s got %s"
    *Cause:   
    *Action:
    let me know please...looking forward to your replies....
    Thanks,

    Hi,
    Try this:
    Connected to Oracle Database 10g Express Edition Release 10.2.0.1.0
    Connected as hr
    SQL>
    SQL> SELECT t1.*
      2    FROM country_n t1,
      3         TABLE(t1.languages) t2
      4   WHERE column_value LIKE '%German%';
    NAME                                     CODE CAPITAL                                  PROVINCE                                 POPULATION       AREA LANGUAGES RELIGIONS
    Germany                                  de   Berlin                                   Berlin                                     82424609     357021 <Object>  <Object>
    SQL> Regards,

  • How to add a new data type of oracle to SIM(7.0)

    Hi........
    I need to add a new data type(CLOB) to SIM of oracle .can anyone tell me how to modify or add this new data type.
    Any pointers to this will be highly appriciated.......
    thax in advance...

    Hi,
    Easiest way is to download the table eg into an Excel table (if possible) or text table. Drop the table from the database. Build your table with the new key field. Build the database table again and fill it.
    You can do it also over the database into a new table. Drop the old one. Build the enhanced one and fill it. Afterwards drop your (temporary) table.
    Maybe there are other ways, but this works.
    Success,
    Rob

  • How to migrate SQL Server image data type to Oracle 8 BLOB data type?

    Hi,
    I have to migrate data from sql server to Oracle 10 g.
    I am unable to migrate image data type from sql server to blob data type in oracle.
    Iam using Oracle Heterogenous Services to migrate the data,Using Merge statement and database link.
    I am getting the following error-
    ERROR at line 7:
    ORA-00932: inconsistent datatypes: expected BLOB got LONG BINARY
    Can any one suggest me how to migrate Image datatype to BLOB???

    Hi you might want to post your question in General Forum.
    General Database Discussions
    There's very few users visit this forum.

  • Idoc message type which contains all  data types

    Hi,
    I need idoc type or name which consist of all data type sap has defined. There are nearly 24 data types.
    Pls help..
    Regards,
    Taj

    hi,
    you will not have any message types which contain all data types.
    message types will be defined based on specific data.
    for example :
    MATMAS - Material master
    DEBMAS - Customer master data distribution

  • How can i build my own varient data type?

    I load dll from roper scientific ccd camera which need varient data type.The following is the example
    region.s1=0;region.s2=511;region.p1=0;region.p2=511;region.sbin=1;region.pbin=1;
    Please reply as soon as possible
    Regards

    Mark,
    With LabVIEW, you can convert your data to a variant. These functions are located in Functions»Advanced»Data Manipulation»Variant. This will convert LabVIEW's data types to Visual Basic's Variant type.
    Randy Hoskin
    Applications Engineer
    National Instruments
    http://www.ni.com/ask

  • ....Date Type in Oracle

    Hi All,
    Just to clear a few misconception/ambiguities regarding the DATE data type in Oracle.
    We hve a table which stores the date of insertion of a record. The front end application is in PHP while backend is in oracle.
    When i query the table, it shows the date as dd-mon-yy , but it does not show the time. I have tried to query it throgh sqlPLus , TOAD and the PHP Application, but it doesnt show the time.
    Is it not storing the time. The data type of the column is ( Insertdate date).
    If you query sysdate, it definitly stores time, ... but what is in this case. Is it just storing the date and not the time. ???
    How to alter so that it stores time as well.
    Regards

    U have to use the conversion function to_date to
    store date along with time. No, you use to_date to convert a string to a date. That's it. A date column will ALWAYS store the time (it just won't always display it)
    When u need to retrieve the data use to_char function. Not necessarily:
    SQL> create table x (dte date);
    Table created.
    SQL> insert into x values(sysdate);
    1 row created.
    SQL> insert into x values(sysdate+1);
    1 row created.
    SQL> select * from x;
    DTE
    11-jul-2007 09:13:11
    12-jul-2007 09:13:11
    if u want to store time u can use timestamp data typeNope, You use timestamp if you want to store fractions of seconds (down to nano seconds)
    The key point is. The date datatype ALWAYS stores:
    Century, Year, Month, Day, Hour, Minute, Second

  • Is there a auto-increment data type in Oracle

    Is there a auto-increment data type in Oracle ?
    How to do it if there is no auto-increment data type in Oracle ?
    null

    jackie (guest) wrote:
    : Is there a auto-increment data type in Oracle ?
    : How to do it if there is no auto-increment data type in Oracle
    Hi,
    I think you need unique ID's, for this purpose you use sequences
    in Oracle. Example:
    create table xy (
    id number,
    name varchar2(100)
    alter table xy
    add constraint xy_pk primary key(id);
    create sequence xy_seq start with 1 maxvalue 99999999999;
    (there are many other options for create sequence)
    create or replace trigger xy_ins_trg
    before insert on xy
    for each row
    begin
    select xy_seq.nextval
    into :new.id
    from dual;
    end;
    This produces a unique value for the column id at each insert.
    Hope this will help.
    peter
    null

  • UNDERSTAND THE NEW DATE AND TIME DATA TYPES IN ORACLE 9I

    제품 : SQL*PLUS
    작성날짜 : 2001-08-01
    UNDERSTAND THE NEW DATE AND TIME DATA TYPES IN ORACLE 9I
    ========================================================
    PURPOSE
    Oracle 9i 에서 소개되는 새로운 datetime data type 에 대해 소개한다.
    Explanation
    Example
    1. Datetime Datatypes
    1) TIMESTAMP
    : YEAR/MONTH/DAY/HOUR/MINUTE/SECOND
    2) TIMESTAMP WITH TIME ZONE
    : YEAR/MONTH/DAY/HOUR/MINUTE/SECOND/
    TIMEZONE_HOUR/TIMEZONE_MINUTE( +09:00 )
    or TIMEZONE_REGION( Asia/Seoul )
    3) TIMESTAMP WITH LOCAL TIME ZONE
    : YEAR/MONTH/DAY/HOUR/MINUTE/SECOND
    4) TIME WITH TIME ZONE
    : HOUR/MINUTE/SECOND/TIMEZONE_HOUR/TIMEZONE_MINUTE
    2. Datetime Fields
    1) YEAR/MONTH/DAY/HOUR/MINUTE
    2) SECOND(00 to 59.9(N) is precision) : Range 0 to 9, default is 6
    3) TIMEZONE_HOUR : -12 to 13
    4) TIMEZONE_MINUTE : 00 to 59
    5) TIMEZONE_REGION : Listed in v$timezone_names
    3. DATE 와 TIMESTAMP 와의 차이점
    SQL> select hiredate from emp;
    HIREDATE
    17-DEC-80
    20-FEB-81
    SQL> alter table employees modify hiredate timestamp;
    SQL> select hiredate from employees;
    HIREDATE
    17-DEC-80 12.00.00.000000 AM
    20-FEB-81 12.00.00.000000 AM
    단, 해당 Column 에 Data 가 있다면 DATE/TIMESTAMP -> TIMESTAMP WITH
    TIME ZONE 으로 Convert 할 수 없다.
    SQL> alter table employees modify hiredate timestamp with time zone;
    alter table employees modify hiredate timestamp with time zone
    ERROR at line 1:
    ORA-01439: column to be modified must be empty to change datatype
    4. TIMESTAMP WITH TIME ZONE Datatype
    TIMESTAMP '2001-05-24 10:00:00 +09:00'
    TIMESTAMP '2001-05-24 10:00:00 Asia/Seoul'
    TIMESTAMP '2001-05-24 10:00:00 KST'
    5. TIMESTAMP WITH LOCAL TIME ZONE Datatype
    SQL> create table date_tab (date_col TIMESTAMP WITH LOCAL TIME ZONE);
    SQL> insert into date_tab values ('15-NOV-00 09:34:28 AM');
    SQL> select * from date_tab;
    DATE_COL
    15-NOV-00 09.34.28.000000 AM
    SQL> alter session set TIME_ZONE = 'EUROPE/LONDON';
    SQL> select * from date_tab;
    DATE_COL
    15-NOV-00 12.34.28.000000 AM
    6. INTERVAL Datatypes
    1) INTERVAL YEAR(year_precision) TO MONTH
    : YEAR/MONTH
    : Year_precision default value is 2
    SQL> create table orders (warranty interval year to month);
    SQL> insert into orders values ('2-6');
    SQL> select warranty from orders;
    WARRANTY
    +02-06
    2) INTERVAL DAY (day_precision) TO SECOND (fractional_seconds_precision)
    : DAY/HOUR/MINUTE/SECOND
    : Logon time 확인시 주로 사용
    : day_precision range 0 to 9, default is 2
    SQL> create table orders (warranty interval day(2) to second);
    SQL> insert into orders values ('90 00:00:00');
    SQL> select warranty from orders;
    WARRANTY
    +90 00:00:00.000000
    7. Interval Fields
    - YEAR : Any positive or negative integer
    - MONTH : 00 to 11
    - DAY : Any positive or negative integer
    - HOUR : 00 to 23
    - MINUTE : 00 to 59
    - SECOND : 00 to 59.9(N) where 9(N) is precision
    8. Using Time Zones
    1) Database operation
    - Defined at CREATE DATABASE
    - Can be altered with ALTER DATABASE
    - Current value given by DBTIMEZONE
    2) Session operation
    - Defined with environment variable ORA_SDTZ
    - Can be altered with ALTER SESSION SET TIME_ZONE
    - Current value given by SESSIONTIMEZONE
    3) TIMESTAMP WITH LOCAL TIMEZONE
    - TIME_ZONE Session parameter
    : O/S Local Time Zone
    Alter session set time_zone = '-05:00';
    : An absolute offset
    Alter session set time_zone = dbtimezone;
    : Database time zone
    Alter session set time_zone = local;
    : A named region
    Alter session set time_zone = 'America/New_York';
    Reference Document
    ------------------

    Hi ,
    I am facing the same problem and my scenario is also same (BAPI's).
    So can you please tell me how you overcome this problem .
    Thanks,
    Rahul

  • Pdf file stored as BLOB data type on Oracle

    I store PDF file as BLOB data type on Oracle. There are cases
    where I get multiple records from the database, that means I get
    multiple PDF files. They have to be merged and displayed on the web
    page. I tried CFContent which can display only one PDF file at a
    time but not more than one, whereas cfdocument is having problem
    converting binary data to string. I am kind of stuck.
    Can you anybody please help me out? Please let me know if you
    have any questions or this does not make sense to you.
    Thank you in advance.

    BALAJI_JAY wrote:
    > Can you anybody please help me out? Please let me know
    if you have any
    > questions or this does not make sense to you.
    if by "merge" you mean 3 pdf into 1 pdf, try cfpdf (if on
    cf8) or see this
    thread if cf version less than 8:
    http://www.adobe.com/cfusion/webforums/forum/messageview.cfm?forumid=1&catid=7&threadid=11 14635&messageid=4032202

  • Cannot get the correct data type in Oracle JDBC

    Dear ALL:
    I used JDBC ResultSetMetaData to get the column data type for Oracle Database. I created a table including 2 columns AAA, which is NUMBER type, BBB which is FLOAT type.
    However, I found a problem that either NUMBER or FLOAT data types are reported as NUMBER type in JDBC.
    IN SQL 2000, it is okay. SMALLINT, INT, TINYINT, etc..can be reported correctly.
    Can anybody tell me that what's wrong here? I will be very appreciated.

    hi,
    i guess its a bug which is fixed with 10i.
    Elango.

  • XML Data Type in oracle

    I am a developer in .NET with having experience working on SQL server.
    I want to know whether there is an xml data type in oracle.
    I have an xml in my front end and want to insert record in the database for the values inside that xml. What i am doing currently is that i am retreiving the value in the xml in the .NET code and passing the values a parameter to a stored procedure in oracle. what i want to do is to pass the xml directly to stored procedure in oracle and retrieve the values there (using Xquery) and insert the records.
    This is possible with SQL server 2005. I want to know is this possible with Oracle.
    Thanks and regards,
    Sameer J Narkar

    Wonderful - a documentation question!
    You will find your answer by going to the general documentation portal at http://tahiti.oracle.com following the path to the database version of interest, and looking in the SQL Reference manual. Chapter 2 discusses all data types, including the several supported for XML.
    In addition, under the 'Books' tab, there are several XML-developer specific reference manuals.
    (Oracle's support for XML generally blows away the others. The price for the extreme flexibility is an ease-of-use hit.)
    Message was edited by:
    Hans Forbrich
    removed the punctuation from the displayed URL which resulted in an automatically included trailing comma.

  • BOOLEAN  data type in oracle is it there?

    is there any data type in oracle which stores BOOLEAN data?

    >
    There are inevitably problems with three-valued logic. To be consistent with the 3VL world of SQL one would expect a 3 value logical type (not strictly a "boolean" type at all). The standard chose not to do that and opted for just TRUE and FALSE with NULL as a sort of substitute for the third value. That in itself creates some logical conundrums but it's probably impossible to come up with any system that makes sense of SQL's 3VL. Probably that's why most DBMS vendors leave it out.
    >
    No problem. Just define it as NOT NULL and you will have traditional 2VL Boolean algebra.

  • Problem loading PostgreSQL Bytea data type to Oracle Raw data type

    We are migrating our database from PostgreSQL to Oracle. First, we convert the BYTEA data type in PostgreSQL to Oracle RAW. The BYTEA data type is variable bytes array. How can we load the BYTEA data type to Oracle RAW data type? Or I have to convert to different data type. thanks.
    Peter,

    hi,
    Instead of 'interval day to second' in method declaration use internal datatype 'DSINTERVAL_UNCONSTRAINED'.
    There are more unconstrained types in oracle.
    Bartek

  • Bea and nvarchar2 data type in oracle

    Does weblogic server supports nvarchar2 data type in Oracle?..
    I use CMP with java data type String mapped to nvarchar2 data type to oracle.when
    i try to create a bean it throws "java.sql.SQLException: ORA-12704: character set
    mismatch". Is there any configuration in the server to set the character set?..
    can anyone help me on this?...

    Does weblogic server supports nvarchar2 data type in Oracle?..
    I use CMP with java data type String mapped to nvarchar2 data type to oracle.when
    i try to create a bean it throws "java.sql.SQLException: ORA-12704: character set
    mismatch". Is there any configuration in the server to set the character set?..
    can anyone help me on this?...

Maybe you are looking for

  • Bootcamp and Windows 8. bug

    Hello, I have a problem now with Bootcamp on Microsoft Windows 8.1. - My hot keys for backlight access keys do not work. (Cursor blistered) - The Quick Access brightness button works but nothing changes. - Going through Windows menus, you can not adj

  • How can I find a PAGES doc I designed only 3 days ago?

    Is there a way to only search for all my PAGES-made documents or for all recently created documents? or some other way to find my missing doc?  yes, I did save it.  and yes, I looked in recently opened.  thanks!

  • Lync 2010: Deleted Trusted Server remains in Config: Failed to connect to a peer server

    Hi We added a Trusted Application to our Lync 2010 topology and removed it a few days later as it became clear it will not work for us.. Since then conference group chats do not work any longer. If I trace the issue I get reason="Failed to connect to

  • Generic delta extraction using function module

    Hi. I have a generic datasource , extraction being performed by a function module. The extraction works fine in full update mode. The extract structure has a timestamp field. I have enabled generic delta using this field(i.e., marked this field in RS

  • Pacman tries to satisfy dependency of an ignored package, and fails...

    sudo pacman -Suy :: Synchronizing package databases... core is up to date extra is up to date community is up to date --> Searching for upgradable repo packages... :: Starting full system upgrade... warning: awesome: ignoring package upgrade (3.3.4-1