使 Redshift 的 DATEDIFF 表现为 MySQL 的 TIMESTAMPDIFF
Posted
技术标签:
【中文标题】使 Redshift 的 DATEDIFF 表现为 MySQL 的 TIMESTAMPDIFF【英文标题】:Make DATEDIFF of Redshift behave as TIMESTAMPDIFF of MySQL 【发布时间】:2016-03-02 03:25:57 【问题描述】:在mysql
中,TIMESTAMPDIFF(MONTH, '2016-01-31', '2016-02-01')
返回0
。
在Redshift
中,DATEDIFF(MONTH, '2016-01-31', '2016-02-01')
返回1
。
如何使Redshift
中的DATEDIFF(MONTH, '2016-01-31', '2016-02-01')
返回0
?
目前我正在使用DATEDIFF(DAY, '2016-01-31', '2016-02-01')/30
。但这还不够好,因为有些月份有 28-31 天。
【问题讨论】:
【参考方案1】:MONTHS_BETWEEN
是解决这个问题的好方法。
例子:
select months_between('1969-03-18', '1969-01-18') as months;
您可以在红移documentation 中阅读更多相关信息。
【讨论】:
以上是关于使 Redshift 的 DATEDIFF 表现为 MySQL 的 TIMESTAMPDIFF的主要内容,如果未能解决你的问题,请参考以下文章
将 DATEDIFF 从 SQL Server 转换为 redshift
Redshift:DateDiff 调用上的 SqlAlchemy 错误