سؤال

لدي ينفورميكس قاعدة البيانات مع الطابع الزمني مجال تعريف السنة الثانية.عندما عرض هذا الحقل باستخدام JDBC rs.getString(العمود) ويستخدم تنسيق مع miliseconds لذا هذا المجال تبدو مثل:

2008-12-18 13:58:14.0

أود أن استخدام فقط في السنة الثانية المجالات.تعيين متغير البيئة:

GL_DATETIME=%Y-%m-%D %H:%M:%S

ولكن حتى ذلك الحين حصلت miliseconds.البرامج باستخدام ODBC لا تظهر milisecond.كيف يمكنني الحصول على الطابع الزمني سلسلة "السنة الثانية" فقط ؟ في برنامج يمكنني التحقق من البيانات الوصفية إذا كان حقل الطابع الزمني ثم قطع ".0" لكن أعتقد يجب أن يكون هناك simplier الطريق.

Server الإصدار:IBM ينفورميكس ديناميكية Server الإصدار 11.50.TC2DE

إصدار العميل:IBM ينفورميكس JDBC Driver for IBM ينفورميكس ديناميكية خادم 3.50.JC3DE

تحرير يبدو أن جميع JDBC اختبرت (أوراكل و كيو) يدل على أعمدة الطابع الزمني مع miliseconds إذا كنت تستخدم getString().لذلك تستخدم الحل المقترح من قبل تود.لقد تحقق metatdata وإذا عمود الطابع الزمني ثم يمكنني استخدام getTimestamp() وتهيئته.

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

المحلول

إذا كنت تستخدم JDBC ، يمكنك استخدام rs.getDate(العمود) أو روبية.getTimestamp(العمود) الأساليب التي يعود تاريخ والطابع الزمني الكائنات على التوالي.ثم لديك كائن يمثل الوقت بدلا من سلسلة التعبير عن ذلك مباشرة.مع تاريخ أو الطابع الزمني ، يمكنك استخدام تاريخ المنسق إلى تنسيق على أي تمثيل سلسلة من وقت تختاره.

التحديث (بعد قراءة التعليقات أدناه):إذا كنت تستخدم getDate(), فإنه سوف لا تزال تعمل على أعمدة الطابع الزمني.فإنه سيتم تقليل الدقة وصولا الى الثانية.وبهذه الطريقة لم يكن لديك للتحقق من البيانات الوصفية ، عليك فقط أن تعرف أن العمود هو نوع من زمني أو موعد.

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