Pour stocker les informations de type date SQL Server proposer les type des données datetime et smalldattime. Ces 2 types diffèrent par la précision des données stockées. Quelques soit le type choisi il est par la suite possible d'afficher la date à différents format. Les informations de type dates sont stockées dans un format propre à SQL Server puis sont remises en forme lors de l'affichage. De même lors de la saisie il est nécessaire d'indiquer le masque utilisé pour fournir les informations.
Le type datetime permet de stocker une date comprise entre le 1er janvier 1753 et le 31 décembre 9999 avec une précision de 3,33 millisecondes. Une donnée de ce type est stocké sur 8 octets de la façon suivante:
Le type smalldatetime permet quand à luis de stocker des une date comprise entre le 1er janvier 1900 et le 6 juin 2079 avec une précision de 1 minute. Ce type de données est bien adapté pour stocker par exemple des informations telles que la date de création d'une ligne d'information.
Il est possible de saisir la date sous forme de chaine de caractère puis de convertir cette chaîne de caractère en données de type datetime. La conversion peut être faite de façon implicite (SET DATEFORMAT) ou bien de façon explicite avec la fonction CONVERT.
Avec cette instruction, il est possible de définir son propre format de date pour la session en cours. L'instruction SET DATEFORMAT ne concerne que les saisies de dates
SET DATEFORMAT formatDate;
Le format de date permet de savoir dans quel ordre sont fournies les valeurs jour (d), mois (m) et année (y).

La fonction convert, lorsqu'elle est utilisée pour manipuler des dates, accepte 3 paramètres qui sont: le type de destination, l'expression à convertir et le format de date. Pour saisir une date au format jj/mm/aaaa il faut utiliser le style 103 ou bien le style 3 si on se contente d'une année saisie sur 2 chiffres simplement.

Pour afficher une date et heure, il est nécessaire de convertir les informations au format texte. Cette opération est effectuée de façon implicite par le paramètre de langue ou bien dateformat (s'il à été précisé). Il est possible de réaliser cette opération de conversion de façon explicite avec la fonction CONVERT. Il est également possible de faire appel à la fonction DATENAME pour afficher la date à un format spécifique.
Dans l'exemple suivant, la date et heure courant est affichée au format par défaut.

La fonction CONVERT est utilisée pour convertir la date et heure courante de façon explicite en chaine de caractère en respectant un format prédéfini.

La fonction DATENAME accepte 2 arguments : la partie de la date à extraire et l'information de type datetime avec laquelle travailler.
DATENAME(élémentDeDate, donnéeDeTypeDatetime)
Les éléments de dates sont codés de la façon suivante
| Elément | Abréviation |
|---|---|
| année | yy, yyyy |
| trimestre | qq, q |
| mois | mm, m |
| jour dans l'année | dy, y |
| jour | dd,d |
| semaine | wk, ww |
| jour de la semaine | dw |
| heures | hh |
| minutes | mi, n |
| secondes | ss, s |
| millisecondes | ms |
La fonction DATEPART fonctionne de façon similaire mais va retourner un nombre entier au lieu d'une chaine de caractères.
Dans l'exemple suivant l'année de la date courante est affichée.

Pour manipuler les informations contenues dans des colonnes de type datetime et smalldatetime SQL Server proposent différentes fonctions Transact SQL.