2013-07-18 6 views

risposta

21

provare in questo modo:

select * from tab 
where DateCol between DateAdd(DD,-7,GETDATE()) and GETDATE() 
+1

Vuole solo la data, quindi potrebbe essere una buona idea sostituire SYSDATETIME() con GETDATE() – makciook

+1

@makciook - entrambi ['SYSDATETIME()' e 'GETDATE()'] (http://msdn.microsoft.com/en-us/library/ms186724.aspx) restituiscono valori datetime. –

+0

@Damien - true, ma SYSDATETIME() fornisce una precisione non necessaria e il nome non è appropriato per l'uso e la manutenzione futura. – makciook

5

Query nella risposta di Parado è corretta, se si vuole usare MySql troppo invece GETDATE() è necessario utilizzare (perché hai codificato questa domanda con il server SQL e MySQL) :

select * from tab 
where DateCol between adddate(now(),-7) and now() 
+0

È una cattiva idea riferirsi ad altre risposte su SO di la loro posizione (quello che presumo tu intendessi per "query superiore"), poiché i voti possono cambiare le posizioni relative delle risposte. Se vuoi fare riferimento ad un'altra risposta, solitamente è meglio aggiungere un link (ogni risposta ha un'opzione 'share' sotto di essa, da cui è possibile ottenere un URL) e/o usare il nome degli altri utenti. –

+1

Ok ok, scusa. Sono novizio;) –

Problemi correlati