SELECT LIKE 查询失败

SELECT query with LIKE fails

我正在使用 SQL SELECT 查询来恢复特定日期的所有行。

我正在使用的列名为 TimeStamp(日期时间)

(来自该列的数据示例 = 01/02/2018 07:55:55

我想要的是 return 特定日期的所有行,例如 24/06/2019

我试过了

SELECT top 20 TimeStamp
from Report
where TimeStamp = '02/01/2018 07:55:55'

其中 return 一行(这是正确的,因为只有一行包含此数据)

如果我再尝试

SELECT top 20 TimeStamp
from Report
where TimeStamp LIKE '02/01/2018%'

我没有得到任何结果,我也试过转义正斜杠

SELECT top 20 TimeStamp
from Report
where TimeStamp = '02\/01\/2018%'

大多数数据库支持名为 left() 的字符串函数。如果我假设你的 "timestamp" 是一个字符串,那么:

where left(timestamp, 10) = '01/02/2018'

但是,它应该存储为日期或 date/time。如果是这样,那么您可以这样做:

where timestamp >= '2018-02-01' and
      timestamp < '2018-02-02'

注意标准格式日期的使用 (YYYY-MM-DD)。这是大多数数据库实现日期文字的方式。

在SQL服务器中,您还可以使用:

where convert(date, timestamp) = '2018-02-01' 

这个版本和之前的版本都会在 timestamp 上使用索引,所以都是合理的解决方案。

这应该有效

SELECT TimeStamp FROM report where convert(Date, TimeStamp) = '2019-06-24'

select timestamp from report where timestamp between '2019-06-24' and '2019-06-25'。这将为您提供 2019-06-24 00:00:00 和 2019-06-25 00:00:00 之间的所有内容,因此所有日期为 2019-06-24

的记录

将时间戳值转换为日期。

SELECT TimeStamp 
FROM report 
WHERE CAST(TimeStamp AS DATE) = '2019-06-24'