在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