Format de date et heure SQL Server avec Century – Bien choisir son serveur d impression
Exécutez les scripts de formatage de date / heure Microsoft SQL Server T-SQL suivants dans l'éditeur de requêtes Management Studio pour illustrer l'utilisation de la multitude de formats de données temporels disponibles et l'application des fonctions date / date / heure.
– Obtenir la date uniquement à partir de la date / heure – SYNTAXE RAPIDE
SÉLECTIONNER DATEADD(jj, 0, DATE DIFF(jj, 0, CURRENT_TIMESTAMP)) – 2016-10-23 00: 00: 00.000
————
– Formats de date et de date et heure de SQL Server T-SQL – Calendrier grégorien – Calendrier chrétien
– getdate () / CURRENT_TIMESTAMP (ANSI) renvoie la date et l'heure du système au format standard
– Formats SQL date / heure avec siècle (format YYYY ou CCYY) – Format sql date et heure
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 100) – lundi jj aaaa hh: mmAM (ou PM) – 2 oct 2010 11:01
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 101) – mm / jj / aaaa – 10/02/2010
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 102) – aaaa.mm.jj – 2010.10.02
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 103) – jj / mm / aaaa
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 104) – jj.mm.aaaa
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 105) – jj-mm-aaaa
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 106) – dd mon yyyy
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 107) – mon dd, yyyy
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 108) – hh: mm: ss
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 109) – lundi jj aaaa hh: mm: ss: mmmAM (ou PM)
– 2 oct 2010 11: 02: 44: 013AM
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 110) – mm-jj-aaaa
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 111) – aaaa / mm / jj
– aaaammjj – Format de date ISO – Norme internationale – Fonctionne avec n’importe quel paramètre de langue
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 112) – aaaammjj
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 113) – jj lundi aaaa hh: mm: ss: mmm
– 02 oct 2010 11: 02: 07: 577
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 114) – hh: mm: ss: mmm (24h)
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 120) – aaaa-mm-jj hh: mm: ss (24h)
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 121) – aaaa-mm-jj hh: mm: ss.mmm
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 126) – aaaa-mm-jjThh: mm: ss.mmm – ISO8601
– 2010-10-02T10: 52: 47.513
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 127) – aaaa-mm-jjThh: mm: ss.mmmZ – avec fuseau horaire
SÉLECTIONNER convertir(nvarchar (64), avoir un rendez-vous(), 130) – Date du hijri arabe
– 29 juin 1433 1: 13: 04: 633AM:
SÉLECTIONNER convertir(Nvarchar, avoir un rendez-vous(), 131) – Date du hijri arabe – Calendrier islamique
– 29/05/1433 12: 57: 26: 690 AM
– Sans la conversion date / date heure (YY) – il y a des exceptions!
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 0) – lundi jj aaaa hh: mmAM (ou PM)
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 1) – mm / jj / aa
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 2) – aa.mm.jj
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 3) – jj / mm / aa
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 4) – jj.mm.aa
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 5) – jj-mm-aa
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 6) – jj mon yy
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 7) – mon dd, yy
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 8) – hh: mm: ss
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 9) – lundi jj aaaa hh: mm: ss: mmmAM (ou PM)
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), dix) – mm-jj-aa
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 11) – aa / mm / jj
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 12) – yymmdd
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 13) – jj lundi aaaa hh: mm: ss: mmm
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 14) – hh: mm: ss: mmm (24h)
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 20) – aaaa-mm-jj hh: mm: ss (24h)
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 21) – aaaa-mm-jj hh: mm: ss.mmm
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 22) – mm / jj / aa hh: mm: ss AM (ou PM)
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 23) – aaaa-mm-jj
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 24) – hh: mm: ss
SÉLECTIONNER convertir(varchar, avoir un rendez-vous(), 25) – aaaa-mm-jj hh: mm: ss.mmm
– SQL crée différents styles de date avec des fonctions de chaîne t-sql
SÉLECTIONNER remplacer(convertir(varchar, avoir un rendez-vous(), 111), '/', '') – aaaa mm jj
SÉLECTIONNER convertir(varchar(7), avoir un rendez-vous(), 126) – aaaa-mm
SÉLECTIONNER droite(convertir(varchar, avoir un rendez-vous(), 106), 8) – mon aaaa
SÉLECTIONNER sous-chaîne(convertir(varchar, avoir un rendez-vous(), 120),6, 11) – mm-jj hh: mm
———-
– Calcul de minuit actuel (aujourd'hui) – Suppression de la partie heure de datetime
– Date d'aujourd'hui sans heure – date-heure sans heure
DÉCLARER @CurrentMidnight date / heure =
dateadd(journée, daté(journée,0, CURRENT_TIMESTAMP), 0)
SÉLECTIONNER @CurrentMidnight
– 2012-03-15 00: 00: 00.000
———-
————
– Fonction de formatage de date SQL Server – convertir une date / heure en chaîne
————
– Fonctions datetime SQL – Fonctions dattes SQL – Formatage datetime SQL Server
– Dates de conversion T-SQL – Formats de date T-SQL – Formats de date Transact-SQL
CRÉER UNE FONCTION dbo.fnFormatDate (@Datetime DATETIME, @FormatMask VARCHAR(32))
RÉSULTATS VARCHAR(32)
COMME
COMMENCER
DÉCLARER @StringDate VARCHAR(32)
ENSEMBLE @StringDate = @FormatMask
SI (CHARINDEX ('AAAA',@StringDate) > 0)
ENSEMBLE @StringDate = REMPLACER(@StringDate, 'AAAA', DATENAME(AA, @Datetime))
SI (CHARINDEX ('YY',@StringDate) > 0)
ENSEMBLE @StringDate = REMPLACER(@StringDate, 'YY', DROITE(DATENAME(AA, @Datetime),2))
SI (CHARINDEX ('Mois',@StringDate) > 0)
ENSEMBLE @StringDate = REMPLACER(@StringDate, 'Mois', DATENAME(MM, @Datetime))
SI (CHARINDEX ('LUN',@StringDate COLLATIONNER SQL_Latin1_General_CP1_CS_AS)>0)
ENSEMBLE @StringDate = REMPLACER(@StringDate, 'LUN',
LA GAUCHE(PLUS HAUT(DATENAME(MM, @Datetime)),3))
SI (CHARINDEX ('Lun',@StringDate) > 0)
ENSEMBLE @StringDate = REMPLACER(@StringDate, 'Lun', LA GAUCHE(DATENAME(MM, @Datetime),3))
SI (CHARINDEX ('MM',@StringDate) > 0)
ENSEMBLE @StringDate = REMPLACER(@StringDate, 'MM',
DROITE('0'+CONVERTIR(VARCHAR,DATEPART(MM, @Datetime)),2))
SI (CHARINDEX ('M',@StringDate) > 0)
ENSEMBLE @StringDate = REMPLACER(@StringDate, 'M',
CONVERTIR(VARCHAR,DATEPART(MM, @Datetime)))
SI (CHARINDEX ('DD',@StringDate) > 0)
ENSEMBLE @StringDate = REMPLACER(@StringDate, 'DD',
DROITE('0'+DATENAME(DD, @Datetime),2))
SI (CHARINDEX ('RÉ',@StringDate) > 0)
ENSEMBLE @StringDate = REMPLACER(@StringDate, 'RÉ', DATENAME(DD, @Datetime))
REVENIR @StringDate
FIN
ALLER
– Test de la fonction de format de date Microsoft SQL Server – Date de formatage MSSQL – Date et heure SQL
SÉLECTIONNER dbo.fnFormatDate (avoir un rendez-vous(), 'MM / JJ / AAAA') – 01/03/2012
SÉLECTIONNER dbo.fnFormatDate (avoir un rendez-vous(), 'JJ / MM / AAAA') – 03/01/2012
SÉLECTIONNER dbo.fnFormatDate (avoir un rendez-vous(), 'M / JJ / AAAA') – 1/03/2012
SÉLECTIONNER dbo.fnFormatDate (avoir un rendez-vous(), 'M / D / YYYY') – 1/3/2012
SÉLECTIONNER dbo.fnFormatDate (avoir un rendez-vous(), 'M / D / YY') – 1/3/12
SÉLECTIONNER dbo.fnFormatDate (avoir un rendez-vous(), 'MM / JJ / AA') – 01/03/12
SÉLECTIONNER dbo.fnFormatDate (avoir un rendez-vous(), 'MON JJ, AAAA') – 03 JAN 2012
SÉLECTIONNER dbo.fnFormatDate (avoir un rendez-vous(), 'Mon JJ, AAAA') – 03 janvier 2012
SÉLECTIONNER dbo.fnFormatDate (avoir un rendez-vous(), 'Mois JJ, AAAA') – 03 janvier 2012
SÉLECTIONNER dbo.fnFormatDate (avoir un rendez-vous(), 'AAAA / MM / JJ') – 2012/01/03
SÉLECTIONNER dbo.fnFormatDate (avoir un rendez-vous(), 'AAAAMMJJ') – 20120103
SÉLECTIONNER dbo.fnFormatDate (avoir un rendez-vous(), 'AAAA-MM-JJ') – 2012-01-03
– CURRENT_TIMESTAMP renvoie la date et l'heure actuelles du système au format interne standard
SÉLECTIONNER dbo.fnFormatDate (CURRENT_TIMESTAMP,'YY.MM.DD') – 12.01.03
————
– Convertir la date en format entier
DÉCLARER @rendez-vous amoureux comme DATETIME = CURRENT_TIMESTAMP;
SÉLECTIONNER CONVERTIR(int, CONVERTIR(carboniser(8), @rendez-vous amoureux, 112)) COMME DateInt
– 20120312
————
/ ***** FORMATS SQL DE DATE / DATETIME SQL SÉLECTIONNÉS ***** /
– Format SQL date / heure – – sql hh mm ss – sql aaaa mm jj
– Format par défaut: 23 oct 2006 10 h 40
SÉLECTIONNER [Default]=CONVERTIR(varchar,AVOIR UN RENDEZ-VOUS(),100)
– Format américain: 10/23/2006
SÉLECTIONNER [US-Style]=CONVERTIR(carboniser,AVOIR UN RENDEZ-VOUS(),101)
– Format ANSI: 2006.10.23
SÉLECTIONNER [ANSI]=CONVERTIR(carboniser,CURRENT_TIMESTAMP,102)
– Format UK-Style: 23/10/2006
SÉLECTIONNER [UK-Style]=CONVERTIR(carboniser,AVOIR UN RENDEZ-VOUS(),103)
– format allemand: 23.10.2006
SÉLECTIONNER [German]=CONVERTIR(varchar,AVOIR UN RENDEZ-VOUS(),104)
– Format ISO: 20061023
SÉLECTIONNER ISO=CONVERTIR(varchar,AVOIR UN RENDEZ-VOUS(),112)
– Format ISO8601: 2010-10-23T19: 20: 16,003
SÉLECTIONNER [ISO8601]=CONVERTIR(varchar,AVOIR UN RENDEZ-VOUS(),126)
————
————
– Conversion de date islamique
————
– date grégorienne
SÉLECTIONNER CONVERTIR(VARCHAR(36), AVOIR UN RENDEZ-VOUS(), 109)
– 17 mars 2012, 19h27: 19h07
– Date islamique / hijri
SÉLECTIONNER CONVERTIR(NVARCHAR(36), AVOIR UN RENDEZ-VOUS(), 130)
– 24 février 1433 9: 27: 19: 0h30
SÉLECTIONNER CONVERTIR(VARCHAR(36), AVOIR UN RENDEZ-VOUS(), 131)
– 24/04/1433 9: 27: 19: 0h30
————
– Formats de date et heure SQL Server – Dates de format SQL Server 2005/2008
– Utilisation du format MM / JJ / AAAA dans une requête au format de date siècle
SÉLECTIONNER HAUT (1)
SalesOrderID,
Date de commande = CONVERTIR(carboniser(dix), Date de commande, 101),
OrderDateTime = Date de commande
DE AdventureWorks.Ventes.SalesOrderHeader
/ *
SalesOrderID OrderDate OrderDateTime
43697 01/07/2001 2001-07-01 00: 00: 00.000
* /
– colonne de mise à jour SQL datetime – SQL datetime DATEADD – fonction datetime
METTRE À JOUR Production.Produit
ENSEMBLE Date modifiée=DATEADD(jj,1, Date modifiée)
OÙ ID de produit = 1001
– Format de date MM / JJ / AA – Format date et heure sql
SÉLECTIONNER HAUT (1)
SalesOrderID,
Date de commande = CONVERTIR(varchar(8), Date de commande, 1),
OrderDateTime = Date de commande
DE AdventureWorks.Ventes.SalesOrderHeader
ORDRE PAR SalesOrderID desc
/ *
SalesOrderID OrderDate OrderDateTime
75123 31/07/04 2004-07-31 00: 00: 00.000
* /
————
– Conversion de l'horodatage UNIX en date / heure
DÉCLARER @Rendez-vous amoureux BIGINT = 1477180800
/ * (Heure UNIX = 1477180800 -> minuit, le 23 octobre 2016) * /
SÉLECTIONNER DATEADD(ss, @Rendez-vous amoureux, '19700101')
– 2016-10-23 00: 00: 00.000
————
– SQL convertit date / heure en caractère – concaténation de chaînes de date sql: opérateur + (plus)
IMPRESSION 'Style 110:'+CONVERTIR(CARBONISER(dix),AVOIR UN RENDEZ-VOUS(),110) – Style 110: 07-10-2012
IMPRESSION 'Style 111:'+CONVERTIR(CARBONISER(dix),AVOIR UN RENDEZ-VOUS(),111) – Style 111: 2012/07/10
IMPRESSION 'Style 112:'+CONVERTIR(CARBONISER(8), AVOIR UN RENDEZ-VOUS(),112) – Style 112: 20120710
————
– Combinaison de différents formats de style pour la date et l'heure
– Formats de date / heure – Format de fois sql – Formats de date / heure sql
DÉCLARER @Rendez-vous amoureux DATETIME
ENSEMBLE @Rendez-vous amoureux = '2015-12-22 15:51'
SÉLECTIONNER CONVERTIR(CARBONISER(dix),@Rendez-vous amoureux,110) + SUBSTRING(CONVERTIR(varchar,@Rendez-vous amoureux,0),12,8)
– Résultat: 12-22-2015 15:51
– Microsoft SQL Server transforme la date / heure en chaîne
SÉLECTIONNER stringDateTime=JETER (avoir un rendez-vous() comme varchar)
– Résultat: 29 déc. 2012 03:47
Article associé: Fonctions de date et d'heure (Transact-SQL)
————
– Vue d'ensemble des fonctions de date et d'heure de SQL Server
————
– fonction SQL Server CURRENT_TIMESTAMP – Fonctions SQL Server datetime
– Local NYC – EST – Fuseau horaire Eastern
– Fonction SQL DATEADD – Fonction SQL DATEDIFF
SÉLECTIONNER CURRENT_TIMESTAMP – 2012-01-05 07: 02: 10.577
– Fonction SQL Server DATEADD
SÉLECTIONNER DATEADD(mois,2,'2012-12-09') – 2013-02-09 00: 00: 00.000
– Fonction SQL Server DATEDIFF
SÉLECTIONNER DATE DIFF(journée,'2012-12-09','2013-02-09') – 62
– Fonction SQL Server DATENAME
SÉLECTIONNER DATENAME(mois, '2012-12-09') – décembre
SÉLECTIONNER DATENAME(jour de la semaine, '2012-12-09') — Dimanche
– Fonction SQL Server DATEPART
SÉLECTIONNER DATEPART(mois, '2012-12-09') – 12
– Fonction SQL Server DAY
SÉLECTIONNER JOURNÉE('2012-12-09') – 9
– Fonction SQL Server GETDATE
– heure locale NYC – EST – fuseau horaire de l’Est
SÉLECTIONNER AVOIR UN RENDEZ-VOUS() – 2012-01-05 07: 02: 10.577
– Fonction SQL Server GETUTCDATE
– Heure de Greenwich à Londres
SÉLECTIONNER GETUTCDATE() – 2012-01-05 12: 02: 10.577
– Fonction SQL Server MONTH
SÉLECTIONNER MOIS('2012-12-09') – 12
– Fonction SQL Server YEAR
SÉLECTIONNER ANNÉE('2012-12-09') – 2012
————
– Fonction universelle CONVERT – Conversion de date / heure UDF
————
CRÉER UNE FONCTION fnCONVERT( @Contribution datetimeoffset, @StyleNo int)
RÉSULTATS Nvarchar(35) COMME
COMMENCER
REVENIR (CONVERTIR(Nvarchar(35), @Contribution, @StyleNo))
FIN
ALLER
DÉCLARER @dt RENDEZ-VOUS AMOUREUX=avoir un rendez-vous(); SÉLECTIONNER dbo.fnCONVERT( @dt,106) – 23 décembre 2010
ALLER
DÉCLARER @dt RENDEZ-VOUS AMOUREUX=avoir un rendez-vous(); SÉLECTIONNER dbo.fnCONVERT( @dt,156) – 23 décembre 2010
ALLER
/ * Msg 281, niveau 16, état 1, ligne 1
156 n'est pas un numéro de style valide lors de la conversion de datetimeoffset
à une chaîne de caractères. * /
DÉCLARER @dt DATETIME=avoir un rendez-vous(); SÉLECTIONNER dbo.fnCONVERT( @dt,112) – 20101223
ALLER
DÉCLARER @dt Petit délai=avoir un rendez-vous(); SÉLECTIONNER dbo.fnCONVERT( @dt,101) – 23/12/2010
ALLER
————
————
– SQL calcule le nombre de jours ouvrables – exclut les samedis et dimanches
————
CRÉER UNE FONCTION fnBusinessDaysCount (@Date de début RENDEZ-VOUS AMOUREUX, @Date de fin RENDEZ-VOUS AMOUREUX)
RÉSULTATS INT COMME
COMMENCER
SI (@Date de début EST NUL OU @Date de fin EST NUL) REVENIR (0)
DÉCLARER @je INT = 0;
TANDIS QUE (@Date de début <= @Date de fin)
COMMENCER
ENSEMBLE @je = @je + CAS
QUAND datepart(dw,@Date de début) ENTRE 2 ET 6 PUIS 1
AUTRE 0
FIN
ENSEMBLE @Date de début = DATEADD(jj,1,@Date de début)
FIN — tandis que
REVENIR (@je)
FIN — une fonction
ALLER
SÉLECTIONNER dbo.fnBusinessDaysCount('2016-01-01','2016-12-31')
– 261
————
————
– Application de la fonction Date et heure T-SQL
– CURRENT_TIMESTAMP et getdate () sont identiques dans T-SQL
————
– T-SQL premier jour de la semaine et dernier jour de la semaine
SÉLECTIONNER FirstDateOfWeek = dateadd(jj, –DATEPART(dw,AVOIR UN RENDEZ-VOUS()) + 1,AVOIR UN RENDEZ-VOUS())
SÉLECTIONNER LastDateOfWeek = dateadd(jj,7 – DATEPART(dw,AVOIR UN RENDEZ-VOUS()),AVOIR UN RENDEZ-VOUS())
– SQL premier jour du mois – SQL première date du mois
– SQL premier jour du mois en cours – 2012-01-01 00: 00: 00.000
SÉLECTIONNER DATEADD(jj,0,DATEADD(mm, DATE DIFF(mm,0,CURRENT_TIMESTAMP),0))
– SQL dernier jour du mois – SQL dernière date du mois
– SQL dernier jour du mois en cours – 2012-01-31 00: 00: 00.000
SÉLECTIONNER DATEADD(jj, –1,DATEADD(mm, DATE DIFF(mm,0,CURRENT_TIMESTAMP) +1,0))
– SQL premier jour du mois dernier
– SQL premier jour du mois précédent – 2011-12-01 00: 00: 00.000
SÉLECTIONNER DATEADD(mm, –1,DATEADD(mm, DATE DIFF(mm,0,CURRENT_TIMESTAMP),0))
– SQL dernier jour du mois dernier
– SQL dernier jour du mois précédent – 2011-12-31 00: 00: 00.000
SÉLECTIONNER DATEADD(jj, –1,DATEADD(mm, DATE DIFF(mm,0,DATEADD(MM, –1,AVOIR UN RENDEZ-VOUS())) +1,0))
– SQL premier jour du mois prochain – 2012-02-01 00: 00: 00.000
SÉLECTIONNER DATEADD(mm,1,DATEADD(mm, DATE DIFF(mm,0,CURRENT_TIMESTAMP),0))
– SQL dernier jour du mois prochain – 2012-02-28 00: 00: 00.000
SÉLECTIONNER DATEADD(jj, –1,DATEADD(mm, DATE DIFF(mm,0,DATEADD(MM,1,AVOIR UN RENDEZ-VOUS())) +1,0))
ALLER
– SQL premier jour du mois – 2012-10-01 00: 00: 00.000
DÉCLARER @Rendez-vous amoureux date / heure; ENSEMBLE @Rendez-vous amoureux = '2012-10-23'
SÉLECTIONNER DATEADD(jj,0,DATEADD(mm, DATE DIFF(mm,0,@Rendez-vous amoureux),0))
ALLER
– SQL dernier jour du mois – 2012-03-31 00: 00: 00.000
DÉCLARER @Rendez-vous amoureux date / heure; ENSEMBLE @Rendez-vous amoureux = '2012-03-15'
SÉLECTIONNER DATEADD(jj, –1,DATEADD(mm, DATE DIFF(mm,0,@Rendez-vous amoureux) +1,0))
ALLER
– Premier jour de l'année SQL – Premier jour de l'année SQL – 2012-01-01 00: 00: 00.000
SÉLECTIONNER DATEADD(yy, DATE DIFF(yy,0,CURRENT_TIMESTAMP), 0)
– SQL dernier jour de l'année – SQL dernier jour de l'année – 2012-12-31 00: 00: 00.000
SÉLECTIONNER DATEADD(yy,1, DATEADD(jj, –1, DATEADD(yy,
DATE DIFF(yy,0,CURRENT_TIMESTAMP), 0)))
– SQL dernier jour de l'année dernière – SQL dernier jour de l'année précédente – 2011-12-31 00: 00: 00.000
SÉLECTIONNER DATEADD(jj, –1,DATEADD(yy,DATE DIFF(yy,0,CURRENT_TIMESTAMP), 0))
ALLER
————
– Premier et dernier jour des périodes de date
DÉCLARER @Rendez-vous amoureux DATETIME; ENSEMBLE = @Rendez-vous amoureux = '20161023';
SÉLECTIONNER Date de référence = @Rendez-vous amoureux
SÉLECTIONNER FirstDayOfYear = DATEADD(AA, DATE DIFF(AA,0, @Rendez-vous amoureux),0)
SÉLECTIONNER LastDayOfYear = DATEADD(AA, DATE DIFF(AA,0, @Rendez-vous amoureux) +1, –1)
SÉLECTIONNER Premier jour du printemps = DATEADD(QQ(((DATE DIFF(QQ,0,@Rendez-vous amoureux) /2) *2),0)
SÉLECTIONNER LastDayOfSemester = DATEADD(QQ(((DATE DIFF(QQ,0,@Rendez-vous amoureux) /2) *2) +2, –1)
SÉLECTIONNER FirstDayOfQuarter = DATEADD(QQ, DATE DIFF(QQ,0, @Rendez-vous amoureux),0)
– 2016-10-01 00: 00: 00.000
SÉLECTIONNER LastDayOfQuarter = DATEADD(QQ, DATE DIFF(QQ,0, @Rendez-vous amoureux) +1, –1)
– 2016-12-31 00: 00: 00.000
SÉLECTIONNER Premier jour du mois = DATEADD(MM, DATE DIFF(MM,0, @Rendez-vous amoureux),0)
SÉLECTIONNER LastDayOfMonth = DATEADD(MM, DATE DIFF(MM,0, @Rendez-vous amoureux) +1, –1)
SÉLECTIONNER Premier jour de la semaine = DATEADD(WK, DATE DIFF(WK,0, @Rendez-vous amoureux),0)
SÉLECTIONNER LastDayOfWeek = DATEADD(WK, DATE DIFF(WK,0, @Rendez-vous amoureux) +1, –1)
– 2016-10-30 00: 00: 00.000
————
– Début de la semaine DIMANCHE – Paramètres de langue US_english –
SÉLECTIONNER CURRENT_TIMESTAMP, DATEADD (la semaine, DATE DIFF(la semaine,6, CURRENT_TIMESTAMP),6)
– Fin de semaine SAMEDI
SÉLECTIONNER CURRENT_TIMESTAMP, DATEADD (la semaine, DATE DIFF(la semaine,5, CURRENT_TIMESTAMP),5)
————
– SQL calcule l’âge en années, mois et jours – Format des dates SQL Server 2008
– Fonction de table SQL – Fonction SQL définie par l'utilisateur – UDF
– Calcul de l'âge SQL Server – différence de date
UTILISATION AdventureWorks2008;
ALLER
CRÉER UNE FONCTION fnAge (@Date de naissance DATETIME)
RÉSULTATS @Âge TABLE(Années INT,
Mois INT,
Journées INT)
COMME
COMMENCER
DÉCLARER @Date de fin DATETIME, @Anniversaire DATETIME
ENSEMBLE @Date de fin = Avoir un rendez-vous()
ENSEMBLE @Anniversaire = Dateadd(yy,Daté(yy,@Date de naissance,@Date de fin),@Date de naissance)
INSÉRER @Âge
SÉLECTIONNER Daté(yy,@Date de naissance,@Date de fin) – (CAS
QUAND @Anniversaire > @Date de fin PUIS 1
AUTRE 0
FIN), 0, 0
METTRE À JOUR @Âge ENSEMBLE Mois = Mois(@Date de fin – @Anniversaire) – 1
METTRE À JOUR @Âge ENSEMBLE Journées = journée(@Date de fin – @Anniversaire) – 1
REVENIR
FIN
ALLER
– Test UDF valeur table
SÉLECTIONNER * DE fnAge('1956-10-23')
SÉLECTIONNER * DE dbo.fnAge('1956-10-23')
/* Résultats
Années Mois Jours
52 4 1
* /
———-
– La date SQL est comprise entre
———-
– SQL entre les dates
UTILISATION AdventureWorks;
– SQL entre
SÉLECTIONNER OP=COMPTER(*) DE Achat.PurchaseOrderHeader
OÙ Date de commande ENTRE '20040301' ET '20040315'
– Résultat: 108
– L'opérateur BETWEEN est équivalent à> = … AND …. <=
SÉLECTIONNER OP=COMPTER(*) DE Achat.PurchaseOrderHeader
OÙ Date de commande
ENTRE '2004-03-01 00: 00: 00.000' ET '2004-03-15 00: 00: 00.000'
/ *
Commandes avec OrderDates
'2004-03-15 00: 00: 01.000' – 1 seconde après minuit (00h00)
'2004-03-15 00: 01: 00.000' – 1 minute après minuit
'2004-03-15 01: 00: 00.000' – 1 heure après minuit
ne sont pas inclus dans les deux requêtes ci-dessus.
* /
– Pour inclure toute la journée du 2004-03-15, utilisez les deux solutions suivantes.
SÉLECTIONNER OP=COMPTER(*) DE Achat.PurchaseOrderHeader
OÙ Date de commande > = '20040301' ET Date de commande < '20040316'
– SQL entre avec type DATE (SQL Server 2008)
SÉLECTIONNER OP=COMPTER(*) DE Achat.PurchaseOrderHeader
OÙ CONVERTIR(RENDEZ-VOUS AMOUREUX, Date de commande) ENTRE '20040301' ET '20040315'
———-
– Conversion de format non standard: 14 décembre 2011
– date-heure SQL en chaîne
SÉLECTIONNER [YYYY Month DD] =
JETER(ANNÉE(AVOIR UN RENDEZ-VOUS()) COMME VARCHAR(4)) + ''+
DATENAME(MM, AVOIR UN RENDEZ-VOUS()) + '' +
JETER(JOURNÉE(AVOIR UN RENDEZ-VOUS()) COMME VARCHAR(2))
– Conversion de la date / heure au format AAAAMMJJHHMMSS: 20121214172638
SÉLECTIONNER remplacer(convertir(varchar, avoir un rendez-vous(),111),'/','') +
remplacer(convertir(varchar, avoir un rendez-vous(),108),':','')
– Conversion du format personnalisé Datetime en YYYY_MM_DD
sélectionner Date actuelle=rtrim(année(avoir un rendez-vous())) + '_' +
droite('0' + rtrim(mois(avoir un rendez-vous())),2) + '_' +
droite('0' + rtrim(journée(avoir un rendez-vous())),2)
– Conversion de secondes au format HH: MM: SS
déclarer @Secondes int
ensemble @Secondes = 10000
sélectionner TimeSpan= droit ('0' +rtrim(@Secondes / 3600),2) + ':' +
droite('0' + rtrim((@Secondes % 3600) / 60),2) + ':' +
droite('0' + rtrim(@Secondes % 60),2)
– Résultat: 02:46:40
— Résultat du test
sélectionner 2*3600 + 46*60 + 40
– Résultat: 10000
– Définissez la partie heure d'une valeur datetime sur 00: 00: 00.000
– Heure de bande SQL à partir de la date
– Temps de bande SQL à partir de l'heure
SÉLECTIONNER CURRENT_TIMESTAMP ,DATEADD(jj, DATE DIFF(jj, 0, CURRENT_TIMESTAMP), 0)
– Résultats: 2014-01-23 05: 35: 52.793 2014-01-23 00: 00: 00.000
/ * PLAGES DE DATE VALIDES POUR LES TYPES DE DONNÉES DATE / DATETIME
SMALLDATETIME (4 octets) plage de dates:
1er janvier 1900 au 6 juin 2079
DATETIME (8 octets) plage de dates:
Du 1er janvier 1753 au 31 décembre 9999
Plage de dates DATETIME2 (8 octets) (SQL Server 2008):
1er janvier au 31 décembre 9999
Plage de dates DATE (3 octets) (SQL Server 2008):
1er janvier au 31 décembre 9999
******* /
– Sélection avec CONVERT dans différents styles
– Remarque: seuls les styles Japon et ISO peuvent être utilisés dans ORDER BY.
SÉLECTIONNER HAUT(1)
Italie = CONVERTIR(varchar, Date de commande, 105)
, Etats-Unis = CONVERTIR(varchar, Date de commande, 110)
, Japon = CONVERTIR(varchar, Date de commande, 111)
, ISO = CONVERTIR(varchar, Date de commande, 112)
DE AdventureWorks.Achat.PurchaseOrderHeader
ORDRE PAR PurchaseOrderID DESC
/* Résultats
Italie USA Japon ISO
25-07-2004 07-25-2004 2004/07/25 20040725
* /
– SQL Server convertit la date en entier
DÉCLARER @Datetime date / heure
ENSEMBLE @Datetime = '2012-10-23 10: 21: 05.345'
SÉLECTIONNER DateAsInteger = JETER (CONVERTIR(varchar,@Datetime,112) comme INT)
– Résultat: 20121023
– SQL Server convertit un entier en date-heure
DÉCLARER @intDate int
ENSEMBLE @intDate = 20120315
SÉLECTIONNER IntegerToDatetime = JETER(JETER(@intDate comme varchar) comme date / heure)
– Résultat: 2012-03-15 00: 00: 00.000
————-
– Date julienne (AAAAJJJ) au convertisseur date / date / heure
————
CRÉER UNE FONCTION dbo.fnJulianToDate (@JulianDt carboniser(7))
RÉSULTATS rendez-vous amoureux COMME
COMMENCER
REVENIR (SÉLECTIONNER DATEADD(journée, JETER(DROITE(@JulianDt,3) COMME int) – 1,
CONVERTIR(date / heure, LA GAUCHE(@JulianDt,4) + '0101', 112)))
FIN
ALLER
SÉLECTIONNER dbo.fnJulianToDate ('2016040')
– 2016-02-09
————
———–
– Script SQL Server CONVERT appliquant la table INSERT / UPDATE
————
– date de conversion de SQL Server
– La colonne Date / heure est convertie en colonne de type Date uniquement
UTILISATION tempdb;
ALLER
CRÉER TABLE sqlConvertDateTime (
DatetimeCol date / heure,
DateCol carboniser(8));
INSÉRER sqlConvertDateTime (DatetimeCol) SÉLECTIONNER AVOIR UN RENDEZ-VOUS()
METTRE À JOUR sqlConvertDateTime
ENSEMBLE DateCol = CONVERTIR(carboniser(dix), DatetimeCol, 112)
SÉLECTIONNER * DE sqlConvertDateTime
– SQL Server convertit la date et l'heure
– La colonne de date de chaîne est convertie en colonne datetime
METTRE À JOUR sqlConvertDateTime
ENSEMBLE DatetimeCol = CONVERTIR(Date / heure, DateCol, 112)
SÉLECTIONNER * DE sqlConvertDateTime
– Ajout d’un jour à la colonne datetime convertie avec DATEADD
METTRE À JOUR sqlConvertDateTime
ENSEMBLE DatetimeCol = DATEADD(journée, 1, CONVERTIR(Date / heure, DateCol, 112))
SÉLECTIONNER * DE sqlConvertDateTime
– formulation équivalente – Date et heure SQL Server CAST
METTRE À JOUR sqlConvertDateTime
ENSEMBLE DatetimeCol = DATEADD(jj, 1, JETER(DateCol COMME date / heure))
SÉLECTIONNER * DE sqlConvertDateTime
ALLER
LAISSEZ TOMBER TABLE sqlConvertDateTime
ALLER
/ * Premiers résultats
DatetimeCol DateCol
2014-12-25 16: 04: 15.373 20141225 * /
/ * Deuxième résultat:
DatetimeCol DateCol
2014-12-25 00: 00: 00.000 20141225 * /
/ * Troisième résultats:
DatetimeCol DateCol
2014-12-26 00: 00: 00.000 20141225 * /
————
– Séquence de mois SQL – Génération de séquence de dates SQL avec une variable de table
– Chaîne de transtypage SQL Server en date-heure – Datetime en chaîne SQL Server en chaîne
– Méthode SQL Server d'insertion de valeurs par défaut
DÉCLARER @Séquence table (Séquence int identité(1,1))
DÉCLARER @je int; ENSEMBLE @je = 0
DÉCLARER @Date de début date / heure;
ENSEMBLE @Date de début = JETER(CONVERTIR(varchar, année(avoir un rendez-vous())) +
DROITE('0'+convertir(varchar,mois(avoir un rendez-vous())),2) + '01' COMME DATETIME)
TANDIS QUE ( @je < 120)
COMMENCER
INSÉRER @Séquence DÉFAUT VALEURS
ENSEMBLE @je = @je + 1
FIN
SÉLECTIONNER Séquence de mois = JETER(DATEADD(mois, Séquence,@Date de début) COMME varchar)
DE @Séquence
ALLER
/ * Résultats partiels:
Séquence de mois
1 janvier 2012 12h00
1 février 2012 12h00
1 mars 2012 12h00
1 avril 2012 12h00
* /
————
————
– Stockage interne datetime SQL Server Server – Formats de date et heure SQL Server
————
– date / heure SQL Server en hexadécimal
SÉLECTIONNER À présent=CURRENT_TIMESTAMP, HexNow=JETER(CURRENT_TIMESTAMP COMME BINAIRE(8))
/* Résultats
Maintenant HexNow
2009-01-02 17: 35: 59.297 0x00009B850122092D
* /
– Partie date de SQL Server – 4 octets restants – Jours depuis le 1900-01-01
SÉLECTIONNER À présent=DATEADD(JOURNÉE, CONVERTIR(INT, 0x00009B85), '19000101')
ALLER
– Résultat: 2009-01-02 00: 00: 00.000
– Partie temps SQL – 4 octets à droite – millisecondes à partir de minuit
– 1000/300 est un facteur d'ajustement
– Date limite SQL à minuit
SÉLECTIONNER À présent=DATEADD(MME, (1000.0/300) * CONVERTIR(BIGINT, 0x0122092D), '2009-01-02')
ALLER
– Résultat: 2009-01-02 17: 35: 59.290
————
————
– Utilisation des colonnes chaîne date et date / heure date & heure
– Formats de date / heure SQL Server dans les tables
————
UTILISATION tempdb;
ENSEMBLE NOCOUNT SUR;
– SQL Server select into table create
SÉLECTIONNER HAUT (5)
Nom complet=convertir(Nvarchar(50),Prénom+''+Nom de famille),
Date de naissance = CONVERTIR(carboniser(8), Date de naissance,112),
Date modifiée = avoir un rendez-vous()
DANS Employé
DE AdventureWorks.Ressources humaines.Employé e
INTERNE JOINDRE AdventureWorks.La personne.Contact c
SUR c.ID de contact = e.ID de contact
ORDRE PAR ID employé
ALLER
– SQL Server alter table
MODIFIER TABLE Employé MODIFIER COLONNE Nom complet Nvarchar(50) NE PAS NUL
ALLER
MODIFIER TABLE Employé
AJOUTER CONTRAINTE [PK_Employee] PRIMAIRE CLÉ (Nom complet )
ALLER
/* Résultats
Définition de la table Employé
Remarque: Date de naissance est la date de la chaîne (uniquement)
CREATE TABLE dbo.Employee (
Nom complet nvarchar (50) PAS NULL PRIMARY KEY,
BirthDate char (8) NULL,
ModifiedDate datetime NON NULL
)
* /
SÉLECTIONNER * DE Employé ORDRE PAR Nom complet
ALLER
/* Résultats
FullName BirthDate ModifiedDate
Guy Gilbert 19720515 2009-01-03 10: 10: 19.217
Kevin Brown 19770603 2009-01-03 10: 10: 19.217
Rob Walters 19650123 2009-01-03 10: 10: 19.217
Roberto Tamburello 19641213 2009-01-03 10: 10: 19.217
Thierry D'Hers 19490829 2009-01-03 10: 10: 19.217
* /
– Âge du serveur SQL
SÉLECTIONNER Nom complet, Âge = DATE DIFF(ANNÉE, Date de naissance, AVOIR UN RENDEZ-VOUS()),
RowMaintenanceDate = JETER (Date modifiée COMME varchar)
DE Employé ORDRE PAR Nom complet
ALLER
/* Résultats
Nom complet Age RowMaintenanceDate
Guy Gilbert 37 janvier 3 2009 10:10
Kevin Brown 32 Jan 3 2009 10:10 AM
Rob Walters 44 3 janvier 2009 10:10
Roberto Tamburello 45 Jan 3 2009 10:10 AM
Thierry D'Hers 60 Jan 3 2009 10:10 AM
* /
– Âge de SQL Server de Rob Walters à des dates spécifiques
– Conversion implicite de chaîne SQL en datetime avec DATEADD
SÉLECTIONNER AGE50DATE = DATEADD(AA, 50, '19650123')
ALLER
– Résultat: 2015-01-23 00: 00: 00.000
– Date / heure de SQL Server en chaîne, format italien pour ModifiedDate
– Conversion implicite de chaîne SQL en datetime avec DATEDIFF
SÉLECTIONNER Nom complet,
AgeDEC31 = DATE DIFF(ANNÉE, Date de naissance, '20141231'),
AgeJAN01 = DATE DIFF(ANNÉE, Date de naissance, '20150101'),
AgeJAN23 = DATE DIFF(ANNÉE, Date de naissance, '20150123'),
AgeJAN24 = DATE DIFF(ANNÉE, Date de naissance, '20150124'),
ModDate = CONVERTIR(varchar, Date modifiée, 105)
DE Employé
OÙ Nom complet = 'Rob Walters'
ORDRE PAR Nom complet
ALLER
/* Résultats
Note importante: incréments d’âge au 1er janvier (pas aussi communément calculé)
Nom complet ÂgeDEC31 ÂgeJAN01 ÂgeJAN23 ÂgeJAN24 ModDate
Rob Walters 49 50 50 50 03-01-2009 * /
————
– SQL combine date et heure entières en date-heure
————
– Format date et heure sql
– trucs SQL
DÉCLARER @DateTimeAsINT TABLE ( ID int identité(1,1) primaire clé,
DateAsint int,
TimeAsINT int
)
– NOTE: les zéros dans le temps sont uniquement pour la lisibilité!
INSÉRER @DateTimeAsINT (DateAsint, TimeAsINT) VALEURS (20121023, 235959)
INSÉRER @DateTimeAsINT (DateAsint, TimeAsINT) VALEURS (20121023, 010204)
INSÉRER @DateTimeAsINT (DateAsint, TimeAsINT) VALEURS (20121023, 002350)
INSÉRER @DateTimeAsINT (DateAsint, TimeAsINT) VALEURS (20121023, 000244)
INSÉRER @DateTimeAsINT (DateAsint, TimeAsINT) VALEURS (20121023, 000050)
INSÉRER @DateTimeAsINT (DateAsint, TimeAsINT) VALEURS (20121023, 000006)
SÉLECTIONNER DateAsint, TimeAsINT,
CONVERTIR(date / heure, CONVERTIR(varchar(8), DateAsint) + ''+
DES TRUCS(DES TRUCS ( DROITE(REPRODUIRE('0', 6) + CONVERTIR(varchar(6), TimeAsINT), 6),
3, 0, ':'), 6, 0, ':')) COMME DateTimeValue
DE @DateTimeAsINT
ORDRE PAR ID
ALLER
/* Résultats
DateAsINT TimeAsINT DateTimeValue
20121023 235959 2012-10-23 23: 59: 59.000
20121023 10204 2012-10-23 01: 02: 04.000
20121023 2350 2012-10-23 00: 23: 50.000
20121023 244 2012-10-23 00: 02: 44.000
20121023 50 2012-10-23 00: 00: 50.000
20121023 6 2012-10-23 00: 00: 06.000
* /
————
– Chaîne SQL Server en date-heure, conversion implicite avec affectation
METTRE À JOUR Employé ENSEMBLE Date modifiée = '20150123'
OÙ Nom complet = 'Rob Walters'
ALLER
SÉLECTIONNER Date modifiée DE Employé OÙ Nom complet = 'Rob Walters'
ALLER
– Résultat: 2015-01-23 00: 00: 00.000
/ * Date de chaîne SQL, assembler la date de chaîne à partir de parties datetime * /
– Chaîne de distribution SQL Server en date-heure – Date de conversion de la chaîne SQL
– Conversion de numéro SQL Server en varchar
– SQL Server menant zéros au mois et au jour
– Fonction de chaîne de droite SQL Server
METTRE À JOUR Employé ENSEMBLE Date de naissance =
CONVERTIR(carboniser(4),ANNÉE(JETER('1965-01-23' comme DATETIME))) +
DROITE('0'+CONVERTIR(varchar,MOIS(JETER('1965-01-23' comme DATETIME))),2) +
DROITE('0'+CONVERTIR(varchar,JOURNÉE(JETER('1965-01-23' comme DATETIME))),2)
OÙ Nom complet = 'Rob Walters'
ALLER
SÉLECTIONNER Date de naissance DE Employé OÙ Nom complet = 'Rob Walters'
ALLER
– Résultat: 19650123
– Effectuer une action de nettoyage
LAISSEZ TOMBER TABLE Employé
– SQL nocount
ENSEMBLE NOCOUNT DE;
ALLER
————
————
– fonction sql isdate
————
UTILISATION tempdb;
– sql newid – tri aléatoire
SÉLECTIONNER Haut(3) SalesOrderID,
stringOrderDate = JETER (Date de commande COMME varchar)
DANS DateValidation
DE AdventureWorks.Ventes.SalesOrderHeader
ORDRE PAR NEWID()
ALLER
SÉLECTIONNER * DE DateValidation
/* Résultats
SalesOrderID stringOrderDate
56720 26 oct 2003 12h00
73737 25 juin 2004 12h00
70573 14 mai 2004 12h00
* /
– Mise à jour SQL avec top
METTRE À JOUR HAUT(1) DateValidation
ENSEMBLE stringOrderDate = 'Apb 29 2004 12:00 AM'
ALLER
– La chaîne SQL à datetime échoue sans validation
SÉLECTIONNER SalesOrderID, Date de commande = JETER (stringOrderDate comme date / heure)
DE DateValidation
ALLER
/ * 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é une
valeur hors plage.
* /
– sql isdate – filtre les dates valides
SÉLECTIONNER SalesOrderID, Date de commande = JETER (stringOrderDate comme date / heure)
DE DateValidation
OÙ DATE(stringOrderDate) = 1
ALLER
/* Résultats
SalesOrderID OrderDate
73737 2004-06-25 00: 00: 00.000
70573 2004-05-14 00: 00: 00.000
* /
– table de dépôt SQL
LAISSEZ TOMBER TABLE DateValidation
Aller
————
– SELECT entre deux dates spécifiées – la partie TIME de l’hypothèse est 00: 00: 00.000
————
– date-heure SQL entre
– SQL sélectionner entre deux dates
SÉLECTIONNER ID employé, RateChangeDate
DE AdventureWorks.Ressources humaines.EmployeePayHistory
OÙ RateChangeDate > = '1997-11-01' ET
RateChangeDate < DATEADD(jj,1,1998-01-05)
ALLER
/* Résultats
EmployeeID RateChangeDate
3 1997-12-12 00: 00: 00.000
4 1998-01-05 00: 00: 00.000
* /
/* Équivalent à
– plage de date et heure SQL
SELECT EmployeeID, RateChangeDate
FROM AdventureWorks.HumanResources.EmployeePayHistory
WHERE RateChangeDate> = '1997-11-01 00:00:00' ET
RateChangeDate <'1998-01-06 00:00:00'
ALLER
* /
————
– Paramètre de langue SQL datetime
– Utilisation de la fonction non déterministe SQL – le résultat varie en fonction des paramètres de langue
ENSEMBLE LA LANGUE 'us_english'; –– 12 janvier 2015 12:00h00
SÉLECTIONNER NOUS = convertir(VARCHAR,convertir(DATETIME,'01 / 12/2015 '));
ENSEMBLE LA LANGUE 'Britanique'; –– déc 1 2015 12:00h00
SÉLECTIONNER Royaume-Uni = convertir(VARCHAR,convertir(DATETIME,'01 / 12/2015 '));
ENSEMBLE LA LANGUE 'Allemand'; –– Dez 1 2015 12:00h00
ENSEMBLE LA LANGUE 'Deutsch'; –– Dez 1 2015 12:00h00
SÉLECTIONNER Allemagne = convertir(VARCHAR,convertir(DATETIME,'01 / 12/2015 '));
ENSEMBLE LA LANGUE 'Français'; –– déc 1 2015 12:00h00
SÉLECTIONNER France = convertir(VARCHAR,convertir(DATETIME,'01 / 12/2015 '));
ENSEMBLE LA LANGUE 'Espanol'; –– Dic 1 2015 12:00h00
SÉLECTIONNER Espagne = convertir(VARCHAR,convertir(DATETIME,'01 / 12/2015 '));
ENSEMBLE LA LANGUE 'Hongrois'; –– 12 janvier 2015 12:00h00
SÉLECTIONNER Hongrie = convertir(VARCHAR,convertir(DATETIME,'01 / 12/2015 '));
ENSEMBLE LA LANGUE 'us_english';
ALLER
————
– Recherche SQL Server 2008 T-SQL lundi prochain pour une date donnée
DÉCLARER @DateTime DATETIME = '2012-12-31'
SÉLECTIONNER NextMondaysDate=DATEADD(jj, (DATE DIFF(jj, 0, @DateTime) / 7 * 7) + 7, 0),
WeekDayName=DATENAME(dw,DATEADD(jj, (DATE DIFF(jj, 0, @DateTime) / 7 * 7) + 7, 0));
/ *
NextMondaysDate WeekDayName
2013-01-07 00: 00: 00.000 lundi
* /
————
————
– Fonction pour le calcul des dates du lundi
————
UTILISATION AdventureWorks2008;
ALLER
– fonction SQL définie par l'utilisateur
– Fonction scalaire SQL – UDF
CRÉER UNE FONCTION fnMondayDate
(@Année INT,
@Mois INT,
@MondayOrdinal INT)
RÉSULTATS DATETIME
COMME
COMMENCER
DÉCLARER @FirstDayOfMonth CARBONISER(dix),
@SeedDate CARBONISER(dix)
ENSEMBLE @FirstDayOfMonth = convertir(VARCHAR,@Année) + '-' + convertir(VARCHAR,@Mois) + '-01'
ENSEMBLE @SeedDate = '1900-01-01'
REVENIR DATEADD(DD,DATE DIFF(DD,@SeedDate,DATEADD(DD, (@MondayOrdinal * 7) – 1,
@FirstDayOfMonth)) / 7 * 7, @SeedDate)
FIN
ALLER
– Test UDF Datetime – Troisième lundi de février 2015
SÉLECTIONNER dbo.fnMondayDate(2016,2,3)
— 2015-02-16 00:00:00.000
— First Monday of current month
SÉLECTIONNER dbo.fnMondayDate(Année(avoir un rendez-vous()),Mois(avoir un rendez-vous()),1)
— 2009-02-02 00:00:00.000
————
Articles Liés:
http://www.sqlusa.com/bestpractices/datetimeconversion/
datetime (Transact-SQL)
SQL Server DateTime Formatting
SQL SERVER – Retrieve Current Date Time in SQL Server CURRENT_TIMESTAMP, GETDATE(), fn NOW()
CAST and CONVERT







Commentaires
Laisser un commentaire