我创建了查询!
SELECT install_time, Count(id)
FROM (SELECT DISTINCT install_time, id
FROM mytab
where event='run'
and install_time>='09.01.2017' and install_time<='09.05.2017')
GROUP BY install_time
但install_time
的格式类似于09-05-2017 5:34:23
但我需要这种格式,没有小时,分钟和秒
09-05-2017
如何更改此日期格式?
答案 0 :(得分:2)
首先,您不需要子查询。
其次,日期/时间功能因数据库而异。这是一种假设date()
函数用于删除时间组件的方法:
SELECT DATE(install_time), COUNT(DISTINCT id)
FROM mytab
WHERE event = 'run' AND
install_time >= '2017-09-01' AND install_time < '2017-09-06'
GROUP BY DATE(install_time)
ORDER BY DATE(install_time);
请注意,我还将日期格式更改为标准格式 - 这适用于大多数数据库。并且,我更改了install_time
的第二个比较,以考虑时间组件。
以下是date()
函数的某些等价物(至少在MySQL,SQLite,BigQuery和DB2中有效):
cast(install_time as date)
date_trunc('day', install_time)
trunc(install_time)
cast(install_time as format 'YYYYMMDD')