سؤال

أفهم أنه ، تمشيا مع interbase v6 ، لا يدعم Firebird 2.5 SQL-92 INTERVAL الكلمة الرئيسية. على الأقل ، لذلك يقترح هذه المرجع وأخطاء SQLCode -104 المتكررة تحاول الحصول عليها INTERVALS للعمل تحت Firebird's ISQL (1).

كيف ، إذن ، لا أفسر المخالفات في حسابنا المدني للوقت - الشهور ليست طويلة بشكل موحد ، ولا أيام مع وقت التوفير والتعديلات القفز ، ناهيك عن سنة الارتباك ، وما إلى ذلك - عند الأداء TIMESTAMP الحساب تحت فايربيرد 2.1؟

كيف يمكنني تحديد "قبل شهر واحد قبل شهر واحد" أو "بعد أسبوع واحد" من المعطى TIMESTAMP؟ ماذا عن "بعد يوم واحد" أو "قبل ساعتين"؟

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

المحلول

يمكنك استخدام dateadd () و datediff () وظائف مدمجة.
بدلاً من ذلك ، يمكنك أيضًا استخدام الكلاسيكية تاريخ الحساب.

نصائح أخرى

إذا لم يتم تنفيذ هذا في Firebird ، فربما يمكنك القيام بذلك من خلال التكنولوجيا التي تستدعي خادم SQL الخاص بك ، والحصول على الطابع الزمني الناتج؟ أعلم أنه يمكن القيام به بسهولة في Java أو .NET

يمكنك أيضا استخدام المهام من udf الخارجي fbudf.dll

هناك UDF خارجي لطيف يدعى RFUNC: http://rfunc.sourceforge.net/, ، لديها وظائف تاريخ لطيفة مثل DaysBetween و Invate (D ، I1 ، I2 ، i3) وغيرها الكثير

  1. قم بطرح يوم واحد من تاريخ الطابع الزمني في حلقة حتى يتغير الشهر.
  2. قم بطرح يوم واحد من تاريخ الطابع الزمني في حلقة حتى يتغير اليوم إلى الأحد.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top