我有java long
从date
对象转换的日期对象的长值,现在我想在SQL
查询中使用该长值与日期进行比较。< / p>
我想将长值转换为SQL
日期对象,因为我想按日期过滤器获取数据
我试过
"select DATEADD(SECOND, 1376773200000/1000 ,'1970/1/1')"
但它不起作用。
怎么做?
答案 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