SQL Server smalldatetime插入查询问题

问题描述 投票:3回答:6

我有这个领域:

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

sql-server sql-server-2000 insert
6个回答
5
投票

仅在您的时间使用:而不是.。然后它将插入正确。


6
投票

您是否可以尝试使用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
投票

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

2003/01/22 22:31将起作用。参见this article


1
投票

插入到您的Table(yourSmallDateTimeColumn)值('1900-01-01 11:45:23'); //格式化“ yyyy-MM-dd HH:mm:ss”]


0
投票

[如果您不需要字段中的时间元素,则SQL Server会默认将其设置为00:00:00,如果您只是发送'02 / 10/2010'如果您需要时间元素,则您的时间格式在您的示例中是错误的,应该是这样的-'02 / 10/2010 12:31:00'


0
投票

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

$smallDateAndTime =date('Y-m-d H:m:s');
© www.soinside.com 2019 - 2024. All rights reserved.