显示语法错误,错误代码:1064 靠近 WITH 'cohort_items AS ( 选择 DATE_TRUNC('M



响应:

错误代码:1064。您的 SQL 语法有误;检查 与您的 MySQL 服务器版本相对应的正确手册 在第 1 行的"cohort_items as ( 选择 month(U.created_at( 作为同期群"附近使用的语法

这是我的代码显示错误:

-- - users (id, created_at)
WITH cohort_items AS (
SELECT month(U.created_at) AS cohort_month,
id AS user_id
FROM public.users U ORDER BY 1,2)

我试图找到语法错误,但没有成功。请帮我找出我做错的地方。

Date_trunc不是mysql函数, 您可以使用日期或DATE_FORMAT((

你可以使用这个-

SELECT date(U.created_at) AS cohort_month,
id AS user_id
FROM public.users U
ORDER BY 1,2

SELECT DATE_FORMAT(U.created_at,'%d-%b-%Y') AS cohort_month,
id AS user_id
FROM public.users U
ORDER BY 1,2

MySQL - 在V8之前 - 不支持WITH。 它也不支持date_trunc(). 您可以使用以下命令获取每月的第一天:

SELECT (DATE(u.created_at) - INTERVAL (1 - DAY(u.created_at)) DAY) as cohort_month

我不确定WITH是否受支持,因此您的查询可能有其他错误。 如果是这样,那么问另一个问题,因为这个问题是专门关于DATE_TRUNC()的。

最新更新