Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 将字符串与用于工作的SmallDateTime进行比较_Sql Server 2008_Sql Server 2005_Vb6_Type Conversion - Fatal编程技术网

Sql server 2008 将字符串与用于工作的SmallDateTime进行比较

Sql server 2008 将字符串与用于工作的SmallDateTime进行比较,sql-server-2008,sql-server-2005,vb6,type-conversion,Sql Server 2008,Sql Server 2005,Vb6,Type Conversion,我试图在我的工作中调试一个旧的VB6程序。它充满了bug和硬编码的东西 该程序正在连接SQL Server 2005数据库,以使用存储过程读取和写入信息 由于该程序在我工作时仍在使用,因此我对数据库进行了备份以测试某些内容,并在我的SQL Server 2008版本中对其进行了恢复。一切正常 当我第二天早上来的时候,我犯了一个错误,前一天晚上我没有犯这个错误,即使晚上没有使用这个程序 问题是: "exec dbo.sp_Get_Wait_Data '" & DateEx & "'

我试图在我的工作中调试一个旧的VB6程序。它充满了bug和硬编码的东西

该程序正在连接SQL Server 2005数据库,以使用存储过程读取和写入信息

由于该程序在我工作时仍在使用,因此我对数据库进行了备份以测试某些内容,并在我的SQL Server 2008版本中对其进行了恢复。一切正常

当我第二天早上来的时候,我犯了一个错误,前一天晚上我没有犯这个错误,即使晚上没有使用这个程序

问题是:

"exec dbo.sp_Get_Wait_Data '" & DateEx & "'"
DateEx是一个包含2012/06/14的字符串

存储过程:

[sp_Get_Wait_Data] @Datest as char(10)  
AS 
    SELECT
        (A lot of column names here) 
    FROM
        Fiche
    LEFT JOIN 
        voyage ON fcid = vofiche
    LEFT JOIN 
        client on fcaccount = cusnov
    WHERE
        fcdate = @Datest 
        AND (void is null or (void > 0 and (void <> 999 and               void <> 1000 and void <> 998))) 
        AND ((fcremarques NOT LIKE '%SYSANNULATION%' OR
              fcremarques IS NULL)  
        AND fcrettime IS NOT NULL)
    ORDER BY 
        FcTime, FcOrgSite, fcdessite
这对于查询中的转换非常有用,但当其他查询试图访问此变量时,会在程序中导致数百个其他错误,因此它不是一个选项

你知道为什么这个查询昨天运行得很好,现在却给了我这个错误吗?提前感谢。

当连接到数据库副本时,您可能有。日期格式由使用的语言隐式设置

您可以将参数的格式更改为YYYYMMDD,这将是安全的,无论设置的是dateformat还是更好的方法,都可以将参数更改为datetime

如果这不是一个选项,那么您可以使用连接到数据库副本时可能有的fcdate=convertdatetime、@Datest,111重写查询。日期格式由使用的语言隐式设置

您可以将参数的格式更改为YYYYMMDD,这将是安全的,无论设置的是dateformat还是更好的方法,都可以将参数更改为datetime


如果这不是一个选项,您可以使用where fcdate=convertdatetime、@Datest,111重写您的查询这段代码在6月13日的任何时候都有效吗?如果不是,我猜这与mm/dd/mm订购有关?是的,这是实际问题。它在6月13日运行得很好。6月13日上午,Sql 2005。6月13日晚,SQL 2008。6月14日sql 2008完全不工作。。。这就是为什么不应该将日期存储/传递为字符串:实际上我正在调试这个程序,但我没有编写它。关于这段代码的一切都是令人痛苦的。标签用作变量,到处都是变量,硬编码的东西等等。这个代码在6月13日的任何时候都有效吗?如果不是,我猜这与mm/dd/mm订购有关?是的,这是实际问题。它在6月13日运行得很好。6月13日上午,Sql 2005。6月13日晚,SQL 2008。6月14日sql 2008完全不工作。。。这就是为什么不应该将日期存储/传递为字符串:实际上我正在调试这个程序,但我没有编写它。关于这段代码的一切都是令人痛苦的。标签用作变量、变量、硬编码的东西等等。最后一个选项做得很好!你帮了我这么多,这个问题让我很难受-非常感谢!最后一个选项很好地完成了任务!你帮了我这么多,这个问题让我很难受-非常感谢!
SELECT convert(datetime, @Datest, 120)