赞
踩
SqlSever的datediff函数,在Pgsql可能往往想到用date_part来实现,但这是有差异的,如:
SQLServer:select datediff(d,'2020-02-24 20:59:00','2020-02-25 20:00:00')执行结果为1,因为24与25相差1。
而Pgsql :select date_part('day','2020-02-25 20:00:00'::TIMESTAMP-'2020-02-24 20:59:00') 执行结果为0,因为两天相减之后不足1天。
计算相差年月日时都是同理,SQLServer以新的一年,一天为分界,Pgsql以相差时间为标准。针对计算不同的差应该有不同的方法,可以建一个datediff函数来实现以不同的情况,思路已在代码标注。
- create or replace function datediff
- (
- _datepart varchar(5),
- _startdate timestamp,
- _enddate timestamp
- )
- returns int
- as $body$
- /***********************************************************************************************
- author: crf
- time:2020-07-6
- select datediff('ww','2021-07-4 21:00:01.222','2021-07-11 21:00:01.676')
- pgsql实现mssql的datediff函数
- ********************************************************************************
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。