Maison >base de données >tutoriel mysql >Comment puis-je combiner des colonnes de date et d'heure distinctes en une seule colonne DateTime dans MS SQL Server ?
De nombreuses conceptions de bases de données stockent les informations de date et d’heure sur deux colonnes distinctes. Ce guide explique comment les combiner efficacement en une seule datetime
colonne dans MS SQL Server.
En supposant que votre colonne « Date » contient uniquement des valeurs de date (la partie heure est nulle) et que votre colonne « Heure » ne contient que des valeurs temporelles (la partie date est le 1er janvier 1900), une simple opération d'addition fonctionne étonnamment :
<code class="language-sql">SELECT CombinedDateTime = MyDate + MyTime FROM MyTable;</code>
Cet ajout apparemment simple exploite la représentation interne des datetime
valeurs dans les anciennes versions de SQL Server. Chaque valeur datetime
est stockée sous forme de deux entiers de 4 octets : un pour la date et un pour l'heure. Leur ajout effectue une combinaison au niveau du bit, ce qui donne une seule datetime
valeur.
Pour SQL Server 2008 et versions ultérieures, les types de données DATE
et TIME
ont été introduits, aux côtés de DATETIME
et DATETIME2
. L'ajout direct ne s'applique plus. Pour combiner DATE
et TIME
dans ces versions plus récentes, un casting explicite vers DATETIME
est crucial :
<code class="language-sql">SELECT CombinedDateTime = CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME) FROM MyTable;</code>
De plus, l'ajout direct de valeurs datetime2
peut entraîner une perte de précision. Pour garantir l'exactitude, convertissez en DATETIME
avant de combiner :
<code class="language-sql">SELECT CombinedDateTime = CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME) FROM MyTable;</code>
Cette approche garantit une combinaison précise et fiable de vos composants date et heure dans une seule datetime
colonne, quelle que soit votre version de SQL Server.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!