2016-05-30 5 views
1

Ich muss die Zeile auswählen, wenn Datum ein bestimmtes Datum entspricht, wobei die Spalte TIMESTAMP datetime enthält.sql query select date gleiche Zeilen von datetime

Dies funktioniert gut,

select USERNAME from ACCESSACTIVITY where UPPER(LOCATION)=UPPER('remote-PC')and TIMESTAMP = STR_TO_DATE('28-05-2016 01:00:00','%d-%m-%Y %H:%i:%s') 

wo, wie, wenn ich Zeit zu vermeiden, es funktioniert nicht.

select USERNAME from ACCESSACTIVITY where UPPER(LOCATION)=UPPER('remote-PC')and TIMESTAMP = STR_TO_DATE('28-05-2016 ','%d-%m-%Y') 

Antwort

1

Sie haben nicht die Platzhalter benötigen. Try this:

select USERNAME from ACCESSACTIVITY where UPPER(LOCATION)=UPPER('remote-PC')and DATE(TIMESTAMP) = STR_TO_DATE('28-05-2016 ','%d-%m-%Y') 
2

Verwendung:

select USERNAME from ACCESSACTIVITY where UPPER(LOCATION)=UPPER('remote-PC')and TIMESTAMP LIKE STR_TO_DATE('28-05-2016 ','%d-%m-%Y')+'%' 
0

timestamp Unter der Annahme, als datetime gespeichert ist, dann Ungleichheit verwenden:

select USERNAME 
from ACCESSACTIVITY 
where UPPER(LOCATION)=UPPER('remote-PC') and 
    TIMESTAMP >= DATE('2016-05-28') AND 
    TIMESTAMP < DATE('2016-05-29'); 

Dies ist der Datenbank-Engine ermöglicht es auf TIMESTAMP einen Index zu verwenden, wenn ein geeigneter Index zur Verfügung steht.