Sql Server2005 作业下DateAdd函数使用注意
如下的语句 Declare @Date varchar(10); set @Date=CONVERT(varcha...
扫描右侧二维码阅读全文
23
2009/11

Sql Server2005 作业下DateAdd函数使用注意

如下的语句
Declare @Date varchar(10); set @Date=CONVERT(varchar(10),DATEADD("d",-1,GETDATE()),121);
在SQL SERVER查询分析器内执行正确通过
但是写入SQL作业后,报错
"为 dateadd 指定的参数 1 无效"
根据报错分析到是在dateadd的"d"参数这里有问题
看了下网上的资料.
都说第一个参数是字符串型,内容是"d"或者"y"之类的选项
始终不得其解.后来查阅DATEDIFF的时候到了MSDN上
顺便看下官方的说明
结果发现第一项其实不需要用双引号
datepart | 缩写
year | yy, yyyy
将以上语句替换成
Declare @Date varchar(10); set @Date=CONVERT(varchar(10),DATEADD(d,-1,GETDATE()),121);
作业执行通过.
可能在查询分析器内做了更多的容错工作.所以此函数可通过,但是作业的实现是稍有差别的.

PS:
其实上面语句还可以用
Declare @Date varchar(10); set @Date=CONVERT(varchar(10),GETDATE()-1,121);
来代替
执行效率没试过,可能相差无几.

教训:
烂文档不如无文档.网上的文档果然不能轻信.还是去官方看比较稳妥.

Last modification:November 26th, 2018 at 04:16 pm
If you think my article is useful to you, please feel free to appreciate

2 comments

  1. Euy

    怎么中断了一段时间?

    数据有变化了吗?

    之前友情链接也没有了

    1. Johnny Woo
      @Euy

      由于之前服务器变动,现在改为虚拟主机了.之前的Rewrite规则没法再虚拟主机上做了.友情链接会尽快倒回.谢谢.

Leave a Comment