Conversion SQL Server de chaîne / texte en date / date / heure – Bien choisir son serveur d impression

Author: Titanfall —

Short summary: Exécutez ce qui suit               Scripts T-SQL Microsoft SQL Server dans l’éditeur de requêtes Management Studio pour illustrer la conversion de chaîne en date (DATE, DATETIME, SMALLDATETIME). Lorsqu'une conversion implique un nom de mois ou de jour, elle est dépendante de la langue, donc non déterministe. La fonction week est également non déterministe car elle dépend […]

Quick overview

Site
Tutos GameServer
Canonical URL
https://tutos-gameserver.fr/2019/05/03/conversion-sql-server-de-chaine-texte-en-date-date-heure-bien-choisir-son-serveur-d-impression/
LLM HTML version
https://tutos-gameserver.fr/2019/05/03/conversion-sql-server-de-chaine-texte-en-date-date-heure-bien-choisir-son-serveur-d-impression/llm
LLM JSON version
https://tutos-gameserver.fr/2019/05/03/conversion-sql-server-de-chaine-texte-en-date-date-heure-bien-choisir-son-serveur-d-impression/llm.json
Manifest
https://tutos-gameserver.fr/llm-endpoints-manifest.json
Estimated reading time
9 minutes (535 seconds)
Word count
1783

Key points

Structured content

Exécutez ce qui suit               Scripts T-SQL Microsoft SQL Server dans l’éditeur de requêtes Management Studio pour illustrer la conversion de chaîne en date (DATE, DATETIME, SMALLDATETIME). Lorsqu'une conversion implique un nom de mois ou de jour, elle est dépendante de la langue, donc non déterministe. La fonction week est également non déterministe car elle dépend du premier réglage de date de la semaine (valeur par défaut dans la table sys.syslanguages ​​ou remplacement par SET DATEFIRST). UTILISATION AdventureWorks ENSEMBLE LA LANGUE us_english – Convertir une chaîne en date en utilisant des numéros de style (format) – Format de dates sql – SQL convertir le texte en date – SQL convertir la chaîne en date / date / heure SÉLECTIONNER convertir(date / heure,'15 / 03/18 ',3) – 2018-03-15 00: 00: 00.000 SÉLECTIONNER convertir(date / heure,'15 .03.18 ',4) – 2018-03-15 00: 00: 00.000 – Convertir date / heure en liste de style de texte (format) – format heure SQL – SQL Server sans styles de date siècle (AA) (il y a des exceptions!) – En général, l’ajout de 100 au numéro de style donne le format de siècle. AAAA / AAAA SÉLECTIONNER convertir(varchar,avoir un rendez-vous()) – 15 mars 2018 10:35 SÉLECTIONNER convertir(varchar,avoir un rendez-vous(),0) – 15 mars 2018 10:35 SÉLECTIONNER convertir(varchar,avoir un rendez-vous(),1) – 15/03/18 SÉLECTIONNER convertir(varchar,avoir un rendez-vous(),2) – 18.03.15 SÉLECTIONNER convertir(varchar,avoir un rendez-vous(),3) – 15/03/18 SÉLECTIONNER convertir(varchar,avoir un rendez-vous(),4) – 15.03.18 SÉLECTIONNER convertir(varchar,avoir un rendez-vous(),5) – 15-03-18 SÉLECTIONNER convertir(varchar,avoir un rendez-vous(),6) – 15 mars 18 SÉLECTIONNER convertir(varchar,avoir un rendez-vous(),7) – 15 et 18 mars SÉLECTIONNER convertir(varchar,avoir un rendez-vous(),8) – 10:39:39 SÉLECTIONNER convertir(varchar,avoir un rendez-vous(),9) – 15 mars 2018 10: 39: 48: 373AM SÉLECTIONNER convertir(varchar,avoir un rendez-vous(),dix) – 15/03/18 SÉLECTIONNER convertir(varchar,avoir un rendez-vous(),11) – 18/03/15 SÉLECTIONNER convertir(varchar,avoir un rendez-vous(),15) – 180315 SÉLECTIONNER convertir(varchar,avoir un rendez-vous(),13) – 15 mars 2018 10: 41: 07: 590 SÉLECTIONNER convertir(varchar,avoir un rendez-vous(),14) – 10: 41: 25: 903 SÉLECTIONNER convertir(varchar,avoir un rendez-vous(),20) – 2018-03-15 10:43:56 SÉLECTIONNER convertir(varchar,avoir un rendez-vous(),21) – 2018-03-15 10: 44: 04.950 SÉLECTIONNER convertir(varchar,avoir un rendez-vous(),22) – 15/03/18 10:44:50 AM SÉLECTIONNER convertir(varchar,avoir un rendez-vous(),23) – 2018-03-15 SÉLECTIONNER convertir(varchar,avoir un rendez-vous(),24) – 10:45:45 SÉLECTIONNER convertir(varchar,avoir un rendez-vous(),25) – 2018-03-15 10: 46: 11.263– T-SQL avec styles de date et heure (AAAA ou CCAA) SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 100) – 23 oct 2016 à 10:22 (ou PM) SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 101) – 23/10/2016 SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 102) – 2016.10.23 SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 103) – 23/10/2016 SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 104) – 23.10.2016 SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 105) – 23-10-2016 SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 106) – 23 octobre 2016 SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 107) – 23 octobre 2016 SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 108) – 09:10:34 SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 109) – 23 octobre 2016 11h10: 33h993 (ou PM) SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 110) – 23-10-2016 SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 111) – 2016/10/23 SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 112) – 20161023 SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 113) – 23 octobre 2016 06: 10: 55: 383 SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 114) – 06: 10: 55: 383 (24h) SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 120) – 2016-10-23 06:10:55 (24h) SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 121) – 2016-10-23 06: 10: 55.383 SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 126) – 2016-10-23T06: 10: 55.383 ALLER – Chaîne de conversion SQL en date-heure – Partie temporelle 0 – sql hh mm – Chaîne de transtypage SQL Server en DATE (fonctionnalité SQL Server 2008) – sql aaaa mm jj SÉLECTIONNER [Date] = JETER('20120228' COMME rendez-vous amoureux) – 2012-02-28 SÉLECTIONNER [Datetime] = JETER('20120228' COMME date / heure) – 2012-02-28 00: 00: 00.000 SÉLECTIONNER [Datetime] = JETER('20120228' COMME petit temps) – 2012-02-28 00:00:00

