使 Redshift 的 DATEDIFF 表现为 MySQL 的 TIMESTAMPDIFF
Make DATEDIFF of Redshift behave as TIMESTAMPDIFF of MySQL
在MYSQL
, TIMESTAMPDIFF(MONTH, '2016-01-31', '2016-02-01')
returns 0
.
在Redshift
, DATEDIFF(MONTH, '2016-01-31', '2016-02-01')
returns 1
.
如何将Redshift
中的DATEDIFF(MONTH, '2016-01-31', '2016-02-01')
变为return0
?
目前我正在使用DATEDIFF(DAY, '2016-01-31', '2016-02-01')/30
。但这还不够好,因为有些月份有 28-31 天。
MONTHS_BETWEEN
很好的解决了这个问题。
示例:
select months_between('1969-03-18', '1969-01-18') as months;
您可以在 redshift documentation 中阅读更多相关信息。
在MYSQL
, TIMESTAMPDIFF(MONTH, '2016-01-31', '2016-02-01')
returns 0
.
在Redshift
, DATEDIFF(MONTH, '2016-01-31', '2016-02-01')
returns 1
.
如何将Redshift
中的DATEDIFF(MONTH, '2016-01-31', '2016-02-01')
变为return0
?
目前我正在使用DATEDIFF(DAY, '2016-01-31', '2016-02-01')/30
。但这还不够好,因为有些月份有 28-31 天。
MONTHS_BETWEEN
很好的解决了这个问题。
示例:
select months_between('1969-03-18', '1969-01-18') as months;
您可以在 redshift documentation 中阅读更多相关信息。