2010-04-26 8 views
4

J'ai une colonne dans la base de données DateCreated qui indique la date de création. Maintenant, je veux filtrer les enregistrements en fonction de la plage de dates sélectionnée. Par exemple:Afficher les enregistrements dans une plage de dates particulière

  • créé dans les 60 jours
  • créé dans le mois
  • etc ...

J'ai une dateCreated variable qui me montre ce que l'utilisateur a choisi comme la gamme, à savoir si elle est créée dans les 60 jours, créée dans l'année, et ainsi de suite.

 DateTime CurrTime = DateTime.Now; 
    if (Program.DateCreated <= DateTime.Now - 60) 
    { 
     //code to add the record goes here.. 
    } 

Mais le code ci-dessus ne fonctionnera pas. Quelle serait la syntaxe pour obtenir les enregistrements dans une plage particulière?

+0

Quand vous dites « ne fonctionne pas », qu'est-ce que tu veux dire? Il y a une erreur, ou ça ne retourne pas ce que vous attendiez? – SqlRyan

+1

@rwmnau: Je suppose qu'il obtient cette erreur de compilation: 'Operator '-' ne peut pas être appliqué aux opérandes de type 'System.DateTime' et 'int' –

+0

@Mark Byers - Je suis sûr que vous êtes un droit. Un peu plus regardant et moins demandant m'aurait obtenu que la même réponse! – SqlRyan

Répondre

6

Pour créer un DateTime représentant 60 jours d'utilisation il y a ceci:

DateTime.Now.AddDays(-60) 

Notez que ce serait probablement une meilleure idée d'envoyer cette requête à la base de données plutôt que le filtrage sur le client.

2

Quelque chose comme ça?

if (dateCreated >= DateTime.Now.Subtract(myTimeSpanRange))

où myTimeSpanRange est un TimeSpan indiquant comment loin en arrière l'utilisateur veut aller.

1

Susciter l'TimeSpan Matt suggère, vous pouvez utiliser ceci:

if (Program.DateCreated <= dateCreated - TimeSpan.FromDays(60)) { 
    ... 
} 
Questions connexes