试图从交接工作中理解 sysdate 函数的代码

Trying to understand the code on sysdate function from handover work

没问题只是一个问题

这不是问题,只是想了解一下前雇主的交接工作。

    SELECT *
      FROM MISS.M42V_PERSONNEL_SERVICE_RECORDS X
      WHERE X.EQUITY_STATUS IN ('P', 'T', 'O')
      AND (X.START_DATE     < TRUNC(LAST_DAY(SYSDATE)+1))
      AND (X.EXPIRE_DATE   IS NULL
      OR X.EXPIRE_DATE      > SYSDATE)

TRUNC(LAST_DAY(SYSDATE)+1))

试图了解 sysdate 之后的 +1 打算做什么。尝试将此代码从 oracle 转换为 SQL 服务器管理工​​作室。 SQL Server Management Studio 不理解语法。

让我们一点一点地理解它:

select SYSDATE FROM DUAL; -- TODAY 
-- 22-08-2019 01:06:10

SELECT LAST_DAY(SYSDATE) FROM DUAL; -- LAST DAY OF THE MONTH 
-- 31-08-2019 01:06:25

SELECT LAST_DAY(SYSDATE)+1 FROM DUAL; -- +1 ADDS ONE DAY TO THE DATE 
-- FIRST DAY OF THE NEXT MONTH 
-- 01-09-2019 01:06:39

SELECT TRUNC(LAST_DAY(SYSDATE)+1) FROM DUAL; -- TRUNC IS USED TO REMOVE TIME PORTION
-- 01-09-2019 12:00:00

干杯!!

它将给出下个月的第一天。 从今天开始,如果您 运行 下面的查询。

select (Last_Day(Sysdate)+1) 来自 dual;

结果: 2019 年 9 月 1 日