2

java longオブジェクトから変換された日付オブジェクトの長い値があり、クエリdateでその長い値を使用しSQLて日付と比較したいと考えています。

日付フィルターでデータを取得したいので、long値をSQLdateオブジェクトに変換したい

のようにしてみました

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

しかし、うまくいきません。

これを行う方法?

4

2 に答える 2

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- フィールドの正確なタイプによって異なります。)

于 2013-09-14T13:10:03.080 に答える
0

良い投稿は、How do I add Hours, mins, seconds to dateadd sql? です。

オラクルでは、次のようにできます。

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.

long から date への変換:

長い日付が 1220227200L の場合、日付は

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

出力

Sun Aug 31 20:00:00 GMT-04:00 2008
于 2013-09-14T13:24:04.887 に答える