SQL Server smalldatetime插入查询的问题

时间:2010-02-23 13:47:00

标签: sql-server sql-server-2000 insert

我有这个领域:

APP_DATE (smalldatetime)

我在做这个查询:

INSERT INTO table (TYPE, CODE, APP_DATE, DATE) VALUES ('APP', '123', '02/10/2010 12.30', GETDATE())

失败了:

Msg 296, Level 16, State 3, Line 1
Conversion from datatype char to smalldatetime generated a value not between the interval of valid values.
Instruction has been interrupted.

(0 row(s) affected)

我做错了什么?在我看来,这是该领域的正确格式..

感谢您的时间。

编辑:SQL Server 2000

6 个答案:

答案 0 :(得分:6)

在您的时间内使用:而不是.。然后它会插入正常。

答案 1 :(得分:5)

您是否可以尝试使用ISO-8601 date format(YYYYMMDD HH:MM:SS) - 这将始终在SQL Server上运行 - 无论您的区域和区域设置如何:

INSERT INTO table (TYPE, CODE, APP_DATE, DATE) 
VALUES ('APP', '123', '20100210 12:30:00', GETDATE())

答案 2 :(得分:2)

日期时间格式不正确;年份应为4位数(否则不明确),时间分隔符应为冒号。

2003/01/22 22:31会奏效。见this article

答案 3 :(得分:1)

插入yourTable(yourSmallDateTimeColumn)值('1900-01-01 11:45:23'); //格式“yyyy-MM-dd HH:mm:ss”

答案 4 :(得分:0)

如果您不需要字段中的time元素,如果您只是发送'02 / 10/2010',SQL Server将默认为00:00:00如果您需要time元素,那么您的格式为你的例子中的时间是错误的,它应该是这样的 - '02 / 10/2010 12:31:00'

答案 5 :(得分:0)

在PHP中,您具有函数日期,您可以在其中编写所需的格式 像这个例子

$smallDateAndTime =date('Y-m-d H:m:s');