Per una corretta configurazione dei vincoli WHERE è opportuno tener conto che:
Promozione.Nome = ’Regalissimi 2012’
Qualora invece il medesimo va fatto rispetto ad una stringa parametrizzata dall’utente, allora la sintassi sarà simili sostituendo per la stringa costante con il nome del parametro, sempre compreso tra parentesi quadre:
Promozione.Nome = ’[nome promo preferita]’
Promozione.Nome = ‘Regalissimi%’
Promozione.Nome = ‘[nome promo preferita]%’
Determinato il campo di riferimento e gli eventuali valori di inizio e fine di riferimento la sintassi prevederà di esprimere le date di validità tramite il casting con la convert e ponendo rispettivamente gli operatori di confronto “>=” e “<” rispettivamente.
In un confronto tra date nel vincolo WHERE attraverso il “minore uguale” e/o “maggiore uguale” è necessario applicare una convert (es. convert(datetime, ‘[data validità interessata]’, 120), dove 120 è il formato) per poter fare confronti tipo:
DataValidità >= convert(…) oppure in DataValidità <= convert(…);
in questo ultimo caso è necessario però specificare anche la parte dell’ora, dato che il vincolo di minore uguale tende ad applicare un filtro di selettività anche sull’orario. Pertanto nell’esempio se vogliamo filtrare tutte le righe con data di validità minore uguale ad una specificata (es. 06/06/2013) è necessario applicare una condizione seguente:
“Where DataValidita <= convert(datetime, ‘[data validità interessata] 23:59:59’, 120)”.
Ad esempio si supponga di voler selezionare tutti i Conti aventi data di validità corrispondente ad una specifica data, la query da configurare può essere così definita:
NOTA BENE: il separatore da utilizzare nella formattazione della porzione “ora-minuti-secondi” dipenderà dalla cultura utilizzata da SQL Server: potranno essere pertanto i “:” oppure “.”; se tale formattazione dovesse essere non corretta, Passepartout Menu darà una notifica a video sospendendo l’esecuzione della query (avvenuta o per richiesta di anteprima o per altra operazione).
Con la finestra di inserimento del valore del parametro è possibile inserire la porzione “giorno-mese-anno”, che sarà poi inserito all’interno del vincolo WHERE: è peraltro necessario specificare anche la porzione “ora-minuti-secondi” affinché la query restituisca l’output desiderato:
Pertanto il vincolo “Conti per data di validità uguale ad una data specificata” deve essere interpretato come “Conti per data di validità compresa dalle 00.00.00 della data specificata alle 23.59.59 della medesima data interessata”.