mysql
2014-01-25 253 views 2 likes 
2

计数传真由夜班晚上10点完成的 - 早上7点,MYSQL日期范围和时间范围

日期和时间,在不同的领域

$stmt = $db -> prepare("SELECT count(*) FROM fax WHERE 
       date BETWEEN CURDATE() and CURDATE() + INTERVAL 1 DAY 
        and time >= '22:00:00' and time <= '7:00:00' 
         and shift='GY' 
          and complete=1");     
    $stmt -> execute(); 
    echo $GY_COMP = $stmt -> fetchColumn(); 

这个查询总是产生0,但有数据。

有人可以帮我查询吗? 感谢提前:)

+0

你从db中获得计数的方式是错误的。你应该选择计数,而不是记录来计算它们。 –

+0

谢谢你。这是一个坏习惯。你可以检查我的答案下面我在这个声明中有另一个问题 – Newbie

回答

4

我认为这个问题是你的时间比较:您有效地过滤掉一切与你的time >= '22:00:00' and time <= '7:00:00'

希望这有助于:http://sqlfiddle.com/#!2/45108/7/0

SELECT * FROM fax 
WHERE date BETWEEN CURDATE() and CURDATE() + INTERVAL 1 DAY 
and 
((time >= '22:00' and time <= '23:59') 
or 
(time >= '0:00' and time <= '7:00')) 
and shift='GY' 
and complete=1 
+0

哦,非常感谢最大 – Newbie

+0

最大可以检查我的答案我需要帮助在IF ELSE MYSQL。谢谢 – Newbie

0

感谢为最大时间比较, 我已经对语法做了更改

SELECT count(*) FROM fax 
    WHERE ((date = CURDATE() and (time >='22:00' and time <= '23:59')) 
      or (date=CURDATE() + INTERVAL 1 DAY and (time >= '00:00' and time <= '7:00'))) 
        and shift = 'GY' 
          and complete = 1 

现在我的问题是移位的范围是今天晚上10点到汤姆7am。

但是,当更改日期

HELP在使用我的语法上面仍然得到错误的if语句MYSQL

IF YES(选择此)ELSE IF(选择此) 如何正确IF ELSE在使用MYSQL语句

SELECT count(*) FROM fax 
    IF 
    (date = CURDATE() and (time >='22:00' and time <= '23:59') 
    THEN 
     SELECT count(*) FROM fax 
     WHERE ((date = CURDATE() and (time >='22:00' and time <= '23:59')) 
     or (date=CURDATE() + INTERVAL 1 DAY and (time >= '00:00' and time <= '7:00'))) 
     and shift = 'GY' and complete = 1 
    ELSE IF 
    (date = CURDATE() and (time >= '00:00' and time <= '7:00') 
      THEN 
      SELECT count(*) FROM fax 
      WHERE ((date = CURDATE() and (time >= '00:00' and time <= '7:00')) 
      or (date=CURDATE() - INTERVAL 1 DAY and (time >='22:00' and time <= '23:59'))) 
      and shift = 'GY' and complete = 1 
+0

请将您添加到最初的问题中:不要删除原始文本,而是在“更新”文本后附加新文本。另外,你最好描述一下你的目标是什么:例如,“我保持......在一个带有字段的表格中......我想获得所有的......例如,对于这个样本记录...我想得到这个输出......“ –

相关问题