首页 > 解决方案 > SQL Server 函数和 WHERE

问题描述

我正在使用 SQL Server Management Studio,我发现自己重用了以下函数来查找上个月的第一天和本月的第一天:

DATEADD(mm, DATEDIFF(mm, 0, GETDATE()) - 1, 0)
DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0)

例如,虽然创建一个名称为 的函数firstDayLastMonth几乎一样长,但它肯定更具可读性,并且只需看一眼标量函数名称就可以让我了解正在发生的事情。

据我了解,我不应该在 WHERE 子句中使用上述用户定义的函数(可能,甚至可能性能不佳)。但是当我在 SQL Server 中创建视图时,我继续重用上面的两个代码片段来计算上个月第一天到本月第一天的日期范围。是否还有一种方法可以创建一个函数或类似的东西,以便我的日期范围实际上一目了然?

标签: sql-serverfunctionview

解决方案


推荐阅读