Comment créer une clause de condition en utilisant une heure courante

1

J'ai une vue SQL qui contient une colonne avec les dates du format '2012-06-21 19: 44: 50.543'. Je dois entrer la condition pour ne montrer que les lignes dont les dates commencent au début du mois précédent. Cette procédure nécessite d'utiliser l'heure actuelle (intégrée). De plus, j'ai besoin que cette vue soit mise à jour automatiquement chaque mois. Comment puis je faire ça?

Anna
la source
Vous avez plus d'une question ici. Veuillez modifier la question pour la première partie et postez la deuxième partie en tant que question distincte si la réponse ci-dessous ne répond pas à votre requête.

Réponses:

2

Pour utiliser les dates à partir du mois précédent en fonction de l'heure système actuelle, utilisez DATEADD()et GETDATE().

DATEADDrenvoie une date spécifiée avec l' intervalle de nombre spécifié (entier signé) ajouté à une partie de date spécifiée de cette date.

    DATEADD (datepart , number , date )

GETDATErenvoie l'horodatage système actuel de la base de données sous la forme d'une valeur datetime sans le décalage du fuseau horaire de la base de données. Cette valeur est dérivée du système d'exploitation de l'ordinateur sur lequel l'instance de SQL Server est en cours d'exécution.

    GETDATE ( )

Pour calculer les dates qui correspondent au début du mois dernier (rappelez-vous, ceci est un exemple et peut nécessiter une modification avec votre code):

SELECT [col1], [col2], [dt] FROM [table]
WHERE [dt] >= convert(varchar,DATEADD(MONTH,-1,
              DATEADD(MONTH,DATEDIFF(MONTH,0,
              getdate()),0)),101)

S'il vous plaît, lisez un peu DATEDIFF()aussi CONVERT()pour comprendre comment fonctionne la mise en forme représentée par 101. Vous préférerez peut-être à la 121place.

(Source supplémentaire: article de Terry Apodaca, «Dates SQL - Premier, actuel, dernier jour du mois», qui est passé de cette ancienne adresse à http://v1.terryapodaca.com/2008/01/28/sql-dates-first -current-dernier-jour-du-mois (ou vous pouvez lire une copie archivée à la Wayback Machine ).)

Scott
la source