【问题标题】:Problem with SQL Server smalldatetime insert querySQL Server smalldatetime 插入查询的问题
【发布时间】:2011-01-20 02:02:06
【问题描述】:

我有字段:

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


    【解决方案1】:

    您能否尝试使用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】:

      只需在您的时间使用: 而不是.。然后就可以正常插入了。

      【讨论】:

      • 啊,我有 SQL Server 2005。也许这就是问题所在。尝试更改日期的格式,也许是 '2010-19-02 16:28' ?或者您的语言环境设置错误,它认为 19 是月份吗?
      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        insert into yourTable(yourSmallDateTimeColumn) values('1900-01-01 11:45:23');//format "yyyy-MM-dd HH:mm:ss"

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

            在 PHP 你有函数日期,你可以在里面写你想要的格式 像这个例子

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

            【讨论】:

            • 请详细说明您的解决方案。
            猜你喜欢
            • 2021-12-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多