我有一个查询,因为我必须检查日期过滤搜索和我的查询,如下所示 created
is field and its contain datetime 并根据日期选择器我有“d-m-Y”甲酸
请帮我解决这个错误
SELECT o.*,u.first_name,u.last_name,u.email
FROM tbl_orders AS o
LEFT JOIN tbl_users AS u ON o.customer_id = u.id
WHERE 1=1 AND date_format(o.created,'%d-%m-%Y') >= "01-04-2017"
AND date_format(o.created,'%d-%m-%Y') <= "01-05-2017"
ORDER BY id ASC LIMIT 0 , 25
我找到了零结果 请帮助我
谢谢
最佳答案
您使用的日期文字不正确。您应该将 created
日期时间列与 '2017-05-01'
进行比较。试试这个完整的查询:
SELECT o.*, u.first_name, u.last_name, u.email
FROM tbl_orders AS o
LEFT JOIN tbl_users AS u
ON o.customer_id = u.id
WHERE o.created BETWEEN '2017-04-01' AND '2017-05-01'
ORDER BY id ASC LIMIT 0, 25
您不需要在 created
列上使用 DATE_FORMAT()
,假设您正确地告诉我们它是日期时间,因为它已经 日期类型。此外,在 SQL 中编写字符串文字时,通常应使用单引号而不是双引号。
请引用MySQL documentation有关可接受的日期文字格式的更多信息。
关于php - date_format 和 datetime 中的 sql 查询错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43488409/