Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Per ottenere la data da datetime in sql

Il motivo per cui la tua query non restituisce la riga che ti aspetti è perché GETDATE() restituisce la parte di data e ora nel momento in cui la query è stata eseguita. Il valore nel tuo DateCreated la colonna non corrisponderà alla parte temporale, quindi non vengono restituite righe.

Esistono vari modi per costruire una query in modo che valuti la data in base solo al componente della data. Ecco un esempio:

WHERE YEAR(datecreated) = YEAR(GETDATE())
  AND MONTH(datecreated) = MONTH(GETDATE())
  AND DAY(datecreated) = DAY(GETDATE())

La sfortunata realtà è che qualsiasi query che utilizzi una funzione sulla colonna significa che se esiste un indice nella colonna, non può essere utilizzato.