Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment combiner la date d'un champ avec l'heure d'un autre champ - MS SQL Server

Vous pouvez simplement additionner les deux.

  • si la Time part de votre Date part colonne est toujours zéro
  • et la partie Date part de votre Time la colonne est aussi toujours zéro (date de base :1er janvier 1900)

Leur ajout renvoie le résultat correct.

SELECT Combined = MyDate + MyTime FROM MyTable

Justification (félicitations à ErikE/dnolan)

Cela fonctionne comme ceci en raison de la façon dont la date est stockée sous la forme de deux Integers de 4 octets les 4 octets de gauche étant la date et les 4 octets de droite étant le time . C'est comme faire $0001 0000 + $0000 0001 = $0001 0001

Modification concernant les nouveaux types SQL Server 2008

Date part et Time sont des types introduits dans SQL Server 2008 . Si vous insistez pour ajouter, vous pouvez utiliser Combined = CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME)

Edit2 concernant la perte de précision dans SQL Server 2008 et versions ultérieures (félicitations à Martin Smith)

Jetez un oeil à Comment combiner la date et l'heure à datetime2 dans SQL Server ? pour éviter toute perte de précision avec SQL Server 2008 et versions ultérieures.