{"id":415,"date":"2012-05-15T00:00:52","date_gmt":"2012-05-15T00:00:52","guid":{"rendered":"http:\/\/www.sqlserver.fr\/blog\/?p=415"},"modified":"2026-05-02T14:31:14","modified_gmt":"2026-05-02T12:31:14","slug":"format-des-dates-dans-les-scripts-generes","status":"publish","type":"post","link":"https:\/\/www.sqlserver.fr\/blog\/format-des-dates-dans-les-scripts-generes\/","title":{"rendered":"Format des dates dans les scripts g\u00e9n\u00e9r\u00e9s"},"content":{"rendered":"<p>Lorsqu&rsquo;il est n\u00e9cessaire de copier des donn\u00e9es depuis une base vers une autre, un m\u00e9thode pratique consiste \u00e0 utiliser le g\u00e9n\u00e9rateur de scripts, disponible depuis la version SQL Server 2005 et surtout capable de g\u00e9n\u00e9rer depuis SQL Server 2008 non seulement les scripts des structures mais aussi de g\u00e9n\u00e9rer les instructions de remplissage des tables.<\/p>\n<p>Mais avez-vous d\u00e9j\u00e0 cherch\u00e9 \u00e0 regarder \u00e0 quoi ressemble le script g\u00e9n\u00e9r\u00e9 lorsque les donn\u00e9es \u00e0 copier sont de type de date et d&rsquo;heure ?<\/p>\n<p><!--more--><\/p>\n<p>Reprenons tout d&rsquo;abord le contexte. Supposons que nous ayons \u00e0 g\u00e9n\u00e9rer un script pour copier des donn\u00e9es depuis un table quelconque vers une autre base. Pour cela, nous avons un magnifique menu contextuel, hautement configurable.<\/p>\n<p><a href=\"https:\/\/www.sqlserver.fr\/blog\/wp-content\/uploads\/2012\/05\/ContextMenu.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-435\" title=\"ContextMenu\" src=\"https:\/\/www.sqlserver.fr\/blog\/wp-content\/uploads\/2012\/05\/ContextMenu.png\" alt=\"\" width=\"534\" height=\"534\" srcset=\"https:\/\/www.sqlserver.fr\/blog\/wp-content\/uploads\/2012\/05\/ContextMenu.png 534w, https:\/\/www.sqlserver.fr\/blog\/wp-content\/uploads\/2012\/05\/ContextMenu-150x150.png 150w, https:\/\/www.sqlserver.fr\/blog\/wp-content\/uploads\/2012\/05\/ContextMenu-300x300.png 300w\" sizes=\"auto, (max-width: 534px) 100vw, 534px\" \/><\/a><\/p>\n<p>Je ne vais pas ici d\u00e9tailler les d\u00e9tailler les diff\u00e9rentes possibilit\u00e9s et options de cette fonctionnalit\u00e9, il y en a plus que ce qu&rsquo;il serait raisonnable de d\u00e9tailler dans un article. Pour ceux qui veulent en savoir un peu plus, je vous invite \u00e0 regarder <a title=\"Assistant G\u00e9n\u00e9rer et publier des scripts\" href=\"https:\/\/docs.microsoft.com\/fr-fr\/previous-versions\/sql\/sql-server-2008-r2\/ee240853(v=sql.105)\" target=\"_blank\" rel=\"noopener noreferrer\">ici<\/a>.<\/p>\n<p>Nous allons ici juste nous concentrer sur le comportement de ce g\u00e9n\u00e9rateur de scripts pour les colonnes de type datetime. En effet, la traduction entre cha\u00eenes de caract\u00e8res (utilisables dans les scripts) et les dates-heures est toujours tr\u00e8s probl\u00e9matique, car fortement li\u00e9 aux pr\u00e9f\u00e9rences linguistiques de l&rsquo;utilisateur ex\u00e9cutant le script.<\/p>\n<p>Le choix des \u00e9quipes de d\u00e9veloppement est d&rsquo;utiliser une autre pr\u00e9sentation des valeurs de type datetime, \u00e0 savoir le format binaire.<\/p>\n<p><a href=\"https:\/\/www.sqlserver.fr\/blog\/wp-content\/uploads\/2012\/05\/Insert.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-437\" title=\"Insert\" src=\"https:\/\/www.sqlserver.fr\/blog\/wp-content\/uploads\/2012\/05\/Insert-620x282.png\" alt=\"\" width=\"620\" height=\"282\" srcset=\"https:\/\/www.sqlserver.fr\/blog\/wp-content\/uploads\/2012\/05\/Insert-620x282.png 620w, https:\/\/www.sqlserver.fr\/blog\/wp-content\/uploads\/2012\/05\/Insert-300x136.png 300w, https:\/\/www.sqlserver.fr\/blog\/wp-content\/uploads\/2012\/05\/Insert.png 1357w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<p>Ce format permet de s&rsquo;adapter directement au type de donn\u00e9es. Le tableau suivant montre le lien presque bijectif entre le caract\u00e9ristiques de la valeur binaire (longueur et \u00e9ventuellement premier octet) et le type de donn\u00e9es correspondant. Une colonne compl\u00e9mentaire montre l&rsquo;espace de stockage de la valeur tel qu&rsquo;indiqu\u00e9 dans l&rsquo;aide en ligne.<\/p>\n<table border=\"0\">\n<tbody>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\"><strong>Type de donn\u00e9e<\/strong><\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\"><strong>Espace de stockage (BOL)<\/strong><\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\"><strong>Exemple de donn\u00e9e<\/strong><\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\"><strong>Longueur de la conversion<\/strong><\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\"><strong>Premier octet compl\u00e9mentaire<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">date<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">3<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0xA9350B<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">3<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">datetime<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">8<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x0000A04E0180461D<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">8<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">datetime2(0)<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">6<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x00EA4701A9350B<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">7<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x00<\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">datetime2(1)<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">6<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x0123CF0CA9350B<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">7<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x01<\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">datetime2(2)<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">6<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x025F1780A9350B<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">7<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x02<\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">datetime2(3)<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">7<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x03B5E90005A9350B<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">8<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x03<\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">datetime2(4)<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">7<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x0417210932A9350B<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">8<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x04<\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">datetime2(5)<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">8<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x05E44A5BF401A9350B<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">9<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x05<\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">datetime2(6)<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">8<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x06ECEC908B13A9350B<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">9<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x06<\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">datetime2(7)<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">8<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x073B41A973C3A9350B<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">9<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x07<\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">datetimeoffset(0)<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">8<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x00EA4701A9350B0000<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">9<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x00<\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">datetimeoffset(1)<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">8<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x0123CF0CA9350B0000<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">9<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x01<\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">datetimeoffset(2)<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">8<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x025F1780A9350B0000<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">9<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x02<\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">datetimeoffset(3)<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">9<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x03B5E90005A9350B0000<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">10<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x03<\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">datetimeoffset(4)<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">9<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x0417210932A9350B0000<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">10<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x04<\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">datetimeoffset(5)<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">10<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x05E44A5BF401A9350B0000<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">11<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x05<\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">datetimeoffset(6)<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">10<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x06ECEC908B13A9350B0000<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">11<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x06<\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">datetimeoffset(7)<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">10<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x073B41A973C3A9350B0000<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">11<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x07<\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">smalldatetime<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">4<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0xA04E0577<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">4<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\"><\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">time(0)<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">3<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x00EA4701<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">4<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x00<\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">time(1)<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">3<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x0123CF0C<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">4<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x01<\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">time(2)<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">3<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x025F1780<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">4<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x02<\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">time(3)<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">4<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x03B5E90005<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">5<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x03<\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">time(4)<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">4<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x0417210932<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">5<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x04<\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">time(5)<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">5<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x05E44A5BF401<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">6<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x05<\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">time(6)<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">5<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x06ECEC908B13<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">6<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x06<\/td>\n<\/tr>\n<tr>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">time(7)<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">5<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x073B41A973C3<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">6<\/td>\n<td style=\"border-width: 1px; border-color: #000000; border-style: solid;\" align=\"center\" valign=\"middle\">0x07<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Les types de donn\u00e9es comportant un param\u00e8tre de pr\u00e9cision ajoutent un premier octet en plus de ce qui est r\u00e9ellement stock\u00e9. Cet octet permet notamment d&#8217;emp\u00eacher de chercher \u00e0 stocker de mani\u00e8re involontaire une valeur directement sous forme binaire sans en fait ma\u00eetriser la valeur &lsquo;fonctionnelle&rsquo;.<\/p>\n<p>On remarque d&rsquo;apr\u00e8s ce tableau que la longueur du binaire, \u00e9ventuellement coupl\u00e9e avec un premier octet compl\u00e9mentaire, permet dans presque tous les cas, de d\u00e9terminer de mani\u00e8re unique le type de donn\u00e9es, ce qui verrouille la transformation en int\u00e9grant\u00a0en quelque sorte le type de donn\u00e9es d\u00e8s la valeur binaire elle-m\u00eame.<\/p>\n<p>Les seules combinaisons pouvant potentiellement ne pas indiquer sans ambigu\u00eft\u00e9 le type de donn\u00e9es sont:<\/p>\n<ul>\n<li>longueur 8 : ambigu\u00eft\u00e9 entre datetime et datetime(3) \/ datetime(4). Ce cas est g\u00e9r\u00e9 par le fait que le premier octet du stockage d&rsquo;une valeur datetime ne peut pas \u00eatre sup\u00e9rieure ou \u00e9gale \u00e0 3, car cela d\u00e9passerait la plage de valeurs du type datetime. Il n&rsquo;y a donc pas de probl\u00e8me ici.<\/li>\n<li>longueur 4 : ambigu\u00eft\u00e9 entre smalldatetime et time(0) \/ time(1) \/ time(2). Dans ce cas, il peut par par contre y avoir un r\u00e9el m\u00e9lange de valeurs, c&rsquo;est-\u00e0-dire par exemple qu&rsquo;un binaire descriptif de smalldatetime peut \u00eatre parfaitement identique \u00e0 un binaire descriptif de time(0).<\/li>\n<\/ul>\n<p><span style=\"line-height: 19px;\"><a href=\"https:\/\/www.sqlserver.fr\/blog\/wp-content\/uploads\/2012\/05\/Ambigu.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-440\" title=\"Ambigu\" src=\"https:\/\/www.sqlserver.fr\/blog\/wp-content\/uploads\/2012\/05\/Ambigu.png\" alt=\"\" width=\"498\" height=\"419\" srcset=\"https:\/\/www.sqlserver.fr\/blog\/wp-content\/uploads\/2012\/05\/Ambigu.png 498w, https:\/\/www.sqlserver.fr\/blog\/wp-content\/uploads\/2012\/05\/Ambigu-300x252.png 300w\" sizes=\"auto, (max-width: 498px) 100vw, 498px\" \/><\/a><\/span><\/p>\n<p>Mais cette ambigu\u00eft\u00e9 n&rsquo;est qu&rsquo;anecdotique car le g\u00e9n\u00e9rateur de script positionne des conversions explicites dans le script.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\">INSERT [dbo].[MaTable] ([Id], [Chaine], [DateModif])\r\n\tVALUES (1, N'Donne chane', CAST(0x0000A04F012FA275 AS DateTime))<\/pre>\n<p>Voici donc pour une br\u00e8ve pr\u00e9sentation de la conversion entre valeurs binaires et types de donn\u00e9es de date et d&rsquo;heure, et pour leur utilisation dans la g\u00e9n\u00e9ration de scripts d&rsquo;insertion de donn\u00e9es. Certes, ce n&rsquo;est pas forc\u00e9ment facilement \u00e9ditable (pour modifier les dates), mais en m\u00eame temps, ce n&rsquo;est pas n\u00e9cessairement le but&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lorsqu&rsquo;il est n\u00e9cessaire de copier des donn\u00e9es depuis une base vers une autre, un m\u00e9thode pratique consiste \u00e0 utiliser le g\u00e9n\u00e9rateur de scripts, disponible depuis la version SQL Server 2005 et surtout capable de g\u00e9n\u00e9rer depuis SQL Server 2008 non &hellip; <a href=\"https:\/\/www.sqlserver.fr\/blog\/format-des-dates-dans-les-scripts-generes\/\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-415","post","type-post","status-publish","format-standard","hentry","category-article_sql"],"_links":{"self":[{"href":"https:\/\/www.sqlserver.fr\/blog\/wp-json\/wp\/v2\/posts\/415","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqlserver.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlserver.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlserver.fr\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlserver.fr\/blog\/wp-json\/wp\/v2\/comments?post=415"}],"version-history":[{"count":19,"href":"https:\/\/www.sqlserver.fr\/blog\/wp-json\/wp\/v2\/posts\/415\/revisions"}],"predecessor-version":[{"id":1955,"href":"https:\/\/www.sqlserver.fr\/blog\/wp-json\/wp\/v2\/posts\/415\/revisions\/1955"}],"wp:attachment":[{"href":"https:\/\/www.sqlserver.fr\/blog\/wp-json\/wp\/v2\/media?parent=415"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlserver.fr\/blog\/wp-json\/wp\/v2\/categories?post=415"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlserver.fr\/blog\/wp-json\/wp\/v2\/tags?post=415"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}