Serveur d'impression

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

Par Titanfall , le 3 mai 2019 - 10 minutes de lecture

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.000
ALLER

————

– 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

'2004/02/01' = CONVERTIR(varchar, Date de commande,111)

– 244

— Équivalent à

SÉLECTIONNER COMPTER(*) DE AdventureWorks.Ventes.SalesOrderHeader

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

CONVERTIR(varchar, Date de commande,111) ENTRE '2004/02/01' ET '2004/02/14'

– 1059

— Équivalent à

SÉLECTIONNER COMPTER(*) DE AdventureWorks.Ventes.SalesOrderHeader

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

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]

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.