java long
オブジェクトから変換された日付オブジェクトの長い値があり、クエリdate
でその長い値を使用しSQL
て日付と比較したいと考えています。
日付フィルターでデータを取得したいので、long値をSQL
dateオブジェクトに変換したい
のようにしてみました
"select DATEADD(SECOND, 1376773200000/1000 ,'1970/1/1')"
しかし、うまくいきません。
これを行う方法?
代わりにパラメーター化された 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
- フィールドの正確なタイプによって異なります。)
良い投稿は、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