使用 sql 查询将元数据库中的预配置时间戳从 utc 格式转换为 ist

Posted

技术标签:

【中文标题】使用 sql 查询将元数据库中的预配置时间戳从 utc 格式转换为 ist【英文标题】:Convert preconfigured timestamp in metabase from utc format to ist using sql queries 【发布时间】:2017-07-28 18:11:02 【问题描述】:

showing the initial timestamp format

目前我正在研究元数据库。我的时间戳类似于“2017 年 6 月 23 日星期五 8:43 AM”。我需要将此时间戳从 utc 转换为 ist 形式。

代码是这样的


SELECT CAST("public"."locations"."timestamp" AS date) AS "timestamp"
FROM "public"."locations"
GROUP BY CAST("public"."locations"."timestamp" AS date)
ORDER BY CAST("public"."locations"."timestamp" AS date) ASC

【问题讨论】:

您的实际问题是什么? 我必须使用 mysql 查询将此格式转换为 ist(目前根据 utc 显示) 【参考方案1】:

在 PostgreSQL1 中并假设一个简化的场景专注于将时间戳转换为 IST,这就是:

CREATE TABLE locations
(
    id serial PRIMARY KEY,
    your_timestamp timestamp with time zone
) ;

注意:不要使用timestamp 作为列名,以避免混淆。 timestamp 已经是 type

INSERT INTO locations
    (your_timestamp)
VALUES
    ('2017-01-01 10:00:00 UTC'),
    ('2017-01-01 10:00:00 Europe/Rome'),
    ('2017-01-01 10:00:00 America/New_York'),
    ('2017-01-01 10:00:00 IST') ;

您将转换所有这些时间(不仅是已经输入为 UTC 的时间,或者连接到数据库的客户端的本地时区),您将使用:

SELECT
    id, 
    your_timestamp,
    your_timestamp AT TIME ZONE 'UTC' AS timestamp_utc,
    your_timestamp AT TIME ZONE 'IST' AS timestamp_ist
FROM
    locations ;
编号 |你的时间戳 |时间戳_utc | timestamp_ist -: | :--------------------- | :----------------- | :----------------- 1 | 2017-01-01 10:00:00+00 | 2017-01-01 10:00:00 | 2017-01-01 12:00:00 2 | 2017-01-01 09:00:00+00 | 2017-01-01 09:00:00 | 2017-01-01 11:00:00 3 | 2017-01-01 15:00:00+00 | 2017-01-01 15:00:00 | 2017-01-01 17:00:00 4 | 2017-01-01 08:00:00+00 | 2017-01-01 08:00:00 | 2017-01-01 10:00:00

您可以在 dbfiddle here

上查看

参考资料:

关于 AT TIME ZONE 的 PostgreSQL 文档

1 我不知道 MySQL 的等价物。我希望您实际上使用的是 PostgreSQL,因为您的标识符是 "double quoted" 而不是 MySQL 中的 `backtick quoted`

【讨论】:

你没有理解我的问题。我说查询已经以所示格式进行(参见链接的图像)。我想以某种方式使用现有查询将时间更改为 IST。感谢您的努力 您的原始查询完成它的工作。如果你想从一个时区转换到另一个时区,你需要做另一件事:使用AT TIME ZONE 'IST'

以上是关于使用 sql 查询将元数据库中的预配置时间戳从 utc 格式转换为 ist的主要内容,如果未能解决你的问题,请参考以下文章

如何编写SQL查询以基于时间戳从DB获取数据

将元组中的列表转换为numpy数组?

PL/SQL - 在将元数据假脱机到文件后更新表

U-SQL 查询数据源

将元数据库链接到 Google 表格

查询优化:将元数据连接到值列表表