2011-03-15 3 views
0

Je voudrais récupérer la date précédente (c'est-à-dire, date actuelle moins 1) et l'utiliser dans une requête via un opérateur =.Comment récupérer la date précédente et l'utiliser dans une requête?

j'ai eu la requête suivante pour récupérer la date précédente:
select DATEADD(DD, DATEDIFF(DY, 0, GETDATE()), -1)

Il donne: 2011-03-14 00: 00: 00.000

Je voudrais seulement obtenir: 2011 -03-14, et l'utilise dans une requête pour vérifier les données d'une colonne.

Quelque chose comme:
select * from table where column1 in ('values list') and date=(previous_date)

Comment puis-je combiner les deux et l'obtenir dans le format que je veux?

+0

r u faire envoyer la valeur des paramètres de l'application? Si oui quelle application vous développez son en php ou .net? –

+0

@Emaad: Je vais utiliser .Net pour cela. Et c'est peut-être à partir d'un script que j'utiliserai cette requête. – CodingInCircles

+0

ok donc vous envoyez les paramètres dans cette requête, ryt? –

Répondre

1

J'ai eu ce que je cherchais:
(SELECT CONVERT(VARCHAR(10),DATEADD(DD, DATEDIFF(DD, 0, GETDATE()), -1),120))

Merci pour votre aide!

2

Cela peut résoudre votre problème.

select * from table where 
column1 in ('values list') and 
DATEADD(DD, DATEDIFF(DY, 0, date), 0)=DATEADD(DD, DATEDIFF(DY, 0, GETDATE()), -1) 
+0

@Ashish: Je dois faire correspondre la date précédente avec une date dans la base de données. Comment puis je faire ça? – CodingInCircles

+0

date = (date_précédente). Ici vous avez previous_date dans votre format personnalisé. Vous pouvez modifier le format de votre colonne [Date] pour qu'elle corresponde exactement à la date précédente. Cela permettra de résoudre votre problème. Quel est le résultat de la requête ci-dessus que je vous ai donnée? –

+0

J'ai une erreur: P :(Ma date dans la base de données est au format aaaa-mm-jj et j'ai besoin d'obtenir la date précédente dans le même format pour les comparer – CodingInCircles

1

Utilisation:

DECLARE @Date Datetime; 


    SET @Date = DATEADD(DD, DATEDIFF(DY, 0, GETDATE()), -1); 


    select * from table where column1 in ('values list') and Date = @Date 

Cordialement

+0

Pour une raison quelconque, obtenez l'erreur suivante: Doit déclarer la variable scalaire "@Date". Tout semble être en ordre cependant. – CodingInCircles

+1

J'ai découvert que lorsque vous modifiez votre réponse, le PO n'est pas averti à moins que vous ne l'abordiez dans un commentaire (avec la notation '@ nickname', s'il s'agit d'un commentaire à votre propre réponse). –

1
select * from table where column1 in ('values list') 
and CAST(date as DATE)=CAST(DATEADD(DD, DATEDIFF(DY, 0, GETDATE()), -1) as DATE) 
0
declare @date varchar(10); 
SELECT @date=(CONVERT(VARCHAR(10),DATEADD(DD,-1,GETDATE()),120)) 
select * from EMPOFFADDRESS where convert(varchar(10),entry`enter code here`date,120) = @date 
+1

J'ai testé ...Cela fonctionne bien. – JRR

-1
SELECT DATEADD(DAY,1,EOMONTH(getdate(),-1)) as 'FirstDate', 
     DATEADD(day, -1, convert(date, GETDATE())) as 'yesterdayDate' 
+1

Merci pour cet extrait de code, qui peut fournir une aide immédiate. Une explication appropriée [améliorerait considérablement] (// meta.stackexchange.com/q/114762) sa valeur éducative en montrant * pourquoi * ceci est une bonne solution au problème, et le rendrait plus utile aux futurs lecteurs avec des semblables, mais pas identique, des questions. S'il vous plaît [modifier] votre réponse pour ajouter une explication, et donner une indication des limites et des hypothèses qui s'appliquent. –

Questions connexes