Recherches Dans Transact -SQL , il est souvent nécessaire d'effectuer des fonctions d'agrégation telles que le regroupement des résultats par date . SQL propose la "Date" type de données pour stocker des données comme les dates et le type de données "DateTime" pour stocker des données dans un format d'horodatage , avec la date et l'heure en heures, minutes et secondes. Vous pouvez convertir des données "DateTime" à une date formatée ISO ( aaaammjj ) au cours de l'agrégation pour enlever la partie du temps. Vous pouvez aussi diviser les données "DateTime" en pièces détachées à l'aide de la fonction " DATEPART " et le groupe par les parties de la date et de l'heure sans les secondes. Choses que vous devez
MS SQL Server 2005 ou version ultérieure
MS SQL Server Management Studio
Afficher plus Instructions
Conversion
1
Lancez le Microsoft SQL application Studio Management Server et se connecter au moteur de base de données SQL Server.
2
Ouvrez une fenêtre d'éditeur de requête .
3
Format votre requête pour convertir le " datetime " enregistrer une chaîne en format standard ISO avec aucune partie du temps ( aaaammjj ) . "Yyyy" est l'année, "mm" est le mois et "dd" est la date . Le "112" dans la fonction " Convertir" spécifie le format ISO .
CONVERT (CHAR (8), date_field , 112) convertit le " datetime " date_field à une chaîne formatée ISO de huit caractères.
CAST ( CONVERT ( CHAR ( 8) , date_field , 112) AS dATETIME ) convertit le date_field " datetime " en une date au format ISO sans avoir le temps .
Pour l'utiliser dans le groupe en fonction , vous nécessaire de formater la requête comme :
SELECT date_field
FROM table
conditions WHERE GROUP
hotels, BY CAST ( CONVERT ( CHAR ( 8) , date_field , 112) AS DATETIME )
DATEPART
4
Lancez l'application Management Studio MS SQL Server et se connecter au moteur de base de données SQL Server.
5 < p> Ouvrez une fenêtre d'éditeur de requête .
6
Format votre requête, comme illustré , en utilisant la fonction " DATEPART " pour diviser le champ de date dans ses parties constituantes . Vous pouvez ensuite utiliser chaque partie dans le " GROUP BY " fonction , en éliminant les secondes pour effectuer un " GROUP BY " sans secondes seulement , où "yyyy" est l'année, "mm" est le mois , «DD» représente la journée, "hh" c'est l'heure et "n" est la minute.
SELECT
DATEPART (aaaa , date_field ) , AB
DATEPART (mm , date_field ) , AB
DATEPART (dd, date_field ) , AB
DATEPART (hh , date_field ) , AB
DATEPART (n, date_field )
FROM table
GROUP
PAR
DATEPART (aaaa , date_field ) , AB
DATEPART (mm , date_field ) , AB
DATEPART (dd, date_field ) , AB
DATEPART (hh , date_field ) ,
DATEPART (n, date_field )