Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Mysql选择记录从现在到未来7天_Php_Mysql_Sql_Wordpress_Datetime - Fatal编程技术网

Php Mysql选择记录从现在到未来7天

Php Mysql选择记录从现在到未来7天,php,mysql,sql,wordpress,datetime,Php,Mysql,Sql,Wordpress,Datetime,您好,我正在wordpress中创建一个函数,我需要在现在和未来7天内获取记录。我尝试了一些查询,但没有得到结果 SELECT * from wp_postmeta where wp_postmeta.meta_key = '__rp_order_date'; 上面的查询返回 meta_id | post_id | meta_key | meta_value --------+---------+-----------------+------------------- 7023

您好,我正在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
但当我按日期筛选时,它不会显示任何记录

方法1

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);
方法2

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)
我想不出来,提前谢谢。

代替 datewp_postmeta.meta_值使用STR_到datewp_postmeta.meta_值,'%Y-%m-%d'

您也可以这样使用,您必须在时间内CONCAT:00将varchar转换为datetime

现场演示


这是因为您将2018-03-26 12:00 AM存储为字符串,而不是将该列设置为DATETIME类型,如果这是您的实际存储值。@FunkFortyNiner实际上是由插件存储的值,我无法控制它,是否有任何方法可以转换查询中的格式?谢谢您需要对其进行格式化-它可以工作,STR_TO_DATEwp_postmeta.meta_值,'%Y-%m-%d',从现在到日期添加,间隔9天,谢谢。欢迎@Ryvan您可以检查另一个方法,因为我只需要日期,所以我可以完全忽略时间,所以第一个解决方案更好,但是query.tanx很好
SELECT * 
FROM wp_postmeta 
WHERE wp_postmeta.meta_key = '__rp_order_date' 
AND STR_TO_DATE(CONCAT(SUBSTRING(wp_postmeta.meta_value,1,16),':00 ',SUBSTRING(wp_postmeta.meta_value,18,2)),'%Y-%m-%d %r') 
BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 7 DAY);