Serveur d'impression

Format de date et heure SQL Server avec Century – Bien choisir son serveur d impression

Par Titanfall , le 4 mai 2019 - 26 minutes de lecture

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)

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

Date de commande ENTRE '20040301' ET '20040315'

– Résultat: 108

– L'opérateur BETWEEN est équivalent à> = … AND …. <=

SÉLECTIONNER OP=COMPTER(*) DE Achat.PurchaseOrderHeader

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

Date de commande > = '20040301' ET Date de commande < '20040316'

– SQL entre avec type DATE (SQL Server 2008)

SÉLECTIONNER OP=COMPTER(*) DE Achat.PurchaseOrderHeader

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é

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'

Nom complet = 'Rob Walters'

ALLER

SÉLECTIONNER Date modifiée DE Employé 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)

Nom complet = 'Rob Walters'

ALLER

SÉLECTIONNER Date de naissance DE Employé 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

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

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

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

Commentaires

Laisser un commentaire

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