The SQL of the Feast Days of Western Christendom

saints.jpg

I’ve been intrigued for a long time by the Christian feasts. Nowadays, we start getting excited about Christmas around July, and it is considered by commerce to be fair-game as a de-walletizing activity from Halloween onwards. I would like far more feast days to get excited about. Our ancestors had so many feast days that they didn’t bother with dates. Any day could be  described by it’s saint, feast or remembrance. Dates were generally spoken of by their proximity to the nearest feast day. Now we have boring national days that nobody really feels like celebrating unless it means a day off work. Every day in the year is celebrated somewhere in Christendom by at least one saint. Some days have five or six candidates depending on the nation or region. When Europe was christianised, the policy was the ‘light touch’. The existing gods and ancestral figures were merely made into saints. Regions that had a different ancestral figure for each extended family ended up with thousands of saints. This was definitely promotion

Why stop at the western Christian church? The calculation of Ramadan is very difficult to pin down and the Islamic Hijri calendar is difficult to calculate from the Gregorian calendar as it is based on observation and astronomical calculation. The Hindu feast days depend on which of eight calendars you choose (Only the names of the twelve months are the same though not in the same order). Apologies for sticking with Western Christianity.

I’ve been determined to produce a SQL Expression that was able to tell you when all the feasts and saints days are. In the following example, I’ve only put the major feast days that were generally celebrated in Britain before the reformation, but it is very easy to add or take away what I’ve given you to taste. There are two main ways of determining the date of a feast. The easiest ones happen on the same date every year. The most important ones are the movable feasts, based on Easter. They all take place a fixed number of days from Easter Sunday. The calculation of Easter, the so-called ‘Computus’, isn’t easy. It varies by over 40 days since it depends partly on the phase of the moon. Whole books have been written on the subject. Finally, there are the anomalous ones, such as Advent, which takes place on the nearest sunday to St Andrews’ day, which is a fixed date. Advent therefore will vary over seven days.

I wanted to be able to produce a calendar of dates for as many years as you wanted in one SQL Expression. I thought I’d produce something that used the date features that were introduced in SQL Server 2012. With a little refactoring you can get something that will work in SQL Server 2005.  Here is what I wrote.

This gives (just for the one year,  in which I wrote it)

  • 2015-01-01 The Circumcision of Christ
  • 2015-01-06 Epiphany
  • 2015-01-13 Day of St Hilary the Bishop
  • 2015-01-25 The Conversion of St Paul
  • 2015-02-01 Septuagesima Sunday
  • 2015-02-02 The Purification of the Blessed Virgin Mary etc.
  • 2015-02-08 Sexagesima Sunday
  • 2015-02-14 St Valentine’s Day
  • 2015-02-15 Quinquagesima Sunday
  • 2015-02-17 Shrove Tuesday or Mardi Gras
  • 2015-02-18 Ash Wednesday
  • 2015-02-24 St Matthias’ Day
  • 2015-03-01 St David’s Day
  • 2015-03-12 St Gregory’s Day
  • 2015-03-17 St Patrick’s Day
  • 2015-03-18 The Day of St Edward, King of the West Saxons
  • 2015-03-25 Annunciation of the Virgin (Lady Day or Ladymas)
  • 2015-03-29 Palm Sunday
  • 2015-04-02 Maundy Thursday
  • 2015-04-03 Good Friday
  • 2015-04-04 St Ambrose’s Day
  • 2015-04-05 Easter sunday
  • 2015-04-23 St George’s Day
  • 2015-04-25 St Mark’s day
  • 2015-05-01 The Day of St Philip and St James the Less.
  • 2015-05-10 Rogation
  • 2015-05-11 Rogation Monday
  • 2015-05-12 Rogation Tuesday
  • 2015-05-13 Rogation Wednesday
  • 2015-05-14 Ascension
  • 2015-05-24 Whitsunday (Pentecost)
  • 2015-05-24 Pentecost
  • 2015-05-26 The Day of St Augustine, first Archbishop of Canterbury
  • 2015-05-31 Trinity Sunday
  • 2015-06-04 Corpus Christi
  • 2015-06-24 The Nativity of St John Baptist
  • 2015-06-29 The Day of St Peter and St Paul
  • 2015-07-02 The Visitation of the Blessed Virgin Mary
  • 2015-07-22 St Mary Magdalene’s Day
  • 2015-07-25 The Day of St James the Apostle
  • 2015-08-06 The Transfiguration
  • 2015-08-10 St Lawrence’s day
  • 2015-08-13 Lammas Day (from 1753- 1st August before then)
  • 2015-08-24 The Day of St Bartholomew the Apostle
  • 2015-09-08 The Nativity of the Virgin Mary
  • 2015-09-14 Holy Cross Day (Holy Rood Day or Roodmas)
  • 2015-09-21 St Matthew the Apostle
  • 2015-09-29 St Michael and All Angels (Michaelmas)
  • 2015-09-30 St Jerome’s day
  • 2015-10-18 St Luke’s day
  • 2015-10-25 St Crispin’s day
  • 2015-10-28 St Simon and St Jude the Apostles
  • 2015-11-01 All Saints (Hallowmas or AllHallows)
  • 2015-11-02 All Souls’ Day
  • 2015-11-11 St Martin’s day (Martinmas)
  • 2015-11-22 St Cecilia’s day
  • 2015-11-29 Advent
  • 2015-11-30 St Andrew’s day
  • 2015-12-06 St Nicholas’s day
  • 2015-12-08 The Conception of the Blessed Virgin Mary
  • 2015-12-21 The Day of St Thomas the Apostle
  • 2015-12-25 Christmas Day
  • 2015-12-26 The Feast of St Stephen
  • 2015-12-27 The Day of St John the Evangelist
  • 2015-12-28 Holy Innocents Day (Childermas)
  • 2015-12-29 The Day of St Thomas a Becket

So there you have it. Plenty of potential feasts to celebrate there!