– Chaîne de conversion SQL en date-heure – partie temps – SQL Server convertit la chaîne en date – Format sql times SÉLECTIONNER [Datetime] = CONVERTIR(date / heure,'2010-02-28') SÉLECTIONNER [Datetime] = CONVERTIR(petit temps,'2010-02-28') SÉLECTIONNER [Datetime] = JETER('15 mars 2010' COMME date / heure) SÉLECTIONNER [Datetime] = JETER('15 mars 2010' COMME petit temps) SÉLECTIONNER [Datetime] = CONVERTIR(date / heure,'15 mars 2010') SÉLECTIONNER [Datetime] = CONVERTIR(petit temps,'15 mars 2010') SÉLECTIONNER [Datetime] = JETER('15 mars 2010 12: 07: 34.444' COMME date / heure) SÉLECTIONNER [Datetime] = JETER('15 mars 2010 12: 07: 34.444' COMME petit temps) SÉLECTIONNER [Datetime] = CONVERTIR(date / heure,'15 mars 2010 12: 07: 34.444') SÉLECTIONNER [Datetime] = CONVERTIR(petit temps,'15 mars 2010 12: 07: 34.444') SÉLECTIONNER [Datetime] = JETER('2010-02-28 12: 07: 34.444' COMME date / heure) SÉLECTIONNER [Datetime] = JETER('2010-02-28 12: 07: 34.444' COMME petit temps) SÉLECTIONNER [Datetime] = CONVERTIR(date / heure,'2010-02-28 12: 07: 34.444') SÉLECTIONNER [Datetime] = CONVERTIR(petit temps,'2010-02-28 12: 07: 34.444') – Double conversion SÉLECTIONNER [Datetime] = JETER(JETER(avoir un rendez-vous() COMME VARCHAR) COMME date / heure) SÉLECTIONNER [Datetime] = JETER(JETER(avoir un rendez-vous() COMME VARCHAR) COMME petit temps) SÉLECTIONNER [Datetime] = CONVERTIR(date / heure,convertir(varchar,avoir un rendez-vous())) SÉLECTIONNER [Datetime] = CONVERTIR(petit temps,convertir(varchar,avoir un rendez-vous())) ———— – MSSQL convertit la chaîne de date en date / heure – l'heure est définie sur 00: 00: 00.000 ou 12:00 AM IMPRESSION CONVERTIR(date / heure,'07 -10-2016 ',110) – 10 juillet 2016 00h00 IMPRESSION CONVERTIR(date / heure,'2016/07/10',111) – 10 juillet 2016 00h00 IMPRESSION CONVERTIR(varchar,CONVERTIR(date / heure,'20160710', 112),121) – 2016-07-10 00: 00: 00.000 ———— – Styles de date nommés sélectionnés DÉCLARER @DateTimeValue varchar(32) – À la mode américaine – Convertir une chaîne en datetime sql – sql convertir une chaîne en date / heure SÉLECTIONNER @DateTimeValue = '10 / 23/2016 ' SÉLECTIONNER StringDate=@DateTimeValue, [US-Style] = CONVERTIR(date / heure, @DatetimeValue) SÉLECTIONNER @DateTimeValue = '10 / 23/2016 23:01:05 ' SÉLECTIONNER StringDate = @DateTimeValue, [US-Style] = CONVERTIR(date / heure, @DatetimeValue) – Style britannique, anglais / français SÉLECTIONNER @DateTimeValue = '23 / 10/16 23:01:05 ' SÉLECTIONNER StringDate = @DateTimeValue, [UK-Style] = CONVERTIR(date / heure, @DatetimeValue, 3) SÉLECTIONNER @DateTimeValue = '23 / 10/2016 4:01 ' SÉLECTIONNER StringDate = @DateTimeValue, [UK-Style] = CONVERTIR(date / heure, @DatetimeValue, 103) – à la allemande SÉLECTIONNER @DateTimeValue = '23 .10.16 23:01:05 ' SÉLECTIONNER StringDate = @DateTimeValue, [German-Style] = CONVERTIR(date / heure, @DatetimeValue, 4) SÉLECTIONNER @DateTimeValue = '23 .10.2016 4:01 PM ' SÉLECTIONNER StringDate = @DateTimeValue, [German-Style] = CONVERTIR(date / heure, @DatetimeValue, 104) – Double conversion à l'US-Style 107 avec siècle: 23 oct. 2016 ENSEMBLE @DateTimeValue='10 / 23/16 ' SÉLECTIONNER StringDate=@DateTimeValue, [US-Style] = CONVERTIR(varchar, CONVERTIR(date / heure, @DateTimeValue),107) – paramètre SQL dateformat UTILISATION AdventureWorks2008; SÉLECTIONNER convertir(date / heure,'14 / 05/08 ') / * Msg 242, niveau 16, état 3, ligne 1 La conversion d’un type de données varchar en un type de données datetime a entraîné dans une valeur hors limites. * / ENSEMBLE FORMAT DE DATE ymd SÉLECTIONNER convertir(date / heure,'14 / 05/08 ') – 2014-05-08 00: 00: 00.000 – Définition de DATEFORMAT sur UK-Style ENSEMBLE FORMAT DE DATE dmy SÉLECTIONNER convertir(date / heure,'20 / 05/14 ') – 2014-05-20 00: 00: 00.000 – Définition de DATEFORMAT sur US-Style ENSEMBLE FORMAT DE DATE mdy SÉLECTIONNER convertir(date / heure,'05 / 20/14 ') – 2014-05-20 00: 00: 00.000 SÉLECTIONNER convertir(date / heure,'05 / 20/2014 ') – 2014-05-20 00: 00: 00.000ALLER

