web-dev-qa-db-fra.com

Définition d'une date variable dans SQL

Dans SQL Server Management Studio, j'essaie de référencer une date et une heure spécifiques, en utilisant une variable pour la date, comme indiqué ci-dessous.

Declare @specified_date Date
set @specified_date = '07-01-2013'

Select * 
from etc
Where CreatedDate > CONVERT(datetime, @specified_date & '00:00:00.000' )

Ce code ne fonctionne pas et je reçois cette erreur:

Les types de données date et varchar sont incompatibles dans l'opérateur '&'.

Les données utilisées comportent à la fois un code de date et d'heure, et au lieu de modifier plusieurs requêtes, j'aimerais pouvoir simplement définir la date une fois et faire en sorte que la variable la reporte. Si quelqu'un connaît une solution, ce serait formidable.

17
Dakota

Avez-vous essayé ceci:

Declare @specified_date Date
set @specified_date = '07-01-2013'
Select * from etc
Where CreatedDate > @specified_date
23
BWS

Utilisez le + au lieu du &. Vous devrez également transtyper la chaîne pour en faire une date/heure.

Declare @specified_date Date
set @specified_date = '07-01-2013'
Select * from etc
Where CreatedDate > CONVERT(datetime, @specified_date + cast('00:00:00.000' as datetime))
3
Travis Grannan