小编Ory*_*ryx的帖子

SQL - 日期查询问题 - varchar到datetime转换导致超出范围的值

我有一个不再在这里的同事写的SQL查询.该查询作为SSIS作业的一部分运行,并且从本月开始失败,出现以下错误:

将varchar数据类型转换为日期时间数据类型会导致超出范围的值.

查询本身只是一个基本选择,带有where子句,用于查找特定时间范围内的值(@startdate和之间的日期范围@enddate)

确定时间范围的代码如下:

DECLARE     @RunDateTime datetime
DECLARE     @RunDate datetime
DECLARE     @StartDate datetime
DECLARE     @EndDate datetime
DECLARE     @Month int
DECLARE     @Year int
DECLARE     @strStartDate varchar(10)

SET     @RunDateTime = GetDate()
SET     @RunDate = cast(round(convert(real, @RunDateTime),0,1) as datetime)

IF                  DATEPART(d, @RunDate) = 16
    BEGIN       
                    SET @StartDate =  DATEADD(d, -15, @RunDate)
                    SET @EndDate = @RunDate
    END
ELSE
    BEGIN
                    IF      Month(@RunDate) = 1
                            SET @Month = 12
                    ELSE    
                            SET @Month = Month(@RunDate) - 1

                    IF      Month(@RunDate) = 1
                            SET @Year …
Run Code Online (Sandbox Code Playgroud)

sql t-sql datetime sql-server-2008-r2

6
推荐指数
1
解决办法
6426
查看次数

SQL CASE何时SQL Server 2005上的<Value> IN慢,但不是2000

我有一个非常简单的查询,这让我绝对疯狂.

情况如下:

  • 我有两个数据库服务器.
  • 一个是旧的SQL Server 2000(VM),资源非常少.
  • 另一个是非常大的SQL Server 2005企业集群,其中可用的资源非常荒谬.
  • 我有一小部分较大的查询在3秒内执行,并在SQL Server 2000上返回50,000多行数据
  • 这个相同的小查询在SQL Server 2005上返回1000行需要15分钟以上
  • 我正在使用的数据库是这两台服务器上的镜像.相同的表,表中的相同数据,表上的相同索引等.

我已经尝试在SQL Server 2005表上创建不同的索引,对存在的所有索引进行碎片整理,更新表统计信息等.没有什么能够使这个查询在SQL Server 2005上运行得更快.目前没有其他任何针对SQL运行Server 2005服务器和我们的DBA向我保证,这不是配置问题或与SQL Server 2000和SQL Server 2005之间的功能弃用有关.

查询如下:

SELECT (CASE 
             WHEN TeamMember.ID IN  (SELECT DISTINCT ProjMgrID FROM ProjMgr)
                THEN 'Yes' 
                ELSE 'No' 
        END) AS OnProjAsMgr 
FROM TeamMember
Run Code Online (Sandbox Code Playgroud)

因此,返回所有ProjMgrs的不同列表,如果TeamMember在该列表上,则为OnProjAsMgr值指定"Yes".

我是一个完整的SQL新手,这是由前任编写的代码.我不知道是否有更好的方法来编写它,但我无法弄清楚为什么它在SQL Server 2000上运行得很好但在SQL Server 2005上完全崩溃.

sql sql-server database-administration

2
推荐指数
1
解决办法
2110
查看次数

基本帮助:阅读Ruby脚本案例语法

我之前从未做过ruby脚本的事情,并且希望有人能在这里快速回答.我正在进行一个时间敏感的项目,并希望SO能够提供一些见解.

我在这里搜索过,并找到了一些ruby脚本指南,并认为我理解以下大部分代码,但有一些我无法弄清楚的事情.

我从ruby脚本中得到以下例外,我只需要知道它在做什么:

其中docName和document_name是文件路径的字符串

case docName 
when /^QRX/ then document_name = "/TRPRR/#{docName}"
when /^BVN/ then document_name = "/TRPRR/#{docName}"
....
Run Code Online (Sandbox Code Playgroud)

还有很多其他案例,我理解案例陈述.我不明白以下几点:

/ ^ QRX /某种正则表达式还是什么?又是什么的#{} DOCNAME办?

ruby switch-statement

1
推荐指数
1
解决办法
121
查看次数