BeastMode: Identify Odd or Even Year

swagner
swagner Contributor

This is something I solved on my own, wanting to share here in case someone else can use this approach. Also would love to hear if you have another way to provide the same solution.

What was the business problem? I have a card that displays a KPI as a % over time. I wanted to color code the years so they alternate between two colors based on the year being an odd or even number.

Using the "Odd or Even" approach in the color rules future proofs the solution so I don't have to state the year explicitly.

The BeastMode I came up with is a simple case statement that subtracts the charted year (in my case `Order Date`) from the year of the current date:

case 

when YEAR(CURDATE())-YEAR(`Order Date`)=0 then 'Even'

when YEAR(CURDATE())-YEAR(`Order Date`)=2 then 'Even'

when YEAR(CURDATE())-YEAR(`Order Date`)=4 then 'Even'

when YEAR(CURDATE())-YEAR(`Order Date`)=6 then 'Even'

when YEAR(CURDATE())-YEAR(`Order Date`)=8 then 'Even'

else 'Odd'

end

Best Answer

  • MarkSnodgrass
    Answer ✓

    @swagner you can use the MOD function to see if there is a remainder when dividing by 2 to determine if it is an odd or even number:

    CASE WHEN MOD(YEAR(`Order Date`),2) = 0 THEN 'Even'

    ELSE 'Odd'

    END

    **Check out my Domo Tips & Tricks Videos

    **Make sure to <3 any users posts that helped you.
    **Please mark as accepted the ones who solved your issue.

Answers

  • MarkSnodgrass
    Answer ✓

    @swagner you can use the MOD function to see if there is a remainder when dividing by 2 to determine if it is an odd or even number:

    CASE WHEN MOD(YEAR(`Order Date`),2) = 0 THEN 'Even'

    ELSE 'Odd'

    END

    **Check out my Domo Tips & Tricks Videos

    **Make sure to <3 any users posts that helped you.
    **Please mark as accepted the ones who solved your issue.
  • swagner
    swagner Contributor

    @MarkSnodgrass Thank you! Hope all is well with you sir.