2013-10-08 2 views
-2

J'ai une instruction SQL qui compare les dates, essentiellement comme suit:horodatage excluant de sql

date1=date2 

Maintenant, le problème est si la date 1 == 10.08.2013 12:00 et date2 == 08/10/2013 13:00 étant donné que l'horodatage est différent, un jeu de résultats n'est pas renvoyé. Comment puis-je faire cela en ignorant l'horodatage?

Merci

+1

Non Monsieur Bond, je vous attendre à convertir l'horodatage au jj/mm/aaaa avant de comparer! –

+0

Basé sur vos commentaires [ici] (http://stackoverflow.com/a/19255101/334849) impliquant SQL Server (même si vous n'avez pas répondu à plusieurs demandes pour votre SGBDR), duplication possible de [Comparer deux DATETIME seulement par date pas l'heure dans SQL Server 2008] (http://stackoverflow.com/questions/1843395/compare-two-datetime-only-by-date-not-time-in-sql-server-2008), [Meilleure façon pour comparer les dates sans temps dans SQL Server] (http://stackoverflow.com/questions/9308635/best-way-to-compare-dates-without-time-in-sql-server) et beaucoup d'autres ... – LittleBobbyTables

+0

i utilise une base de données mssql –

Répondre

0

Comparez les deux, mais avec Date(), comme:

WHERE DATE(date1) = DATE(date2); 

Syntaxe peuvent dépendre exactement ce que la base de données que vous utilisez, cependant.

2

Dans de nombreuses bases de données que cela fonctionne:

trunc(date1) = trunc(date2) 

Cela tronquer la valeur date/heure alors que la date reste. Cela pourrait fonctionner pour Oracle et MySQL en utilisant des champs de date. Mais cela dépend de la base de données et du type de champ (timestamp vs date ou datetime).

+0

Battre moi :). Donc, un upvote au lieu de mon propre anwer. – thursdaysgeek

+1

Avez-vous un équivilent mssql, ne semble pas fonctionner avec mssql :( –

+1

Enfin, vous pouvez répondre à la demande de connaître votre SGBD Maintenant, pouvez-vous également partager le type de champ? MSSQL a-t-il une différence entre Date et Timestamp? savoir avant que je puisse google la réponse pour vous. :) – GolezTrol

0

Une autre option, si vous utilisez SQL Server

WHERE DateDiff(day, date1, date2) = 0 
0

En supposant SQL 2008+

WHERE cast(date1 as date) = cast(date2 as date)