———— – Date et heure SQL éliminant les caractères de division ———— – MSSQL remplace la fonction de chaîne – concaténation de chaîne T-SQL (+) UTILISATION AdventureWorks2008; SÉLECTIONNER remplacer(convertir(VARCHAR(dix),avoir un rendez-vous(),102),'.','') – 20120315 SÉLECTIONNER remplacer(convertir(VARCHAR(dix),avoir un rendez-vous(),111),'/','') – 20120315 – SQL triple remplacer SÉLECTIONNER remplacer(remplacer(remplacer(convertir(VARCHAR(25), avoir un rendez-vous(),20),'-',''), ':',''),'','') – 20120529090427 – T-SQL concaténant à partir d'une conversion de date et d'heure SÉLECTIONNER remplacer(convertir(VARCHAR(dix),avoir un rendez-vous(),111),'/','') + remplacer(convertir(VARCHAR(8),avoir un rendez-vous(),108),':','') – 20120315085654

———— – Conversion de dates de chaîne à partir d'une table ————

– Créer et remplir une table de test avec une date de chaîne UTILISATION tempdb; SÉLECTIONNER DepartmentID, Dernière mise à jour=CONVERTIR(varchar, dateadd(journée, DepartmentID, Date modifiée),100) DANS DeptInfo DE AdventureWorks.Ressources humaines.département SÉLECTIONNER * DE DeptInfo / * Résultats partiels DepartmentID LastUpdate 1 juin 2 1998 00h00 2 juin 3 1998 00h00 * / – Convertir une colonne de date de chaîne en date / heure SÉLECTIONNER DepartmentID, DernierChangeDate=convertir(date / heure, Dernière mise à jour) DE DeptInfo / * Résultats partiels DepartmentID LastChangeDate 1 1998-06-02 00: 00: 00.000 2 1998-06-03 00: 00: 00.000 * / LAISSEZ TOMBER TABLE DeptInfo ALLER ————————————————– —– – Date et heure de la chaîne de caractères ensemble et séparément————————————————– —– – Chaîne de conversion SQL en date-heure SÉLECTIONNER JETER('20100315 16:40:31' COMME date / heure) – Résultat: 2010-03-15 16: 40: 31.000

