File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes JDBC and the fly likes compatibility of date format Big Moose Saloon
  Search | Java FAQ | Recent Topics
Register / Login


Win a copy of The Mikado Method this week in the Agile and other Processes forum!
JavaRanch » Java Forums » Databases » JDBC
Reply Bookmark "compatibility of date format" Watch "compatibility of date format" New topic
Author

compatibility of date format

ammuswar kumar
Greenhorn

Joined: Aug 19, 2001
Posts: 27
sir
i have a teble in a database with fields
1.id
2.tdate (dd/mm/yy)
3.title
how do i check for equality compatibility of tdate with system date)
select * from table where tdate = system date //----> some other format
is there any way to make them both compatible with each other so they could be checked for equality.
Jamie Robertson
Ranch Hand

Joined: Jul 09, 2001
Posts: 1879

Every database has there own way of doing this. Oracle provides a date function called trunc, which you can indicate the precision level that you want for a given date value. Everything beyond that precision is truncated:
eg. the same day in Oracle:
"select id from emp where trunc(hiredate) = trunc(sysdate)"
OR
"select id from emp where to_char(hiredate, 'dd/mm/yy')=to_char(sysdate, 'dd/mm/yy')"

Formatting for MSAccess can be done like this as well
"SELECT id FROM emp WHERE format(hiredate, 'dd/mm/yy') = format(now,'dd/mm/yy')"
Jamie
Anonymous
Ranch Hand

Joined: Nov 22, 2008
Posts: 18944
Hi
what does the format function do ? maybe it could help me.
I Use MS Access as you can see in the insert statement below how I insert the date in to the database, I realy don't no why you have to enter it in such a cryptic way, all the other ways I tryed didn't work, now I have another problem when I do an update on a table in MS Access I can not update the date column even if I use the number sign (#), if anyone could tell me how to do this I would greatly apprecaite it.
st.execute( "insert into com values( " + invoiceT.getText() + "," +"#" + dateC[0].getSelectedItem() + "/" + dateC[1].getSelectedItem() + "/" + dateC[2].getSelectedItem() + "#" + "," + sm + "," + sales1T.getText() + "," + co1 + ", 0, 0, " + total + ")" );
thanks in advane
Yoel
------------------
Sun Certified Programmer for JAVA 2 Platform
Jamie Robertson
Ranch Hand

Joined: Jul 09, 2001
Posts: 1879

what is your error message? you may have a very different problem than ammuswar(the original poster). Does the query work in a SQL editor session in M$Access? What is does the query really look like:
String query = "insert into com values( " + invoiceT.getText() + "," + "#" + dateC[0].getSelectedItem() + "/" + dateC[1].getSelectedItem() + "/" + dateC[2].getSelectedItem() + "#" + "," + sm + "," + sales1T.getText() + "," + co1 + ", 0, 0, " + total + ")" ;
System.out.println(query);
Then cut and paste the printout into the MSAccess SQL editor.
let me know how it turns out.
Jamie
Anonymous
Ranch Hand

Joined: Nov 22, 2008
Posts: 18944
Hi Jamie,
first of all thank you very much for replying to my post, my problem is when I use the update statement as follows.
This statement below is what I got from my program after I did what you told me, I cut it and paste it into the MSAccess SQL editor.
and I got this error message: Syntax error in UPDATE statement.
UPDATE com
SET date = #Aug/22/2001#, salesid = 1006, Amount1 = 456.78, Commission1 = 0.09, Amount2 = 524, Commission2 = 0, Total = 41.1102
WHERE Invoice = 123
but if I take out these words :: date = #Aug/22/2001#, :: I don't gate any error messages, I hope you will be able to help me out with this problem ?
thanks Jamie
Yoel
[This message has been edited by yoel stern (edited August 23, 2001).]
Jamie Robertson
Ranch Hand

Joined: Jul 09, 2001
Posts: 1879

I think your problem is in #Aug/22/2001# portion. It will not accept the Aug. Try inserting using #08/22/2001# instead.
It works for me.
Jamie
ammuswar kumar
Greenhorn

Joined: Aug 19, 2001
Posts: 27
hi jamie u have been kind enought to show me the correct path
i sincerely thank u
i wonder if u know java and servlets cos i have a code which u can see and correct it i having problem in the dates there
i am sending in the code
--------------------------------------------
see my table (title) in seq server database is :
id tdate (datetime-datatype) title
1 22/08/2001 svsdfdfj asdfjefke
2 23/08/2001 ddadkjdkdfj sddeD
.. ............... ...........................
20 10/09/2001 dfdfjskjasdk isdfjdfj
now when i say select * from title;
result
id tdate title
1 2001-08-22 00:00:00.000 xcxcdcj adafvsdsdf
now my requirement
clicking on todays content link i should get todays information(ex. if today is 22/08/2001 i should get the content of 22/08/2001)
how do u do this
using date a = new date(); stores a format whiich is not compatible with tdate
so select * from title where tdate = a; ------error
please correct this and check the code also ....cos u know i am in probabtion period so i will not get a second chance
once confirmed i will not bother u

import java.util.Date;
import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class DisplayServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
Date todaysdate = new Date();
out.print("<html><head>");
out.print("</head><body>");
// -----------------------------------------is the syntax correct for ---i mean this i how u write it in servlet program------
out.print("Todays content");
//out.print("<form action=\"");<br /> //out.print( req.getRequestURI() );<br /> //out.print("\" method=\"post\">");
//out.print("<input type=\"submit\" ");<br /> //out.print("value=\" \"> ");
//out.print("Display Records</form>");
out.print("</body></html>");
out.close();
}
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
String a = req.getParameter("param");
out.print("<html><head>");
out.print("</head><body>");
out.print("<code><pre>");

Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc dbc dbc_exmp,userid,pwd");
stmt = con.createStatement();
rs = stmt.executeQuery("SELECT * FROM title where tdate='a'");
while(rs.next()) {
out.print(rs.getObject(1).toString());
out.print("\t");
out.print(rs.getObject(2).toString());
out.print("\t\t");
out.print(rs.getObject(3).toString());
out.print("\n");
}

} catch (SQLException e) {
throw new
ServletException("Servlet Could not display records.", e);
} catch (ClassNotFoundException e) {
throw new
ServletException("JDBC Driver not found.", e);
} finally {
try {
if(rs != null) {
rs.close();
rs = null;
}
if(stmt != null) {
stmt.close();
stmt = null;
}
if(con != null) {
con.close();
con = null;
}
} catch (SQLException e) {}
}
out.print("</pre></code>");

