使用mysql中的gmt-timezone时间戳创建数据域?

时间:2013-07-01 14:40:30

标签: mysql sql postgresql

我正在尝试将postgresql sql-query转换为mysql。使用翻译。

这是postgres中的查询:

comment_date_gmt timestamp without time zone DEFAULT timezone('gmt'::text, now()) NOT NULL,

它已转换为

comment_date_gmt timestamp DEFAULT timezone('gmt',

非闭合括号表示一切都不对。我想弄清楚这个查询应该是什么样子。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

唯一可靠的SQL查询方言转换器是人脑。

工具可以用于基础知识,例如数据类型重命名,但是首先使用标准类型编写查询可以避免许多类似的事情。

您将很难将使用查询变量的MySQL查询转换为PostgreSQL查询,或者将PostgreSQL(即井,SQL标准)递归公用表表达式转换为MySQL理解的内容。两者具有完全不同的存储过程语言,不同的内置函数和各种各样的东西。 array_aggunnest等等...大部分内容都需要使用MySQL变量转换为查询,而根据它可以完成。然后你有了row_numberleadlag等窗口函数,以及用作sum(blah) OVER (...)等运行窗口的聚合。通用转换器需要“理解”查询以实际完成工作。

由于您尚未确定转换器工具,因此无法确定指定问题的具体答案。

猜测,如果您将PostgreSQL查询更改为:

comment_date_gmt timestamp without time zone DEFAULT (current_timestamp AT TIME ZONE 'utc') NOT NULL,

这是PostgreSQL和其他兼容数据库理解的标准措辞。