我正在尝试使用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.
有什么想法吗?
答案 0 :(得分: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
,例如20130928
和20131005
;因为时间部分是0。
答案 1 :(得分:0)
插入DateTime时无需强制转换。只需写下'20130928 00:00:00'
答案 2 :(得分:0)
听起来像是SQL注入攻击。但还有其他事情可能会出错。
服务器的区域设置可能有误。为特定区域设置配置Windows Server(以及SQL Server)时,将自动从这些设置继承日期和时间的格式。
如果区域设置与传递给服务器的数据不匹配 - 例如,如果日期作为 MM / DD / YYYY 传递,则它们应 DD / MM / YYYY 然后会出现错误。如果您尝试从日期格式冲突的来源导入数据,也会发生这种情况。