Maison >base de données >tutoriel mysql >Comment récupérer efficacement les enregistrements du mois dernier à partir d'une table SQL Server ?

Comment récupérer efficacement les enregistrements du mois dernier à partir d'une table SQL Server ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-02 16:29:42178parcourir

How to Efficiently Retrieve Last Month's Records from a SQL Server Table?

Récupération des enregistrements du mois dernier dans SQL Server

Problème :

Obtenir les enregistrements de la table de base de données [membre] qui tombe au cours du mois précédent, en fonction de la date_created champ.

Solution :

Pour récupérer efficacement et précisément les enregistrements du mois dernier, nous devons éviter certains pièges et employer l'approche suivante :

  1. Utilisez le filtrage de plages exclusives :

    Au lieu d'utiliser des plages inclusives (par exemple, l'opérateur BETWEEN), utilisez un filtrage de plage exclusif avec l'option > et &Lt ; opérateurs. Cela garantit que les enregistrements du premier et du dernier jour du mois sont inclus.

  2. Calculer les limites du mois :

    Déduisez le début du le mois précédent et le début du mois en cours à l’aide des fonctions de date appropriées. Cela évite les problèmes potentiels causés par des plages de limites supérieures inclusives.

    • Début du mois précédent : DATEADD(month, -1, @startOfCurrentMonth)
    • Début du mois en cours : DATEADD(month , DATEDIFF(mois, 0, CURRENT_TIMESTAMP), 0)
  3. Exemple de requête :

    DECLARE @startOfCurrentMonth DATETIME
    SET @startOfCurrentMonth = DATEADD(month, DATEDIFF(month, 0, CURRENT_TIMESTAMP), 0)
    
    SELECT *
    FROM Member
    WHERE date_created >= DATEADD(month, -1, @startOfCurrentMonth)
      AND date_created < @startOfCurrentMonth

Cette approche garantit que les indices sont utilisés, les données la corruption est évitée et les enregistrements corrects sont récupérés dans le délai spécifié.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn