Wrong date to string conversion - java

I am using TO_CHAR(last_used) to retrieve the date in String format from Oracle Database 11g. The output I get when I run the query: SELECT last_used, TO_CHAR(last_user, 'yyyy-MM-dd hh:mm:ss') as dtime1 FROM mytable WHERE id='120000'; is:
LAST_USED
---------------------------------------------------------------------------
DTIME1
-------------------
17-MAY-12 11.53.28.000000 PM -07:00
2012-05-17 11:05:28
Could any one let me know why this is happening?

MM is the format for month. Use MI for the minutes.

Related

MySQL updating strings in a column to be DateTime

I am saving a date formatted with Javas SimpleDateFormat with the format "E. MMM-dd-YYYY hh:mm a zzz" eg "Sat. Apr-15-2017 10:44 PM EST" to a table as a VARCHAR.
How would I go about changing all of the pre-existing data to be in DateTime format?
Have you tried this?
UPDATE `table`
SET `column` = STR_TO_DATE(`column`,'%Y-%m-%d')
refer to change mysql comumn from varchar to datetime and convert data post

insert java date time into Oracle

Oracle date format on server is MM/DD/YYYY HH24:Mi:SS
I would like to insert a variable which contains a date with timestamp into Oracle date column.
I am getting error while inserting date into Oracle "date column ends before format picture ends".
All I want is append specific timestamp to java string date and insert that string/date format into Oracle database
example:
String incoming_date = request.getParameter("insert_date"); //this comes as a string in dd-mon-yyyy format
formatted_incoming_date = incoming_date + " 00:00:01"; //I want to append time factor to above variable with 00:00:01
insert into testtable values(formatted_incoming_date);
Try this
insert into testtable values(TO_DATE (formatted_incoming_date, 'dd-mon-yyyy hh24:mi:ss);
Why you try to insert date as a string? It seems like there is an implicit conversion from string to date in Oracle. Can java.sql.Date be used instead?
Anyway, as long as date comes in format dd-mon-yyyy you have to convert it either into java.sql.Date object or in proper for Oracle string representation as MM/DD/YYYY HH24:Mi:SS i.e.
incoming date "05-12-2016" string for Oracle "12/05/2016 00:00:00"

Retrieving date from mysql

I have mysql datatype as date, my date format in database is 20/1/2015. Now I wish to retrieve data using date.
For example:
SELECT * FROM Device_Count where Date='20/1/2015'
GO
I am getting error like:
Incorrect date value: '20/1/2015' for column 'Date' at row 1
Please find and post the status
MySQL's date format is yyyy-mm-dd
change your query as below and it should work, provided your Date column data type is date.
SELECT * FROM Device_Count where Date=STR_TO_DATE('20/1/2015', '%d/%m/%Y' )
Refer to Documentation:
STR_TO_DATE(str,format)
Check your date format and compare it by the same format
Date is stored in MYSQL in the format of YYYY-mm-dd. Try this query:
SELECT * FROM Device_Count where Date='2015-01-20'
GO

How to set date format in sybase?

How to set date format in sybase?
Currently it's inserting default date format Jan 9 2014 1:07AM to Sybase DB,But i have to insert seconds also like "20140109 01:06:46"
Is there any way i can set date format in stored proc.
please suggest me,thanks!
select --cast(
dateformat('Jan 9 2014 1:07AM','YYYYMMDD HH:NN:SS') --returns varchar
--as datetime) --datetime object in database datetime format

How to set default time zone in Java and control the way date are stored on DB?

I've the following problem, that showed up when I installed my webapp's war on a virtual linux server. Here it is: my server system time seems correct, in fact typing date on shell comes out with:
Mon Apr 11 11:47:30 CEST 2011
which is my "wall clock time". Even mysql works fine, if I do select now(), I get:
mysql> select now()
-> ;
+---------------------+
| now() |
+---------------------+
| 2011-04-11 11:52:57 |
+---------------------+
1 row in set (0.01 sec)
But my application (Spring+hibernate on Java6 + tomcat 6) will save every date on DB with a GMT timezone (and the time is correctly offset with the difference from GMT, which is good). Now the problem is that I get all dates displayed with GMT, even if I do:
static final DateFormat format = new SimpleDateFormat(
"dd/MM/yyyy 'alle' HH:mm", Locale.ITALY);
I don't get the hours correctly offset, but they remain in GMT and they display GMT if I put Z (that displays timezone) in the pattern.
Under Windows instead I had date values stored in my native timezone on mySQL. So on my windows machine where I develop I will have all the dates in CEST. This is annoying as I don't know how to predict the way the system will behave and I have to do boring tests and figure out how to change this.
Do you have ever seen this problem? How to deal with it?
DateFormat does support a notion of time zone. Add something like:
format.setTimeZone(TimeZone.getTimeZone("Europe/Rome");
SimpleDateFormat sf1 = new SimpleDateFormat("dd/MM/yyyy 'alle' HH:mm:ss");
sf1.setTimeZone(TimeZone.getTimeZone("Europe/Rome"));
System.out.println(sf1.format(new Date()));
// List all Timezone
System.out.println(Arrays.asList(TimeZone.getDefault()));
DateFormat does not care about time zones, only formatting. In order to change to timezone you need something like Calendar.setTimezone().
PreparedStatement st = con
.prepareStatement("insert into knjiga_osisi (rb_knjiz,Inv_br,Naziv_os,datum_k,rb_pk,opis,ulaz,izlaz,stanje,osnovica_zam,otpis,sadasnjav, vrednost_pp,rashodovanav) values (?,?,?,STR_TO_DATE(?, '%d-%m-%Y'),?,?,?,?,?,?,?,?,?,?)");
This is code for java.
Mysql - java european date format
This line is for date
STR_TO_DATE(?, '%d-%m-%Y')
U can test in mysql only date row:
SELECT ID, DATE_FORMAT(Date, '%d-%M-%Y') FROM table1;

Categories