Lav*_*dor 2 postgresql amazon-redshift
尝试编写将与PostgreSQL和Amazon Redshift兼容的查询。
原因:将数据从PG同步到RS以执行复杂的查询,但是在dev / QA环境中,预算(和数据库大小)指示仅使用PG。
要求:返回昨天的日期
在PostgreSQL中:
SELECT DATE((NOW() - '1 DAY'::INTERVAL));
Run Code Online (Sandbox Code Playgroud)
在Redshift中:
SELECT DATE(DATEADD(DAY, -1, GETDATE()));
Run Code Online (Sandbox Code Playgroud)
问题:两者都不能在另一个平台上工作。
是否有兼容的方式来实现所请求的操作?ORM是我们要避免的选项。
以下在Postgres和Redshift中起作用:
ANSI标准SQL:
SELECT current_date - interval '1' day;
-- 2018-06-19 00:00:00
SELECT current_timestamp - interval '1' day;
-- 2018-06-19 13:40:06.509337+00
Run Code Online (Sandbox Code Playgroud)
Postgres(我相信Redshift也是如此)也支持替代(非标准)间隔语法: interval '1 day'
或更紧凑(不是100%ANSI SQL,但两者均可):
SELECT current_date - 1;
-- 2018-06-19 00:00:00
SELECT current_timestamp - 1;
-- 2018-06-19 13:40:06.509337+00
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1620 次 |
| 最近记录: |