Q

Populate a calendar table

I want to create a table with five columns (weekdayNumber, weekdayName, date, weekdayBeg, weekdayEnd). How can I create and generate data automatically?

I want to create a table with five columns (weekdayNumber, weekdayName, date, weekdayBeg, weekdayEnd). How can I create and generate data automatically?

Despite the fact that SQL is a standard language, no two database systems have the same date functions. Therefore...

to illustrate how to create such a table, which is usually called a calendar table, we must pick one SQL variant for illustrative purposes, and this time it will be Microsoft SQL Server.

The main "trick" we need here is to use an integers table. I've written about the integers table before, because it's useful in so many ways, and this is one of them. So let's just recap how to create it:

```create table integers (i integer)
insert into integers (i) values (0)
insert into integers (i) values (1)
insert into integers (i) values (2)
insert into integers (i) values (3)
insert into integers (i) values (4)
insert into integers (i) values (5)
insert into integers (i) values (6)
insert into integers (i) values (7)
insert into integers (i) values (8)
insert into integers (i) values (9)   ```

Create the calendar table:

```create table calendar
( date          datetime   not null primary key
, weekdayNumber tinyint    not null
, weekdayName   varchar(9) not null
, weekdayBeg    datetime   not null
, weekdayEnd    datetime   not null
)```

It wasn't clear what you had in mind with the columns weekdayBeg and weekdayEnd, so I took a guess and decided you wanted the actual dates of the Sunday (first day) and Saturday (last day) of the week containing the date.

Now let's populate the calendar table:

```declare @startdate datetime
set @startdate = '2005-01-01'
insert
into calendar
from (
select h.i*100+t.i*10+u.i  as n
from integers u
, integers t
, integers h
) as numbers
where n between 0 and 365
order
by n```

The "numbers" subquery is a simple cross join, in which the integers 0 through 9 are combined three times as units, tens and hundreds. This creates 1,000 numbers (from 0 through 999) but the outer query selects only those between 0 and 365, thus generating 366 dates. To generate more than one year's worth of dates, simply adjust the range of numbers selected, or run the query multiple times with different starting dates.

There isn't really too much to say about the date functions. These are very specific to Microsoft SQL Server, and other database systems will have similar functions.

dateadd(day,n,@startdate) is the date. datepart(dw,...) is the day of week, 1 through 7, where 1=Sunday and 7=Saturday. datename(dw,...) is the name of the day of week, i.e. Sunday, Monday, etc. Finally, the last two expressions use the day of week number (which is between 1 and 7, remember) to calculate the dates of the Sunday and Saturday at the beginning and end of the week containing the date.

Neat, eh?

This was last published in October 2005

Content

Find more PRO+ content and other member only offers, here.

Have a question for an expert?

Get answers from a TechTarget expert on whatever's puzzling you.

You will be able to add details on the next page.

Start the conversation

Send me notifications when other members comment.

SearchDataManagement

• Cross-platform integration, data preparation process grows in cloud

While cloud computing may be convenient and more cost-effective for users, it can also lead to new challenges and requirements in...

• Graph data model cements tight relationships between data elements

Graph databases can help define and discover relationships between entities -- and offer increased flexibility and better ...

• Microsoft SQL Server 2016 relational DBMS overview

Microsoft SQL Server 2016 for Windows comes in four editions, with updates that include a new stretch database feature, Polybase,...

• Difficulties in hiring data scientists can waylay analytics efforts

Advanced analytics software provides a lot of functionality, but finding skilled data scientists who can use the available tools ...

• Creative projects leave people guessing about future impact of AI

A push is underway to write creative AI algorithms that can engage in music, film and design projects. So far, they have ...

SearchSAP

• Hillarys Blinds speeds SAP S/4HANA upgrade with Panaya tool

Hillarys Blinds, a veteran of several SAP ECC upgrades, completed a move to SAP S/4HANA in just six months using the Panaya ...

• Charlotte Hornets build data warehouse with SAP HANA-based Phizzle

The Charlotte Hornets implemented Phizzle FanTracker, an SAP HANA-based platform, to consolidate fan records from many data ...

• Does SAP ONE Support Launchpad make SAP support any easier to use?

The new Fiori user experience makes it easier to access applications and support services, but product-specific support still ...

SearchSQLServer

• SQL Server on Linux signals Microsoft's changing development landscape

Expert Joey D'Antoni explains what SQL Server on Linux and the addition of Enterprise Edition features to Standard Edition say ...

• How to get the most out of virtual SQL Server with Microsoft Hyper-V

SQL Server is a CPU-intensive technology, which can make it tricky to run in a virtualized environment. Keep your SQL Server ...

• Microsoft previews SQL Server on Linux, opens features across editions

Microsoft looks to broaden the horizons of SQL Server, as it moves some Enterprise features to Standard Edition and issues the ...

TheServerSide

• Docker instances become the new norm and adoption goes mainstream

Many organizations use Docker instances for many reasons, although security, data storage and monolithic fears remain barriers to...

• How to turn your DevOps failures into ALM successes

Doing the right thing doesn't always mean you're doing things right. But don't fret, because short-term DevOps failures can mean ...

• From chatbots to IBM's Watson: How software deals with conversational language

The next big thing in software development is conquering the conversational language development hurdle. Here's how the big ...

SearchDataCenter

• Build a data center shutdown procedure to prepare for the worst

A data center shutdown checklist helps IT teams focus on backup, testing and system verification before pulling the plug and ...

• Telcos purge colocation data centers, open door to neutral connections

Enterprise customers in Verizon and CenturyLink's colocation data centers should expect better cloud and network connection ...

• IT slowly embraces composable infrastructure

If there will be a way to make an enterprise data center as efficient and optimized as cloud computing, composable infrastructure...

SearchContentManagement

• Microsoft brings its flavor of AI with Microsoft Cognitive Services

Microsoft Cognitive Services has a new array of APIs to make it easier to scan text, video and audio data and to bring ...

• Users prefer Office 365 suite collaboration features over SharePoint

Users don't want to jump through hoops, and they want applications to work on mobile devices. Those needs may kill traditional ...

• What new SharePoint features to expect in the next 12 months

Now that Microsoft is developing its SharePoint features, there are new feature rollouts all the time. Here's a rundown of the ...

SearchFinancialApplications

• Foot Locker seeks a good fit with Infor pre-employment assessment tool

Foot Locker is among a growing number of companies using cloud-based pre-hire assessment to screen job applicants for character ...

• Project planning for a new corporate performance management system

A corporate performance management system touches most aspects of any business. You need a carefully thought-out plan to ensure a...

• No one-size-fits-all strategy for cloud ERP software migration

Experts say a cloud ERP transition plan will vary according to a variety of factors, from company size to an organization's ...

Close