Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 10825|Répondre: 0

[Source] Déclaration SQL pratique : estimation de la date

[Copié le lien]
Publié sur 26/11/2014 15:53:01 | | |

DÉCLAREZ @dt heure de la date
SET @dt=GETDATE()

DÉCLARE @number int
ENSEMBLE @number=3

--1. Préciser la date du premier ou du dernier jour de l’année
--A. Le premier jour de l’année
SELECT Co nVERT(char(5),@dt,120)+ '1-1'

--B. Le dernier jour de l’année
SELECT Co nVERT(char(5),@dt,120)+ '12-31'


--2. Le premier ou le dernier jour du trimestre où se trouve la date spécifiée
--A. Premier jour du trimestre
SELECT Co nVERT(datetime,
Co nVERT(char(8),
DATEADD (Mo nth,
DATEPART(Quarter,@dt)*3-Mo nth(@dt)-2,
@dt),
120)+ '1 ')

--B. Dernier jour du trimestre (jugement CASE)
SELECT Co nVERT(datetime,
Co nVERT(char(8),
DATEADD (Mo nth,
DATEPART(Quarter,@dt)*3-Mo nth(@dt),
@dt),
120)
+CAS QUAND DATEPART(Quarter,@dt) in(1,4)
PUIS '31 'ELSE '30' FIN)

--C. Dernier jour du trimestre (algorithme de push direct)
SÉLECTIONNEZ DATEADD(Day,-1,
Co nVERT(char(8),
DATEADD (Mo nth,
1+DATEPART(Quart,@dt)*3-Mo nth(@dt),
@dt),
120)+ '1 ')


--3. Le premier ou le dernier jour du mois où se trouve la date spécifiée
--A. Le premier jour du mois
SELECT Co nVERT(datetime,Co nVERT(char(8),@dt,120)+ '1 ')

--B. Le dernier jour du mois
SELECT DATEADD(Day,-1,Co nVERT(char(8),DATEADD(Mo nth,1,@dt),120)+ '1 ')

--C. Dernier jour du mois (mauvaise méthode facile à utiliser)
SELECT DATEADD(Mo nth,1,DATEADD(Day,-DAY(@dt),@dt))


--4. N’importe quel jour de la semaine où se trouve la date spécifiée
SÉLECTIONNER DATEADD (Jour, @number-DATEPART(Jour de la semaine, @dt), @dt)


--5. N’importe quel jour de la semaine où se trouve la date spécifiée
--Un.  Le dimanche comme premier jour de la semaine
SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1) %7,@dt)

--B.  Le lundi est le premier jour de la semaine
SELECT DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2) %7-1,@dt)






Précédent:Problème d’utilisation des indices lorsque SQLSERVER gère des traits comme ' %keyword %'
Prochain:Nouvelles fonctionnalités de l’ORACLE 11g - Permet aux verrous DDL d’attendre les verrous DML
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com