我正在使用PostreSQl服务器并且必须获取按时间戳的日期部分分组的数据(即逐个月或一年或一周),所以我使用Extract(年份来自时间戳)功能,但我在
Postgresql文档中看到有一个函数date_part(‘year’,timestamp)也可以做同样的事情.在这里我混淆了我必须使用哪个功能以及哪个功能将是高效的.另请告诉我是否还有另一种通过日期部分获取数据的好方法.
解决方法
它们都是一样的.
事实上,extract()被重写到date_trunc() – 检查执行计划,你会看到.
extract()符合SQL标准,date_trunc()是Postgres特定的查询.当一个人转换到另一个人时,绝对没有性能差异.如果您更喜欢编写标准SQL,请坚持extract()