如何将date对象的long值转换为date

时间:2013-09-14 13:07:35

标签: java sql hibernate date datetime

我有java longdate对象转换的日期对象的长值,现在我想在SQL查询中使用该长值与日期进行比较。< / p>

我想将长值转换为SQL日期对象,因为我想按日期过滤器获取数据

我试过

"select DATEADD(SECOND, 1376773200000/1000 ,'1970/1/1')"

但它不起作用。

怎么做?

2 个答案:

答案 0 :(得分:3)

我建议您使用参数化SQL,这样您就可以将值指定为java.sql.Date。例如:

String sql = "SELECT * FROM Foo WHERE CreatedDate > ?";
PreparedStatement st = conn.prepareStatement(sql);
st.setDate(1, new java.sql.Date(timestampValue));

(或使用java.sql.Timestamp - 这取决于您的字段的确切类型。)

答案 1 :(得分:0)

好帖子是How do I add Hours, mins, seconds to dateadd sql?

在oracle中,你可以这样做:

declare
 vdate      date;
 vseconds number;
begin
  vseconds := 5;
  vdate      := to_date('2.1.2010 05:00','dd.mm.yyyy hh24:mi');
  vdate := vdate + vseconds/24/60/60;
end;

相当于select to_date('2.1.2010 05:00','dd.mm.yyyy hh24:mi') + 5/24/60/60 from dual;

此处的另一个例子http://www.codeproject.com/Articles/566542/Date-and-Time-Data-Types-and-Functions-SQL-Server#27

SELECT DATEADD(second, 1, @date) AS 'Second' ; @date is a variable.

将长期转换为日期:

如果长日期为1220227200L,则日期为

Date d = new Date(1220227200L * 1000);

输出

Sun Aug 31 20:00:00 GMT-04:00 2008