返回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也有类似的问题。有没有可能也帮上忙?