Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.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/5/sql/78.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
返回SQL(MySQL)中基于今天日期的查询结果_Mysql_Sql_Where Clause - Fatal编程技术网

返回SQL(MySQL)中基于今天日期的查询结果

返回SQL(MySQL)中基于今天日期的查询结果,mysql,sql,where-clause,Mysql,Sql,Where Clause,我有一个问题,我得到了帮助,但我被困在另一位 我的密码是 SELECT a.name, COUNT(*) AS num FROM table2 b INNER JOIN table1 a ON b.status_id=a.id GROUP BY status_id 我现在想做的是只显示在当前日期输入的结果?日期列在表2中。date列的格式为date and time(例如1341241153),由CRM以这种方式自动设置。我不知道这是什么格式 我只需要检查日期是否与当前日期匹配。我希望这

我有一个问题,我得到了帮助,但我被困在另一位

我的密码是

SELECT a.name, COUNT(*) AS num FROM table2 b 
INNER JOIN table1 a 
ON b.status_id=a.id 
GROUP BY status_id
我现在想做的是只显示在当前日期输入的结果?日期列在表2中。date列的格式为date and time(例如1341241153),由CRM以这种方式自动设置。我不知道这是什么格式

我只需要检查日期是否与当前日期匹配。我希望这是清楚的

这是一个MySQL数据库

我们将感激您的帮助

试试这个:

SELECT a.name, COUNT(*) AS num FROM table2 b 
INNER JOIN table1 a 
ON b.status_id=a.id 

where DATE(column_date) = DATE(now())  
GROUP BY status_id
试试这个:

SELECT a.name, COUNT(*) AS num FROM table2 b 
INNER JOIN table1 a 
ON b.status_id=a.id 

where DATE(column_date) = DATE(now())  
GROUP BY status_id

您应该在日期列上使用
from_unixtime()
函数,该列包含
1341241153
等值
因为这些值似乎是以unix时间戳格式存储的

示例

mysql> select
    ->     from_unixtime( 1341241153 ) as 'my_datetime_1341241153',
    ->     date( from_unixtime( 1341241153 ) ) as 'my_date_1341241153',
    ->     curdate(),
    ->     curdate() > date( from_unixtime( 1341241153 ) ) 'is_today_later?',
    ->     curdate() = date( from_unixtime( 1341241153 ) ) 'is_today_equal?',
    ->     curdate() < date( from_unixtime( 1341241153 ) ) 'is_today_before?'
    -> from
    ->     dual
    -> \G
*************************** 1. row ***************************
my_datetime_1341241153: 2012-07-02 20:29:13
    my_date_1341241153: 2012-07-02
             curdate(): 2012-07-15
       is_today_later?: 1
       is_today_equal?: 0
      is_today_before?: 0
1 row in set (0.00 sec)

您应该在日期列上使用
from_unixtime()
函数,该列包含
1341241153
等值
因为这些值似乎是以unix时间戳格式存储的

示例

mysql> select
    ->     from_unixtime( 1341241153 ) as 'my_datetime_1341241153',
    ->     date( from_unixtime( 1341241153 ) ) as 'my_date_1341241153',
    ->     curdate(),
    ->     curdate() > date( from_unixtime( 1341241153 ) ) 'is_today_later?',
    ->     curdate() = date( from_unixtime( 1341241153 ) ) 'is_today_equal?',
    ->     curdate() < date( from_unixtime( 1341241153 ) ) 'is_today_before?'
    -> from
    ->     dual
    -> \G
*************************** 1. row ***************************
my_datetime_1341241153: 2012-07-02 20:29:13
    my_date_1341241153: 2012-07-02
             curdate(): 2012-07-15
       is_today_later?: 1
       is_today_equal?: 0
      is_today_before?: 0
1 row in set (0.00 sec)
使用此解决方案:

SELECT     a.name, COUNT(*) AS num
FROM       table2 b
INNER JOIN table1 a ON b.status_id = a.id
WHERE      b.datecol >= UNIX_TIMESTAMP(CURDATE()) AND
           b.datecol < UNIX_TIMESTAMP(CURDATE() + INTERVAL 1 DAY)
GROUP BY   b.status_id
第二个条件检查被删除,因为它不需要检查它是否在将来的某一天。

使用此解决方案:

SELECT     a.name, COUNT(*) AS num
FROM       table2 b
INNER JOIN table1 a ON b.status_id = a.id
WHERE      b.datecol >= UNIX_TIMESTAMP(CURDATE()) AND
           b.datecol < UNIX_TIMESTAMP(CURDATE() + INTERVAL 1 DAY)
GROUP BY   b.status_id

第二个条件检查被删除,因为它不需要检查它是否在未来的某一天。

还记得OP声明的
列_date
保存日期和时间,所以
2012-07-15 12:49:36
2012-07-15 00:00
(日期输出(NOW()),即使是在同一天内。还记得OP上说,
column\u date
保存日期和时间,所以
2012-07-15 12:49:36
2012-07-15 00:00:00
(日期输出(NOW()),即使是在同一天内。绝对完美!非常感谢您的帮助!我一直在将此应用于我需要做的大多数查询,除了一个我仍然有问题的查询!我已经为此创建了另一个问题。如果您也能帮上忙,那将是惊人的。绝对完美!非常感谢您uch感谢您的帮助!我已经申请将此应用于我需要做的大多数查询,除了一个我仍然有问题的查询!我已经为此创建了另一个问题。如果您也能提供帮助,那将是令人惊讶的。谢谢您的回答。这也非常有效!我的另一篇文章也有类似的问题SQL有没有可能也帮上忙?谢谢你的回答。这也很好!我对另一个MySQL也有类似的问题。有没有可能也帮上忙?