Tabelas de datas e cálculos de calendário

As perguntas aqui no SO giram frequentemente em torno de cálculos envolvendo datas no SQL. É particularmente relevante ao criar relatórios que precisam isolar dados (eventos ou transações) em períodos, talvez resuma-os de alguma forma e depois os apresente de maneira inteligível. Outro caso comum é onde você precisa prever ou avançar no tempo de alguma maneira - por exemplo, calcular prazos futuros ou monitorar a conformidade ou apenas avaliar se uma consulta fará o que deve em datas futuras.

Mesmo períodos de tempo que podem ser expressos diretamente, como "nos últimos 2 meses completos a partir do momento em que a consulta é executada", podem se tornar extremamente complexos para serem calculados como uma única expressão em uma consulta e, se abordados de maneira ingênua, envolverão código que é mal fatorado, difícil de generalizar e modificar e difícil de verificar. Ou confuso, quebradiço e disfuncional.

A base das soluções mais robustas é o uso de uma "tabela de datas". Mas isso não é (necessariamente) apenas uma lista de datas, mas também contém uma variedade de fatos e atributos sobre cada data. Todos os pacotes de banco de dados envolvem um conjunto de funções de data padrão que extraem vários atributos de uma data, como o dia do mês, mas isso está longe de ser abrangente.

Então, com uma resposta a seguir em um momento, a pergunta que vou fazer é "como criamos uma tabela de datas básica e manipulamos isso em um calendário simples"?

questionAnswers(1)

yourAnswerToTheQuestion