【发布时间】:2018-04-14 09:37:52
【问题描述】:
我在使用 datetime 函数时遇到问题,到目前为止,还没有教程/问答留言板提供有效的答案:
我的目标:提取最近的订单备注是今天日期前 5 天的订单列表。订单备注日期时间填充在“create_date”列中。
我的困境:我想查找 MAX(create_date) 为 NOW()-5 天的订单。唯一能做任何事情的 datetime 函数是 NOW(),它运行得很好,但我似乎找不到可以从今天的日期减去 5 天并实际运行的函数/语法。
这是我的功能查询(我知道对于经验更丰富的人来说它可能看起来很乱,但我相对较新,现在只想要结果):
SELECT cant.*
FROM (
SELECT notes.order_number, create_date, note_text, admin_username,
ships.status
FROM ordernotes notes
JOIN shipments ships
ON notes.order_number=ships.order_number
WHERE ships.status='cant_fulfill'
AND create_date<NOW()
) cant
WHERE admin_username IN ('name','name','name','name')
AND note_text LIKE '%LTK%'
LIMIT 30
这会提取适当类型的结果,但我需要过滤这些结果以找到 NOW() 之前 5 天的MAX(create_date)。我曾考虑尝试在某处使用MAX() 函数,但如果我尝试这样做,查询将失败。
以下是我测试过的一些简单查询示例和结果。我很茫然。
SELECT * FROM ordernotes LIMIT 10: WORKS.
SELECT MAX(create_date)FROM ordernotes LIMIT 10: WORKS
SELECT MAX(create_date), order_number, sku FROM ordernotes LIMIT 10: --FAILS--
SELECT * FROM ordernotes WHERE MAX(create_date)<NOW() LIMTI 10:--FAILS--
SELECT * FROM ordernotes WHERE MAX(create_date)='2017-10-01':--FAILS--
【问题讨论】:
-
您的查询看起来不像 SQL Server
-
这是 MySQL 吗?准确标记 dbms。
-
是mysql,请把tag改成mysql
-
感谢您的意见。我的工作只需要很少使用这个工具,而这份工作是我第一次接触它。因此,培训很少且含糊不清。我什至不知道这是 MySQL,尽管我怀疑可能是这样的问题。我已按要求更改了标签。
标签: postgresql datetime