الاستعلام أوراكل DB للالطوابع عندما تعلم ميلي ثانية

StackOverflow https://stackoverflow.com/questions/1614673

  •  06-07-2019
  •  | 
  •  

سؤال

وأنا اتلقى حاليا الخطأ:

java.sql.SQLException: ORA-01843: not a valid month

والتي أفترض هو أن تفعل مع الطريق وانا وضع طابع زمني ...

وهكذا عندي استفسار من هذا القبيل:

select * from A_TABLE where A_TIMESTAMP_COL < '1252944840000'

ولكن لا يعمل ... وأنا لا أريد أن يكون لتحويله إلى تاريخ مثالي. هناك بعض تركيب خاص لأقول أوراكل أن هذا هو الطابع الزمني؟

هل كانت مفيدة؟

المحلول

واعتقد انه يمكن تحويل العمود التاريخ إلى شار وتفعل شيئا مثل:

select * from A_TABLE where to_char(A_TIMESTAMP_COL) < '1252944840000'

وهذا يجب أن تسمح لك لمقارنة السلاسل، وليس التواريخ.

نصائح أخرى

ويمكنك استخدام وظيفة to_timestamp () لتحويل سلسلة الخاص بك إلى قيمة الطابع الزمني: <لأ href = "http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/functions201.htm # sthref2458 "يختلط =" نوفولو noreferrer "> http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/functions201.htm#sthref2458

استخدم الأساليب java.sql تسهيلا لاتخاذ ذلك الوقت ميلي ثانية واحدة وتحويلها إلى التاريخ أو الطابع الزمني.

ويمكنك استخدام هذا الاستعلام:

SELECT * FROM A_TABLE WHERE TIMESTAMP < (SYSDATE - 10/1440)

وأين (SYSDATE - 10/1440) يعني SYSDATE - 10 Minutes.

ونرى أيضا بعض الأمثلة هنا .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top