sql-server - 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 中创建视图时,我继续重用上面的两个代码片段来计算上个月第一天到本月第一天的日期范围。是否还有一种方法可以创建一个函数或类似的东西,以便我的日期范围实际上一目了然?
解决方案
推荐阅读
- linux - 过去一小时的 Grep 日志
- c# - ASP.NET Core 使用过滤器发送参数验证
- c++ - 错误 C2664:“wcscmp”:无法将参数 1 从“CHAR [260]”转换为“const wchar_t *”
- c++ - 返回指向出现在给定 C 字符串中的单词的第一次出现的指针
- php - 在 Centos 7 上安装 mongodb 失败,出现包错误
- ios - 在 iOS swift 中使用 PushKit 令牌进行 PubNub 推送注册
- python - 在 aarch64 上安装 tensorflow 时出错
- c++ - ISO C++ 禁止指针和整数之间的比较 [-fpermissive][c++]
- sql - 如何编写查询以获取 SQL Server 中每个组的第一个条目?
- c++ - 堆中类中的结构变量和智能指针的使用