Oracle Date Conversion from a sybase table - sql

I am trying to use Oracle SQL Developer to import a CSV file to a table. One of the fields is in day/time format. An example of such a date is '9/15/1993 12:00:00.000 AM'. IN SQL Developer when it asks me what date format to use I enter MM/DD/YYYY HH:MI:SS AM but this creates a ORA-01855 error complaining about AM so I imagine something is wrong. Any ideas?

It's probably more likely to be the milliseconds rather than the AM/PM indicator. Convert to a timestamp first then cast to date: String to date in Oracle with milliseconds

Related

Convert datetime to UTC beginning of the day - Oracle db

For example:
I've got datetime in Oracle database like: 18/08/21 13:51:23,420460500 (y/m/d) and I want convert to type: 18/08/20 22:00:00,000000000.
Could you please let me know how can I do this?
I've tried SYS_EXTRACT_UTC("MyDate") but it does not work in that case.
From the format of your question, I'm assuming you have a TIMESTAMP value, since Oracle doesn't have a "datetime" data type. You can truncate the time component to midnight (the beginning of the day) with the TRUNC function, though it returns a DATE data type. I'm not sure where the 22:00 in your question is coming from.

Oracle (SQL Developer): How to convert TIMESTAMP string includeing UTC Offset

Objective
Identify the correct TIMESTAMP format and the cause of the issue.
Problem
Tring to load a CSV which includes timestamp including UTC offset.
2014-01-01T00:38:51.000+11:00
The format string is below.
YYYY-MM-DD"T"HH24:MI:SS.FF3TZH:TZM
However, getting an error message.
Invalid format YYYY-MM-DD"T"HH24:MI:SS.FF3TZH:TZM is specified.
SQL Developer
TIMESTAMP
TIMESTAMP with TZ
Please suggest how to fix this and the reason.
References
Oracle 9: Convert date from mm/dd/yyyy hh:mm:ss format to iso8601 formatted datetime [closed]
There is nothing wrong with the timestamp with timezone format:
SQL> select to_timestamp_tz('2014-01-01T00:38:51.000+11:00',
2 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZH:TZM') as result from dual;
RESULT
---------------------------------------------------------------------------
01-JAN-14 12.38.51.000000000 AM +11:00
1 row selected.
Elapsed: 00:00:00.00
(What is DISPLAYED is in a different format - it uses my NLS_TIMESTAMP_TZ_FORMAT session parameter - but the conversion from string to timestamp with timezone worked perfectly fine.)
Definitely a SQL Developer issue - you will need to find out how this is done in their interface.

SQLite Data Time Function

I currently have a timestamp in this format Tue Jun 03 17:17:05 +0000 2014 in one column in my table. I want to count the number of records happening in specific intervals (15 minutes). I have tried to follow the answer found in Group records by time. Although my timestamp is in a different format and I haven't seen any support function available in SQLite to convert this. Is this possible in SQL?
The SQLite date and time functions can be used to convert a timestring to a canonical format, or to a Julian Day Number. Unfortunately, the SQLite date and time functions only accept timestring in a limited number of formats:
YYYY-MM-DD
YYYY-MM-DD HH:MM
YYYY-MM-DD HH:MM:SS
YYYY-MM-DD HH:MM:SS.SSS
YYYY-MM-DDTHH:MM
YYYY-MM-DDTHH:MM:SS
YYYY-MM-DDTHH:MM:SS.SSS
If your timestring format has fixed field widths, you can use the substr function and the || string concatenation operator to convert it to a format SQLite understands. You'll have to use a case expression to convert the month names to numbers; here's an example.
You may use NEW_TIME in Oracle to convert the time to a specific timezone. Here is an example. This example is converting SYSDATE from PDT to GMT.
SELECT NEW_TIME (SYSDATE, 'PDT', 'GMT') FROM DUAL;
This thread is detailing how to add required minutes to your timestamp.

Date Time Difference in SQL 2008

How to get date and time difference between 10/12/2010 07:35:02 PM and 2010-11-19 21:51:01.713. Where first date is in MM-DD-YYYY format and Second date is in YYYY-MM-DD Format Rest is time it is also in different format as first format has "pm" in it. Please let me know how to write a query in sql 08 to calculate date and time difference?
The datetime data type in SQL Server is actually a 8-byte number. It may be represented in different formats to please humans but the format has no meaning to SQL Server itself.
To calculate the time difference between to datetime values you can use the built-in DATEDIFF function, which you can find details about here: http://technet.microsoft.com/en-us/library/ms189794.aspx
This will work thanks to the SQL Server ability to parse formatted dates for us:
select datediff(day, '10/12/2010 07:35:02 PM', '2010-11-19 21:51:01.713')
-----------
38

How to save date into 24 hours format in oracle

I am new to Oracle, and I need to save date and time in an Oracle database.
I am using time stamp as datatype for row. But now my problem is it saves date and time in 12 hours format like this 17/11/2011 10:10:10 PM.
But I need it in 24 hours format like 17/11/2011 22:10:10. I didn't understand the results that Google search result provided. Can any one please help me by posting some code.
Oracle always stores timestamps (and dates) in a packed binary format that is not human readable. Formatting is done only when a timestamp (or a date) is converted to a string.
You can control the formatting of your output by coding an explicit to_char. For example
SELECT to_char( your_timestamp_column, 'DD/MM/YYYY HH24:MI:SS' )
FROM your_table
Oracle stores timestamps in an internal format (with a default representation).
You can customize this representation on output like with the to_char() function.
For input (into the database) you can use to_date().