数据库
首页 > 数据库> > 在SQL(MySQL)中根据今天的日期返回查询结果

在SQL(MySQL)中根据今天的日期返回查询结果

作者:互联网

我有一个得到帮助的查询,但我被困在另一位.

我的代码是

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

我现在想做的是仅显示在当前日期输入的结果?日期列在表2中.日期列的格式是日期和时间(例如1341241153),它由CRM通过这种方式自动设置.我不确定这是什么格式!

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

这是一个MySQL数据库.

任何帮助将不胜感激!

解决方法:

您应该在date列上使用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 and curdate() = date( from_unixtime( b.crm_date_time_column ) ) )
GROUP BY status_id

标签:sql,mysql,where-clause
来源: https://codeday.me/bug/20191013/1907533.html