需要查找和替换查询中的文本

时间:2019-04-22 17:09:13

标签: sql sql-server replace find

我有一个很长的查询,其中包含多个日期变量,这些变量设置为提取动态日期范围(上个月,前一天等)。

这在向前移动的基础上效果很好,但是我需要对报告进行一次历史回填,这意味着我将需要在前20到40个时间段内运行查询。

这是一个很长的查询,但是它反复使用约3个动态日期变量。我正在尝试找到一种方法来查找和替换

DATEADD(month, DATEDIFF(month, -1, getdate()) - 2, 0)

使用

'2019-02-01 00:00:00'

但是我似乎无法在SSMS中做到这一点。

我尝试复制并粘贴到word,excel等文件,但是我遇到了将我的直线引号转换为“智能引号”的问题。我已经关闭了自动格式设置,但是这仍然存在问题。

有更好的方法吗?还是我想念的东西?

我知道笼统的“查找和替换”操作通常不是一个好主意,但是由于数据库的结构/权限和查询的原因,这实际上是最好/最快的解决方案。

1 个答案:

答案 0 :(得分:0)

这将起作用:

 CONVERT(VARCHAR(19), DATEADD(month, DATEDIFF(month, -1, getdate()) - 3, 0), 
 120)

检查http://sqlfiddle.com/#!18/9eecb/41922