编辑:我一直盯着屏幕太长,意识到我实际上放下了6点(18)而不是4点(16)像我需要的。我有一行匹配18,这就是为什么只有一行不断返回。从技术上讲,如果我将其更改为16,我的代码就可以工作,但@Gordon Linoff的答案比JOIN快得多。我的发言需要0.33秒才能返回,而戈登的发言需要0.0003秒。什么SQL语句将返回匹配日期和日期时间的行?
我有三个表,我想通过两个日期时间列和日期列来匹配行。我现在的SQL命令如下:
SELECT puyforecast.timestamp, tacforecast.timestamp, date
FROM puyforecast, tacforecast, stnrain
WHERE puyforecast.timestamp LIKE CONCAT(date, ' 18:%')
AND tacforecast.timestamp LIKE CONCAT(date, ' 18:%');
此拉起只有第一个匹配行: 2013-01-28 18:37:33, 2013-01-28 18:37:34, 2013-01-28
这是我将从声明期望。我希望看到所有行都有匹配的date
和datetime
邮票。从puyforecast
和tacforecast
这两个时间戳应该只是时间在18:00(下午4点)的行。在比较datetimes
时,我不在乎几分钟或几秒钟,所以这些不应该对匹配产生影响。
我应该看到一个条目,像这样:
2013-01-28 18:37:33, 2013-01-28 18:37:34, 2013-01-28
2013-01-29 18:00:02, 2013-01-29 18:00:34, 2013-01-29
2013-01-30 18:00:02, 2013-01-30 18:00:34, 2013-01-30
...
和& C,与日期匹配回事,直到当前的日期。两列datetime
列的时间比date
列的时间要长。
我一直在尝试一些搜索,但我似乎无法找到它正在寻找什么。
你应该试图通过一个适当的连接来实现这一点(语法从1996年开始!) – Bohemian 2013-02-19 23:32:24
@Bohemian现在我看起来像一个SQL新手。 :)我在SO上发布了另一个SQL问题,胜利的答案是JOIN。我想这就是我可以重新开始搜索的地方。 – qmoog 2013-02-20 00:22:15