sql - 如何将 DATE_TRUNC 转换为 MariaDB?
问题描述
我在 PostgreSQL 中有以下选择语句:
DATE_TRUNC('{{time_interval}}',u.created_at) AS "Signup Date",
其中 {{time_internal}} 是设置为的变量month
我需要将该行转换为 MariaDB,这是我目前所拥有的:
DATE_FORMAT(CURDATE(), u.created_at) AS "Signup Date",
这没有像预期的那样输出结果,让我相信我错误地迁移了这行 SQL。
将 SQL 行从 PostgreSQL 迁移到 MariaDB 时,我做错了什么?
解决方案
我认为你需要使用一个case
语句:
select (case when @timeinterval = 'day'
then date(u.created_at)
when @timeinterval = 'month'
then u.created_at + interval (1 - day(u.created_at)) day
when @timeinterval = 'year'
then makedate(year(u.created_at), 1)
end) as Signup_Date
还有其他可能性,但是'day'
、'month'
和'year'
是最常见的日期部分。
推荐阅读
- angular - 无法获取输入电台列表
- selenium - 在 Jenkins 中运行我的测试用例时出现错误“java.lang.AssertionError:不支持的类型参数”
- java - 找不到类 org.glassfish.jersey.internal.inject.Binder
- scala - 无法使用 SBT 从 Maven 下载 lwjgl3-awt
- firebase - 云功能响应
- javascript - 在 iisnode 中运行 nodejs 得到 http://localhost/node/polyfills.c466c90744ce632ac8b9.js net::ERR_ABORTED 500(URL 重写模块错误。)
- javascript - 当任何动态导入无法加载文件时,如何手动加载 webpack 异步块?
- java - 将日期转换为 GMT
- web-scraping - 如何解释这个 robots.txt 文件?
- javascript - 重新加载父窗口