gpt4 book ai didi

mysql - date_trunc PostgreSQL 函数等于 mySQL

转载 作者:行者123 更新时间:2023-11-29 05:19:09 27 4
gpt4 key购买 nike

我正在尝试检索数据以进行统计,我正在使用 mySQL,但我无法使以下功能正常工作 - postgreSQL 正在工作。

我想检索上个月的请求并计算每天的新请求数量。

postgreSQL

SELECT count(*), date_trunc('day', created_at) as date FROM requests
WHERE(created_at > '2014-08-13 00:00:00') GROUP BY 2 ORDER BY 2 ASC;

*mySQL - 我的代码*

SELECT count(EXTRACT(DAY FROM created_at)), EXTRACT(DAY FROM created_at) as date
FROM `requests`
WHERE EXTRACT(DAY FROM NOW() - INTERVAL 1 MONTH)
GROUP BY date

最终代码

SELECT count( * ) , date( created_at ) AS date
FROM `requests`
WHERE DATE( created_at ) > DATE( DATE_SUB( NOW( ) , INTERVAL 1 MONTH ) )
GROUP BY date

最佳答案

你的情况的等效项是 date():

select date(created_at), count(*)
from requests
. . .

这不是一般的替换,但它可以删除日期的时间部分。

编辑:

也许这两个数据库更好的解决方案是:

select cast(created_at as date)

这是 ANSI 标准,适用于这两个数据库(以及 SQL Server)。我个人一般不会用这个,免得在Oracle中不小心用到,造成错误难以发现。 (date 在 Oracle 中有一个时间组件,唉。)

关于mysql - date_trunc PostgreSQL 函数等于 mySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28366188/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com