Link to home
Start Free TrialLog in
Avatar of rcmb
rcmb

asked on

Help displaying time retrieved from a database field

I have a SQL 2000 database that in one of my columns I record a date and time. The sql format looks like:

10/15/2004 8:00:00 AM

When I retrieve this data to view in a JSP page I get:

Fri Oct 15 00:00:00 EDT 2004

I am not concerned with formatting right now as I have that much figured out but what my issue is I need the actual hh:mm:ss that were entered into the database to display. For some reason my time is reset to midnight regardless of the entry I make.

My current display is without formatting but this is what I will use to just display the time entered:

<% SimpleDateFormat dt = new SimpleDateFormat ("hh:mm:ss a"); %>
<td><%=dt.format(the.Rider(getArrivalTime())%></td>

This works fine in displaying the time but it always reads 12:00:00 AM regradless of the entry in the database.

Any suggestions on where I could be going wrong in retrieving the time?

RCMB

Avatar of Venabili
Venabili
Flag of Bulgaria image

Hi rcmb,
How you read it from the database? And what type is the column in the database?
Avatar of rcmb
rcmb

ASKER

This is the line that actually reads from the database

Date tmpArrivalTime = ConvertDate.SqlDateToUtilDate(rs.getDate("arrival_time"));
this.setArrivalTime(tmpArrivalTime);

The column in SQL is a shortdatetime

RCMB
Avatar of TimYates
<td><%=dt.format(the.Rider(getArrivalTime())%></td>

isn't valid java...

what's "the.Rider" do?  And there aren't enough ')'s
Avatar of rcmb

ASKER

The the.Rider is a vector that I used to gather the data from the sql query. Basically I have a sevlet that querys the database and then passes the data to a vector (the.Rider) and my jsp just grabs the data from the vector.

I am confused on the "isn't valid java" because it certainly works in displaying the information.

RCMB
Avatar of rcmb

ASKER

I also understand there are many ways "to skin the cat" in java. This is a simple jsp that just pre-populates a form so the user can update some data. If the time comes back as 12:00:00 AM vice the actual time then editing the information will do no good. The correct time will be recorded, as the system does now, but it never gets displayed.

RCMB
> I am confused on the "isn't valid java" because it certainly works in displaying the information.

But there aren't enough closing braces...

 <td><%=dt.format(the.Rider(getArrivalTime())%></td>
..............................^..............^.......................^

3 opening ones...

 <td><%=dt.format(the.Rider(getArrivalTime())%></td>
........................................................................^^

2 closing ones...

plus..  how is:

 <td><%= dt.format( Vector( getArrivalTime() ) %></td>

supposed to work? (which is pseudocode as to what your function is trying to do)  Maybe I am just getting confused though...  sorry if this is true

Back to my own SQL hell for me ;-)

Good luck!

Tim
Hi rcmb,
It seems to me that there is a problem in your conversion.

> Date tmpArrivalTime = ConvertDate.SqlDateToUtilDate(rs.getDate("arrival_time"));

Btw, why are you doing a conversion? java.sql.Date extends java.util.Date so there is no need to convert.

What is the field type in the database for the arrival_time? If it is DATE, then that is where the problem is as that data type only stores a date, no time.

Consider using TIMESTAMP instead. SQL Server's DATETIME is a bad choice as it is SQL Server specific.

Cheers!

\tt
ASKER CERTIFIED SOLUTION
Avatar of Mick Barry
Mick Barry
Flag of Australia image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of rcmb

ASKER

getTimestamp was the answer. I did not need to convert anything else.

Thanks for the help.

RCMB