Oracle - 从时间戳字段截断时间

Oracle - truncating time from a timestamp field

我想按天计算电子邮件点击率,但我无法确定查询的起始结构。有人可以帮忙吗?我正在学习 SQL,这个网站对我来说是一个很好的资源。谢谢!

SELECT TRUNC(EVENTTIMESTAMP, DATE) as DATE, COUNT(*)
FROM EMAILCLICK
GROUP BY DATE

EVENTTIMESTAMP 示例 = 02-JAN-20 02.32.50.462000000 PM

希望能帮到你。

select TRUNC(EVENTTIMESTAMP) as "DATE", COUNT(*)
from EMAILCLICK
GROUP BY TRUNC(EVENTTIMESTAMP)

您的查询有 3 个问题:

  1. TRUNC(EVENTTIMESTAMP, DATE)
  2. 语法错误
  3. GROUP BY 子句中缺少 TRUNC。您不能在 group by 子句中使用别名,您必须提及在 SELECT.
  4. 中使用的相同表达式
  5. DATE 是 Oracle 中的保留关键字。

您需要使用正确的语法:

SELECT TRUNC(EVENTTIMESTAMP) as "DATE", COUNT(*)
FROM EMAILCLICK
GROUP BY TRUNC(EVENTTIMESTAMP);

as DATE

请记住,DATE 是 Oracle 中的 保留关键字。您应该使用正确的别名或将其用作 带引号的标识符 ,方法是将其括在双引号 ".