– Chaîne de conversion SQL à date – heure partie 0 SÉLECTIONNER JETER('20100315' COMME date / heure) – Résultat: 2010-03-15 00: 00: 00.000

– Chaîne de conversion SQL en heure – date partie 1900-01-01 SÉLECTIONNER JETER('16: 40: 31 ' COMME petit temps) – Résultat: 1900-01-01 16:41:00 ———— – SQL DATEDIFF avec la date de chaîne ———— DÉCLARER @sdate varchar(dix) ENSEMBLE @sdate = '2010/03/15' – DATEDIFF (delta) entre deux dates en mois SÉLECTIONNER AVOIR UN RENDEZ-VOUS(), DATE DIFF (MOIS, AVOIR UN RENDEZ-VOUS(), @sdate) SÉLECTIONNER AVOIR UN RENDEZ-VOUS(), DATE DIFF (MOIS, AVOIR UN RENDEZ-VOUS(), JETER(@sdate comme date / heure)) SÉLECTIONNER AVOIR UN RENDEZ-VOUS(), DATE DIFF (MOIS, AVOIR UN RENDEZ-VOUS(), CONVERTIR(date / heure,@sdate)) SÉLECTIONNER AVOIR UN RENDEZ-VOUS(), DATE DIFF (MOIS, AVOIR UN RENDEZ-VOUS(), CONVERTIR(date / heure,@sdate,111)) – Résultats de l'entreprise pour ci-dessus: 2008-12-29 11: 04: 51.097 15 – Conversion SQL en date-heure avec un style incorrect (111 corrects, 112 incorrects) SÉLECTIONNER AVOIR UN RENDEZ-VOUS(), DATE DIFF (MOIS, AVOIR UN RENDEZ-VOUS(), CONVERTIR(date / heure,@sdate,112)) /* ERREUR Msg 241, Niveau 16, Etat 1, Ligne 11 La conversion a échoué lors de la conversion de la date et / ou de l'heure d'une chaîne de caractères. * / ———— ———— – Instructions pour la recherche de chaînes de date SQL Server – Comparaison de dates ———— – Date égal recherche DÉCLARER @ Date1 date / heure, @ Date2 date / heure, @ Date3 date / heure ENSEMBLE @ Date1 = '2012-01-01' ENSEMBLE @ Date2 = '2012-01-01 00: 00: 00.000' ENSEMBLE @ Date3 = '2012-01-01 11:00' SÉLECTIONNER @ Date1, @ Date2, @ Date3 – Date-only @ Date1 est traduit en date-heure – 2012-01-01 00: 00: 00.000 2012-01-01 00: 00: 00.000 2012-01-01 11: 00: 00.000 – Ce qui suit est une comparaison date-heure, pas une comparaison avec date uniquement SI (@ Date1 = @ Date2) IMPRESSION 'ÉGAL' AUTRE IMPRESSION 'INÉGAL' – EQUAL – Le test d'égalité échoue parce que les parties temporelles sont différentes SI (@ Date1 = @ Date3) IMPRESSION 'ÉGAL' AUTRE IMPRESSION 'INÉGAL' — INÉGAL – La date de chaîne convertie implicitement en date / heure pour le test d'égalité SI ('2012-01-01' = @ Date3) IMPRESSION 'ÉGAL' AUTRE IMPRESSION 'INÉGAL' — INÉGAL – Un moyen sûr de rechercher une date spécifique SÉLECTIONNER COMPTER(*) DE AdventureWorks.Ventes.SalesOrderHeader OÙ '2004/02/01' = CONVERTIR(varchar, Date de commande,111) – 244 — Équivalent à SÉLECTIONNER COMPTER(*) DE AdventureWorks.Ventes.SalesOrderHeader OÙ Date de commande ENTRE '2004/02/01 00: 00: 00.000' ET '2004/02/01 23: 59: 59.997' – 244 – Moyen sûr de rechercher une plage de dates spécifique SÉLECTIONNER COMPTER(*) DE AdventureWorks.Ventes.SalesOrderHeader OÙ CONVERTIR(varchar, Date de commande,111) ENTRE '2004/02/01' ET '2004/02/14' – 1059 — Équivalent à SÉLECTIONNER COMPTER(*) DE AdventureWorks.Ventes.SalesOrderHeader OÙ Date de commande ENTRE '2004/02/01 00: 00: 00.000' ET '2004/02/14 23: 59: 59.997' – 1059 SÉLECTIONNER COMPTER(*) DE AdventureWorks.Ventes.SalesOrderHeader OÙ Date de commande > = '2004/02/01 00: 00: 00.000' ET Date de commande < '2004/02/15 00: 00: 00.000' – 1059 ———— ———— – SQL Server convertit une chaîne en smalldatetime ———— – Conversion T-SQL du format mm / jj / aaaa au format smalldatetime SÉLECTIONNER CONVERTIR(petit temps, '10 / 23/2016 ', 101) – 2016-10-23 00:00:00 – MSSQL convertir du format jj / mm / aaaa au format smalldatetime SÉLECTIONNER CONVERTIR(petit temps, '23 / 10/2016 ', 103) – 2016-10-23 00:00:00 – Le 23ème mois est hors limites SÉLECTIONNER CONVERTIR(petit temps, '23 / 10/2016 ', 101) / * Msg 242, niveau 16, état 3, ligne 1 La conversion d'un type de données varchar en un type de données smalldatetime a entraîné dans une valeur hors limites. * / ———— – Traduire / convertir chaîne / texte heures et minutes en secondes ———— DÉCLARER @TimeStr varchar(16) = '20: 49: 30 ' SÉLECTIONNER PARSENAME(REMPLACER(@TimeStr,':','.'),1) + PARSENAME(REMPLACER(@TimeStr,':','.'),2) * 60 + PARSENAME(REMPLACER(@TimeStr,':','.'),3) * 3600 – 74970 ————

— Articles Liés: http://sqlusa.com/bestpractices/datetimeconversion/ CAST et CONVERT (Transact-SQL) 10 raisons de convertir explicitement les types de données SQL Server

Click to rate this post! [Total: 0 Average: 0]

Topics and keywords

Themes: Serveur d'impression

License & attribution

License: CC BY-ND 4.0.

Attribution required: yes.

Manifest: https://tutos-gameserver.fr/llm-endpoints-manifest.json

LLM Endpoints plugin version 1.1.2.