2009-06-15 9 views
1

Quelqu'un pourrait-il me dire comment faire la fonction de sélection dans le projet SubSonic pour interroger tous les clients qui auront anniversaire dans les deux prochaines semaines à partir d'aujourd'hui.Subsonic Comment choisir entre la date

Tableau client Nom Thomas date de naissance 19/09/1981

Merci

Répondre

0

S'il vous plaît essayez ceci:

new Select("Provider").From("Customers") 
.Where("CustomerName") 
.IsEqualTo("Thomas") 
.Where("DOB") 
.IsBetweenAnd(DateTime.Today, DateTime.Today.AddDays(14)); 

PS: - fournisseur est le nom de votre fournisseur subsonique.

5

Si vous utilisez seulement un fournisseur (la plupart des gens sont) et que vous voulez profiter de la table struct que SubSonic génère pour vous:

CustomerCollection customers = DB.Select().From(Customers.Schema) 
    .Where(Customers.Columns.CustomerName).IsEqualTo("Thomas") 
    .And(Customers.Columns.DOB).IsBetweenAnd(DateTime.Today, DateTime.Today.AddDays(14)) 
    .ExecuteAsCollection<CustomerCollection>(); 
0

Je pense que je dois expliquer plus sur ce qui est, je J'aimerais avoir, je voudrais envoyer un e-mail à tous les clients qui fêtent dans les 2 prochaines semaines en 3 fois, 2 semaines avant son anniversaire, 3 jours avant et 1 jours avant.

+0

Vous * devez * pouvoir modifier votre question d'ajouter cette information à lui. –

0

Dans SQL Server, ce serait quelque chose que vous pourriez comme

select name, dob 
from customer 
where datediff(day,getDate(),dob)+1 = 14 
or datediff(day,getDate(),dob)+1 = 3 
or datediff(day,getDate(),dob)+1 = 1 

En subsonique, écrivez cela comme si:

new Select(Customer.NameColumn, Customer.DobColumn) 
.From(Customer.Schema) 
.Where("datediff(day,getDate(),dob)+1=14") 
    .Or("datediff(day,getDate(),dob)+1=3") 
    .Or("datediff(day,getDate(),dob)+1=1")