如何在sql中更改日期格式

时间:2017-10-22 15:19:30

标签: sql

我创建了查询!

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

如何更改此日期格式?

1 个答案:

答案 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中有效):

  • SQL Server:cast(install_time as date)
  • Postgres:date_trunc('day', install_time)
  • Oracle:trunc(install_time)
  • Teradata:cast(install_time as format 'YYYYMMDD')