2016-05-30 75 views
1

我需要选择行时日期等于特定日期,其中作为TIMESTAMP列包含日期时间。sql查询选择日期从datetime等于行

这工作得很好,

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') 

在那里,当我避开时间,这是行不通的。

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

回答

1

你不需要通配符。 尝试此:

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

用途:

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

timestamp假设存储为datetime,然后使用不等式:

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

这允许数据库引擎如果适当的索引可用使用索引上TIMESTAMP