SQL服务器:如何根据可变日期的中间设置比较
SQL Server : how to set a comparison based on the middle of variable date
我有一个可变日期,我需要能够检查日期是否在 15 号之前,然后打印“月初”,如果日期在 15 号之后,则打印“月末”
日期格式为“2021-11-08T00:00:00.000-05:00”,可以是任何日期,这只是一个示例。
SuspensionDate
是变量
如果 SuspensionDate 是 15 号之前的任何日期,则打印月初
如果 SuspensionDate 是 15 日之后的任何日期,则打印月底
请指教
谢谢,
这里有一些功能可以让您到达需要的地方
获取月初
SELECT DATEADD(月, DATEDIFF(月, 0, @mydate), 0) AS StartOfMonth
获取日期
SELECT DAY('2017/08/25') 作为 DayOfMonth;
获取月底
SELECT DATEADD(d, -1, DATEADD(m, DATEDIFF(m, 0, @date) + 1, 0))
感谢您提出上述所有建议。
我找到了适用于 oracle 数据库的正确方法。
这是我使用的,以防对其他人有好处。
CASE WHEN (EXTRACT (DAY from tcn.UXSUSPENSIONENDDATEDOP)) > 15 THEN 'end' ELSE 'beginning' END suspensionday
我有一个可变日期,我需要能够检查日期是否在 15 号之前,然后打印“月初”,如果日期在 15 号之后,则打印“月末”
日期格式为“2021-11-08T00:00:00.000-05:00”,可以是任何日期,这只是一个示例。
SuspensionDate
是变量
如果 SuspensionDate 是 15 号之前的任何日期,则打印月初
如果 SuspensionDate 是 15 日之后的任何日期,则打印月底
请指教 谢谢,
这里有一些功能可以让您到达需要的地方
获取月初
SELECT DATEADD(月, DATEDIFF(月, 0, @mydate), 0) AS StartOfMonth
获取日期
SELECT DAY('2017/08/25') 作为 DayOfMonth;
获取月底
SELECT DATEADD(d, -1, DATEADD(m, DATEDIFF(m, 0, @date) + 1, 0))
感谢您提出上述所有建议。
我找到了适用于 oracle 数据库的正确方法。
这是我使用的,以防对其他人有好处。
CASE WHEN (EXTRACT (DAY from tcn.UXSUSPENSIONENDDATEDOP)) > 15 THEN 'end' ELSE 'beginning' END suspensionday