out.print("</body></html>");
out.close();
}
}
this is my code---------------------------
now my problem

i have a table in SQL-SERVER named as title
this table has three fields
1.id
2.tdate----this is of the type datetime
3.content
i am using JRUN 3.0
i want to make a java servlet in which u have a text link
Date todaysdate = new Date();
todays content;
In the servlet :
i am accepting this parameter as
String a = request.getParameter("param");

i will the database connecion---------------------
then
'
select * from title where tdate = 'a';

-----------but this not showing any result
error;
there is something wrong here in he compatitbility of 'a' with tdate
Anonymous
Ranch Hand

Joined: Nov 22, 2008
Posts: 18944
Hi Jamie,
I tryed as you told me it still did not work, I think the problem is with the column name, the column for the date is named date, I'm gona check this out I will let you know, if I work this out.
Thanks Again
Yoel
Jamie Robertson
Ranch Hand

Joined: Jul 09, 2001
Posts: 1879


Yoel: just got in from the weekend, so I couldn't help you . Everything looks good EXCEPT for one little piece of SQL. You will probably hit your head against the wall a couple of times because it is pretty simple! This is the line that is causing you problems:
rs = stmt.executeQuery("SELECT * FROM title where tdate='a'");
this code will try and find any date that matches the letter a. Probably not what you want. You want any date that matches the value stored in variable a. (Also, you need to change your single quotes to # signs):
rs = stmt.executeQuery("SELECT * FROM title where tdate=#"+ a +"#");
Hope this works,
Jamie


[This message has been edited by Jamie Robertson (edited August 27, 2001).]
 
I agree. Here's the link: http://zeroturnaround.com/jrebel - it saves me about five hours per week
 
subject: compatibility of date format
 
Similar Threads
comparing date
error in servlet
checking for compatibility of dates in servlet
Date problem
Formatting Dates returned from SQL queries