Mysql 类SQL搜索

Mysql 类SQL搜索,mysql,sql,Mysql,Sql,我试着说在过去的7天里找到不包含01:的设备。 我尝试过Where列与“%01:%”不同,但它只是删除了01:并且仍然显示了在过去7天中具有01:的计算机 我有一张叫做设备的桌子。每个位置都有一个唯一的ID号。每个设备在凌晨1点和晚上7点运行作业。设备每周01:00:00应有1个条目,然后每周19:00:00应有3个条目。单元数据的Ex为2017-10-23 19:00:02 所以我从 Select * From devices Where locationid=## AND jobdate

我试着说在过去的7天里找到不包含01:的设备。 我尝试过Where列与“%01:%”不同,但它只是删除了01:并且仍然显示了在过去7天中具有01:的计算机

我有一张叫做设备的桌子。每个位置都有一个唯一的ID号。每个设备在凌晨1点和晚上7点运行作业。设备每周01:00:00应有1个条目,然后每周19:00:00应有3个条目。单元数据的Ex为2017-10-23 19:00:02

所以我从

Select * From devices 
Where locationid=## 
AND jobdate  < DATE_SUB(NOW(), INTERVAL 7 DAY)) 
AND jobdate not like '%01:%'
我得到的结果是两天前01:00运行的机器。作业日期显示为19:00,因此听起来好像刚删除了01:


我正在考虑对工作数据进行分组,然后说列出没有2017-10-23 01:00:02的计算机。

以下建议中有很多直觉,稍后将详细介绍

大多数数据库实际上并不存储日期/时间信息,这是一种所见即所得的方式。事实上,如果你想得够久,你就会明白日期/时间实际上是一组数字。这就是为什么我们可以计算从date1到date2的天数等。因此,如果数据存储为datetime数据类型,请不要尝试对datetime列使用like作为文本。相反,寻找可能适用于您的情况的与日期和时间相关的函数。在这里,你要找的不是一天中的特定时间。所以,若要从考虑中删除日期,请将其转换为时间,然后您可以对其进行筛选

下面,我将介绍一个新的列jobtime,它是jobdate的时间部分,然后查找任何不等于给定值的时间

MySQL 5.6架构设置:

问题1:

为什么上面有直觉?稍后我们会详细介绍

不知道使用的是哪一个数据库是非常令人沮丧的,因为供应商之间的语法差异很大。了解jobdate列的确切数据类型也很重要,因为如果它是varchar,例如,我刚才在上面的查询中完全愚弄了自己。换句话说,我们不太可能回答,因为缺少关键事实

最后,你有了数据!它已经在你的桌子上了。为什么不通过分享一些信息来让每个人都感到轻松呢?在你的问题中提供样本数据,以及预期的结果,即提供两件事,一件不能没有另一件,不要使用数据的图像!!!。希望您能从上面的示例中看到示例数据和结果是多么有用。例如,如果我的直觉偏离了方向,那么即使你没有阅读SQL,你也可以在一瞬间看出我的直觉偏离了方向


请再说一遍,这里提出的并非所有观点都适用于这个问题

请澄清你的问题,很难理解你想要什么。请阅读:我删除了不兼容的数据库标签。请仅使用您真正使用的数据库进行标记。示例数据和所需结果将非常有用。您可以使用mysql或sql server。如何声明表列。请向我们显示相应的CREATE TABLE语句、一些示例数据和预期结果。请尝试一个NOT EXISTS子查询。这不应该是“不象“%:01”吗?但我们仍然不知道这是文本列还是日期列。对于日期栏来说,方法会大不相同。
CREATE TABLE Devices 
    (`locationid` varchar(2), `jobdate` datetime)
;

INSERT INTO Devices 
    (`locationid`, `jobdate`)
VALUES
    ('##', '2017-10-23 01:00:00'),
    ('##', '2017-10-23 19:00:02')
;
select
*
from (
  select locationid, cast(jobdate as time) jobtime, jobdate
  from devices
  ) d
where locationid = '##'
and jobtime <> '01:00:00'
;
| locationid |  jobtime |              jobdate |
|------------|----------|----------------------|
|         ## | 19:00:02 | 2017-10-23T19:00:02Z |