SQL Server SQL to PostgreSQL SQL



我需要将以下SQL服务器代码转换为PostgreSQL代码。 任何帮助将不胜感激。

SQLServer SQL:

CAST(DATEADD(ww,DATEDIFF(ww,0,trans_date),-1)as date) as week

我认为该代码的作用是将trans_date的值"舍入"到本周的开头。在 Postgres 中,您可以使用date_trunc()函数执行此操作:

date_trunc('week', trans_date)

请注意,这总是返回一个timestamp,如果你需要一个真实的date值,则强制转换结果:

date_trunc('week', trans_date)::date

如果应该是一周开始的前一天,只需从结果中减去一天:

date_trunc('week', trans_date)::date  - 1

最新更新