Date SQL Server vs smalldatetime
J'ai un tas de tableaux qui regroupent les données à différents niveaux: trimestriel, horaire, journalière et mensuelle. En dehors de cela il y a une table de base qui contient les données "brutes" ainsi, celui-ci contient des colonnes supplémentaires. Les tableaux consolidés ont tous les mêmes colonnes.
La base, trimestriel et horaire des tables de faire usage d'une colonne de type smalldatetime
d'horodatage des données. Cette colonne sera également disponible dans l'horaire et journalière des tables, mais bien sûr, je n'aurez pas besoin de l'aspect du temps ici.
Par souci de simplicité, je veux utiliser le type de données smalldatetime ici aussi, mais peut-être que c'est mieux pour les performances d'utiliser un type de données de date pour la colonne?
Est-il vraiment une grande différence entre les types quand il descend à la performance?
Je vous remercie. Eh bien, ma question sera finalement la même chose, alors: datetime vs date
smalldatetime est pas obsolète: c'est un type standard ANSI.
où avez-vous obtenu les informations que smalldatetime est un type standard en "ANSI"? La version de la Norme SQL faites-vous allusion? Il n'est pas dans la norme ISO/IEC 9075 2003 docs. Je n'ai pas toutes les versions antérieures avec moi en ce moment mais je suis sûr que la norme date heure type a été d'HORODATAGE et de ne jamais SMALLDATETIME qui était une Sybase invention. SMALLDATETIME est désapprouvée par Microsoft pour le lien je l'ai déjà posté.
c'est ce BOL dit quand obsolète msdn.microsoft.com/en-us/library/ms182776.aspx. Vous avez raison à propos de la norme, bien que pour smalldatetime
OriginalL'auteur Gerrie Schenck | 2011-04-11
Vous devez vous connecter pour publier un commentaire.
Il est généralement une bonne idée d'utiliser le plus petit type de données que vous avez besoin. Vous ne devriez pas utiliser de type varchar(max) ou même de type varchar(10) pour stocker un 2 état de caractère abréviation.
Dans le même sens, si vous avez juste besoin de la Date (par exemple, 4/11/2001) puis utiliser le type de Date, et non le type DateTime.
Alors qu'il pourrait ne pas être un énorme gain de performances (DateTime est de 5 octets de plus de la Date.)Il peut commencer à ajouter si vous avez de multiples domaines et/ou plusieurs lignes.
OriginalL'auteur taylonr
Différents types de données différents taille qui affecte taille des données/indices, ce qui est plus important que les performances des requêtes d'e/S (coût).
D'autre part la conversion entre les types de données qui pourrait être coûteux. En outre la conversion implicite entre les différents types de données peuvent être erronées ou inattendus.
Je voudrais garder un type de date (4 octets
smalldatetime
dans ce cas) si vous JOINTURE entre tables, sur les colonnes de date ou si pas de garder le plus possible la date de type --smalldatetime
pour le stockage des heures et des quarts et desdate
pour pur dates.OriginalL'auteur Grzegorz Gierlik
Malheureusement, dans le cas de
smalldatetime
, il a pour moi causé des problèmes lors de l'utilisation de la pca (copie en bloc) de l'utilitaire pour l'exportation/importation des opérations. BCP d'importation apparaît pas commesmalldatetime
champs (à moins qu'elles soient exportées par PCA). Version comme la fin de SQL Server 2008 et "d'origine" format dans le pca. Par conséquent, je serai à l'aide dedatetime
pour mon travail dans l'avenir, parce que j'aime être en mesure d'utiliser bcp pour déplacer les données.OriginalL'auteur Peter DeGregorio
Gamme
SmallDateTime: 1 - jan - 1900 à 6 - jun - 2079
DateTime : 1 - jan -1753 au 31 - Déc - 9999
Précision
SmallDateTime: Minutes
DateTime : Trois centième de seconde(3.33)
De stockage
SmallDateTime: 4 Octets
DateTime : 8 octets
OriginalL'auteur naresh vemavarapu
le vérifier, trop:
lorsque vous devez convertir de type varchar(max) dans un datetime:
résultats dans ce
ce une seconde après minuit disparu lors de la conversion à smalldatetime
OriginalL'auteur cjonas