Php 具有多个日期变量的查询
我对PHP和MySQL很陌生。我遇到了一个问题,我会尽力解释我的问题Php 具有多个日期变量的查询,php,mysql,Php,Mysql,我对PHP和MySQL很陌生。我遇到了一个问题,我会尽力解释我的问题 TODAY = 2013-01-13 18:37:00 PRODUCT = P000001 表:组装 ----------------------------------------------------------------- ∣ PRODUCT ∣ COMPONENT ∣ BEINFORCE ∣ WILLEXPIRE ∣ ---------------------
TODAY = 2013-01-13 18:37:00
PRODUCT = P000001
表:组装
-----------------------------------------------------------------
∣ PRODUCT ∣ COMPONENT ∣ BEINFORCE ∣ WILLEXPIRE ∣
-----------------------------------------------------------------
∣ P000001 ∣ C000001 ∣ 2013-01-01 18:37:00 ∣ 0000-00-00 00:00:00 ∣
-----------------------------------------------------------------
∣ P000001 ∣ C000002 ∣ 2013-02-01 18:37:00 ∣ 0000-00-00 00:00:00 ∣
-----------------------------------------------------------------
∣ P000001 ∣ C000003 ∣ 2013-01-01 18:37:00 ∣ 2013-01-10 18:37:00 ∣
-----------------------------------------------------------------
输出必须是:
-----------------------------------------------------------------
∣ PRODUCT ∣ COMPONENT ∣ BEINFORCE ∣ WILLEXPIRE ∣
-----------------------------------------------------------------
∣ P000001 ∣ C000001 ∣ 2013-01-01 18:37:00 ∣ 0000-00-00 00:00:00 ∣
-----------------------------------------------------------------
来自表集合的查询必须检查PRODUCT、BEINFORCE和WILLEXPIRE以及output表。如果我理解正确,包括问题下方的注释,则您需要符合以下条件的
集合的那些行
今天的BEINFORCE
小于或等于
有一个WILLEXPIRE
,它是零,我用它来表示未来的日期
匹配您请求的产品
您可以使用以下查询实现这一点,假设用户变量代表您的参数。当然,您也可以使用准备好的查询占位符
SELECT *
FROM ASSEMBLY
WHERE BEINFORCE <= @TODAY
AND WILLEXPIRE = '0000-00-00 00:00:00'
AND PRODUCT = @PRODUCT
选择*
从组装
你的意思是你想得到第一栏??不清楚你想做什么。你在寻找与BEINFORCE的精确时间戳匹配吗?同一天的时间戳?指定时间24小时内的时间戳?或者BEINFORCE和WILLEXPIRE之间的时间戳?这里的业务逻辑是什么?基本上是属于“产品”组件的“组件”列表。若要列出“BEINFORCE”已过期且“WILLEXPIRE”已过期的产品,我需要进行两次检查。WILLEXPIRE需要检查“0000-00-00 00 00:00:00”是否过期,以及是否插入了日期,如果在将来显示,则显示,如果在过去不显示。“0000-00-00:00:00”表示未插入WILLEXIRE!我认为问题在于我想做-WILLEXPIRE='0000-00-00 00:00:00',并且WILLEXPIRE>TODAY@user1682101:或
,而不是和
,因为您希望获得与两个条件中的任何一个匹配的行。用括号括起来。从ASSEMBLY
中选择*WHEREBEINFORCE
=“@TODAY”或WILLEXPIRE
=“0000-00-00 00:00:00”)和PRODUCT
=“@PRODUCT”尝试过,但仍然不起作用?括号是解决方案。我刚把“@TODAY”修好测试。所以,谢谢你,看起来一切都很好!