sql >> Database teknologi >  >> RDS >> Oracle

Måneder mellem ikke at returnere korrekt værdi

Du tager fejl. MONTHS_BETWEEN behandler tidsrummet fra date '2017-02-28' til date '2017-03-28' som præcis en måned (samme dag i to tilstødende måneder). Dette kan læses i dokumenterne:https://docs .oracle.com/cd/B19306_01/server.102/b14200/functions089.htm

Den ene dato er større end den anden, så du får et positivt eller negativt tal (dvs. ikke nul) afhængigt af, hvilken der er første og hvilken der er anden parameter, og da dagene er ens, vil resultatet være et heltal. Det er 1 eller -1 for tilstødende måneder.

Månedsberegning er alligevel en mærkelig ting, da en måned ikke er et defineret tidsrum. Du ser ud til at have en bestemt definition i tankerne, som simpelthen er forskellig fra MONTHS_BETWEEN definerer det. Der er ikke noget galt med det. Jeg er enig med MONTHS_BETWEEN I dette tilfælde; fra 28. februar til 28. marts er "præcis" en måned. Hvis du vil have andre regler, så anvend din egen matematik :-)



  1. XML-fejl ved og-tegn (&)

  2. Kan ikke køre noget fra mysql-utilities:Intet modul ved navn mysql.utilities.common.tools

  3. Hvordan opretter jeg en sekvens i MySQL?

  4. Hvordan gemmer man et array i mysql?