两个函数都是用来取2个日期之间的差距,其中timestampdiff可以取各个位置,比如年,月,日等,而datediff只能取日。最大的区别,datadiff是日期1-日期2, 而timestampdiff是日期2-日期1。先后顺序是反的。
目录导航
DateDiff
日期1-日期2。如果第一个日期晚于(大于)第二个日期,则返回正数。
gbase> select datediff(now(),'2004-05-01');
+------------------------------+
| datediff(now(),'2004-05-01') |
+------------------------------+
| 6977 |
+------------------------------+
1 row in set (Elapsed: 00:00:00.01)
TimestampDiff
日期2-日期1。如果第一个日期晚于(大于)第二个日期,返回负数。
gbase> select timestampdiff(day,now(),'2004-05-01');
+---------------------------------------+
| timestampdiff(day,now(),'2004-05-01') |
+---------------------------------------+
| -6977 |
+---------------------------------------+
PERIOD_DIFF
日期1-日期2
gbase> select PERIOD_DIFF(20230608,20230607);
+--------------------------------+
| PERIOD_DIFF(20230608,20230607) |
+--------------------------------+
| 1 |
+--------------------------------+
1 row in set (Elapsed: 00:00:00.00)