【发布时间】:2018-03-25 13:16:58
【问题描述】:
您好,我正在 wordpress 中创建一个函数,我需要在现在和未来 7 天之间获取记录。我尝试了几个查询。但无法得到结果。
SELECT * from wp_postmeta where wp_postmeta.meta_key = '__rp_order_date';
上面的查询返回
meta_id | post_id | meta_key | meta_value
--------+---------+-----------------+-------------------
7023 | 2979 | __rp_order_date | 2018-03-26 12:00 AM
但是当我按日期过滤时,它不显示任何记录。
方法一
SELECT * from wp_postmeta where wp_postmeta.meta_key = '__rp_order_date' and date(wp_postmeta.meta_value) BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 7 DAY);
方法二
SELECT * from wp_postmeta where wp_postmeta.meta_key = '__rp_order_date' and date(wp_postmeta.meta_value) <= DATE_ADD(CURDATE(), INTERVAL 7 DAY)
我的实际意图是执行这段代码,它也没有显示任何内容。
SELECT DISTINCT wp_woocommerce_order_items.order_id,wp_posts.post_status,wp_postmeta.meta_value as delivery_date from wp_woocommerce_order_items
INNER JOIN wp_posts on wp_posts.ID = wp_woocommerce_order_items.order_id
INNER JOIN wp_postmeta ON wp_postmeta.post_id = wp_woocommerce_order_items.order_id
where wp_posts.post_status='wc-processing' and wp_postmeta.meta_key = '__rp_order_date' and DATE(wp_postmeta.meta_value) <= DATE_ADD(CURDATE(), INTERVAL 7 DAY)
我想不通,提前谢谢。
【问题讨论】:
-
那是因为您将
2018-03-26 12:00 AM存储为字符串,而不是将该列设置为 DATETIME 类型,如果这是您的实际存储值的话.. -
@FunkFortyNiner 实际上是我无法控制的插件存储的值,有什么办法可以转换查询中的格式吗?谢谢
标签: php mysql sql wordpress datetime