0

我正在尝试使用 Insert 语句,但出现错误

INSERT INTO Temp_Table 
            ( 
             [fromDate] 
             ,[toDate] 
             ,[IDProduct] 
             ,[IDType] 
             ,[Price] 
             ,[Art] 
            ,[active]
           ) 

    VALUES (
             CAST('2013-09-28 00:00:00' AS DATETIME) 
           , CAST('2013-10-05 00:00:00' AS DATETIME) 
           , 3453 
           ,106 
           ,0 
           ,'RUN' 
           ,'' 
          ) 

错误消息是德语的。我可以试着翻译一下。

Bei der Konvertierung eines char-Datentyps in 
einen datetime-Datentyp liegt der datetime-Wert außerhalb des gültigen Bereichs. 

翻译差不多

 By Converting a Char data type in datetime Datatype lies
 the datetime value out of valid range.

任何想法?

4

3 回答 3

0

尝试以语言中立的方式传递这些日期时间,YYYMMDD hh:mm:ss.nnn如下所示:

INSERT INTO Temp_Table 
            ( 
             [fromDate] 
             ,[toDate] 
             ,[IDProduct] 
             ,[IDType] 
             ,[Price] 
             ,[Art] 
            ,[active]
           ) 

    VALUES (
             '20130928 00:00:00.000'
            ,'20131005 00:00:00.000'
            , 3453 
            ,106 
            ,0 
            ,'RUN' 
            ,'' 
          );

或者只是YYYYMMDD,喜欢2013092820131005;因为时间部分是0。

于 2013-05-24T15:50:02.333 回答
0

插入 DateTime 时无需强制转换。写吧'20130928 00:00:00'

于 2013-05-24T15:50:05.207 回答
0

听起来像是 SQL 注入攻击。但还有其他事情可能出错。

服务器的区域设置可能有误。当您为特定语言环境配置 Windows Server(以及 SQL Server)时,日期和时间的格式会自动从这些设置继承。

如果区域设置与传递给服务器的数据不匹配——例如,如果日期以MM/DD/YYYY的形式传递,而它们应该是DD/MM/YYYY ,则会导致错误。如果您尝试从日期格式冲突的源导入数据,也会发生这种情况。

于 2013-05-24T15:53:11.787 回答