在MYSQL
中,TIMESTAMPDIFF(MONTH, '2016-01-31', '2016-02-01')
会返回0
。
在Redshift
中,DATEDIFF(MONTH, '2016-01-31', '2016-02-01')
会返回1
。
如何让DATEDIFF(MONTH, '2016-01-31', '2016-02-01')
中的Redshift
返回0
?
目前我正在使用DATEDIFF(DAY, '2016-01-31', '2016-02-01')/30
。但这还不够好,因为有些月份有28-31天。
答案 0 :(得分:2)
MONTHS_BETWEEN
是解决此问题的好方法。
示例:
select months_between('1969-03-18', '1969-01-18') as months;
您可以在红移documentation中详细了解此信息。