Comment effectuer une search par date dans ce format JJ / MM / AAAA à partir de la colonne TimeStamp dans SQL Server?

J'ai une table appelée Transaction. L'un des noms de colonnes est Time , le type de données est TimeStamp . Donc datatables ressemblent à ceci 2015-01-14 23:22:11.000 .

Maintenant, je veux faire une search par Date dans where clause dans ce format DD/MM/YYYY

par exemple

 select * FROM Transaction WHERE Date='25/12/2016' // DD/MM/YYYY 

Merci

Votre question n'est pas complètement claire, mais il semble que vous ayez besoin de comparer datatables de date au format DD/MM/YYYY rapport à une colonne d'horodatage dans votre tableau. Une option consiste à utiliser la fonction CONVERT pour convertir l'input et votre colonne d'horodatage en un format DATETIME commun, puis effectuer la comparaison.

 SELECT * FROM Transaction WHERE CONVERT(DATETIME, DATEDIFF(DAY, 0, TIME)) = CONVERT(DATETIME, '25/12/2016', 103) 

Cela renverra tous les loggings dont les composants de date sont '2016-12-25' . Notez que les deux côtés de la comparaison auront un composant time défini sur minuit ce jour-là.

 select * FROM Transaction WHERE Date=CONVERT(NVARCHAR(50), '25/12/2016', 103) DD/MM/YYYY 

Utilisez le format canonique (AAAA-MM-JJ) dans les colonnes de date:

 SELECT * FROM Transaction WHERE Date=convert(datetime, '2016-12-25') 

Vous pouvez également utiliser des plages horaires au format canonique AAAA-MM-JJ HH: MI: SS:

 SELECT * FROM Transaction WHERE Date BETWEEN convert(datetime, '2016-12-25 00:00:00') AND convert(datetime, '2016-12-25 23:59:59') 

Vous devez passer la date au format dd/mm/yyyy , prendre le type de données de paramètre comme varchar et convertir la date comme dans l'instruction SQL suivante

 SELECT CONVERT(varchar(25),CreateDate,103) as CreateDate, [UserID],[FirstName]+' '+[LastName] AS 'Name',[NomineeName],[City],[UserDocument] FROM [dbo].[UserMaster] WHERE CONVERT(varchar(25),[CreateDate],103) between convert(varchar(25),@datefrom,103) and convert(varchar(25),@dateto,103)