Fusionner les champs de date et d'heure dans MS SQL Server
Lorsque vous travaillez avec des données contenant des colonnes de date et d'heure distinctes, vous devez les fusionner en un seul champ datetime. Cet article explique comment y parvenir dans MS SQL Server.
Utilisez un remplissage nul pour fusionner des champs
Si la composante heure de la colonne "Date" est entièrement nulle et que la composante date de la colonne "Heure" est entièrement nulle (c'est-à-dire date de base : 1er janvier 1900), nous pouvons simplement les additionner pour obtenir le résultat correct. :
<code class="language-sql">SELECT Combined = MyDate + MyTime FROM MyTable</code>
Cela fonctionne car la date et l'heure sont stockées sous forme de deux entiers de 4 octets, les 4 octets de gauche représentant la date et les 4 octets de droite représentant l'heure. En les additionnant, nous combinons efficacement les composants de date et d’heure.
Fusionner les champs à l'aide des types SQL Server 2008
Dans SQL Server 2008 et versions ultérieures, les types de données Date et Heure ont été introduits. Si vous utilisez ces types, vous pouvez les ajouter en les convertissant en datetime :
<code class="language-sql">SELECT Combined = CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME) FROM MyTable</code>
Empêcher la perte de précision
Dans SQL Server 2008 et versions ultérieures, l'ajout de valeurs de date et d'heure peut entraîner une perte de précision. Pour éviter cela, l'une des valeurs doit être promue au type datetime2 à l'aide de la fonction CONVERT :
<code class="language-sql">SELECT Combined = CONVERT(datetime2, MyDate) + MyTime FROM MyTable</code>
En suivant ces méthodes, vous pouvez combiner efficacement les colonnes de date et d'heure en un seul champ datetime dans MS SQL Server, quel que soit le type de données utilisé.
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!