sql >> データベース >  >> RDS >> Oracle

正しい値を返さない間の月

    あなたは間違っている。 MONTHS_BETWEEN date '2017-02-28'からの期間を扱います date '2017-03-28' 正確に1か月(隣接する2か月の同じ日)。これはドキュメントで読むことができます: https:// docs .oracle.com / cd / B19306_01 / server.102 / b14200 / features089.htm

    一方の日付がもう一方の日付よりも大きいため、どちらが最初でどちらが2番目のパラメーターであるかに応じて、正または負の数(つまり、ゼロではない)が得られ、日が等しい場合、結果は整数になります。隣接する月の場合は1または-1です。

    月は定義された期間ではないため、月の計算はとにかく奇妙なことです。あなたは特定の定義を念頭に置いているようですが、それは単にMONTHS_BETWEENの方法とは異なります。 それを定義します。それについては何も悪いことはありません。 MONTHS_BETWEENに同意します この場合; 2月28日から3月28日までは「正確に」1か月です。別のルールが必要な場合は、独自の計算を適用してください:-)



    1. 開始日から終了日までの各日付の行

    2. PHP警告:mysqli_connect():(HY000 / 2002):接続が拒否されました

    3. Postgresのテキストファイルで指定されたテーブルの行を削除します

    4. テーブルの名前を「NOW()+old_table_name」に変更します