Unix 如何将sql中两个日期的差舍入为整数天?

Unix 如何将sql中两个日期的差舍入为整数天?,unix,cgi,oracle-sqldeveloper,Unix,Cgi,Oracle Sqldeveloper,如何将sql中两个日期的差取整为整数天。Round语句,并不完全有效 a=15/02/2016; b=15/02/2016; round((a-b),0); /* output 1 */ a=15/02/2017; b=23/03/2017; round((a-b),0); /* output is +36 instead of it being -36 */ round((a-b),0,1); /*and when i used truncate statement like */

如何将sql中两个日期的差取整为整数天。Round语句,并不完全有效

a=15/02/2016; 
b=15/02/2016; 
round((a-b),0); /* output 1 */

a=15/02/2017;
b=23/03/2017;
round((a-b),0); /* output is +36 instead of it being -36 */

round((a-b),0,1); /*and when i used truncate statement like */

                  /* it's throwing an error saying too many arguments*/

[1] 有人能帮忙吗?欢迎使用小型代码/命令

SQL Server:
选择日期diff(日期,'2017-03-23','2017-02-15')作为DiffDate

返回-36您可以使用MySQL函数:

SET @a='2017/02/15';
SET @b='2017/03/23';
SELECT TO_DAYS(@a)-TO_DAYS(@b);
SELECT ABS(TO_DAYS(@a)-TO_DAYS(@b));
要获得绝对差值,请使用函数:

SET @a='2017/02/15';
SET @b='2017/03/23';
SELECT TO_DAYS(@a)-TO_DAYS(@b);
SELECT ABS(TO_DAYS(@a)-TO_DAYS(@b));

这与数据库有什么关系?您可能需要将其缩小到1个数据库品牌,因为事情可能会发生变化,这是mysql、sql server和oracle一起标记的问题?!请只指定一个数据库。只需询问问题的根本原因是什么?