【问题标题】:How to insert varchar (date) to DateTime field in SQL table如何将 varchar(日期)插入 SQL 表中的 DateTime 字段
【发布时间】:2017-05-05 05:55:01
【问题描述】:

我需要编写一个插入查询来将日期(字符串)插入到日期时间字段。

这是我的桌子

 CREATE TABLE [dbo].[TSTKSInterfaceRun](
   ID INT IDENTITY(1,1),
   AttendanceDate [datetime] NULL,
   DateOfInterfaceRun [datetime] NULL,
   TotalRecords [decimal](4,2) NULL,
   Company [varchar](200) NULL  
) ON [PRIMARY] 

我已尝试使用此查询

Insert into [TSTKSInterfaceRun] (AttendanceDate,DateOfInterfaceRun,TotalRecords,Company) VALUES(CONVERT(Datetime, '2017-05-01 18:01:00', 120),CONVERT(Datetime, '2017-05-01 23:00:00', 120),1500,'SANCO')

但不工作。 错误显示为

Arithmetic overflow error converting int to data type numeric.

在 SSMS 中。 我需要一个查询来将字符串(日期)插入 SQL 表中的 DateTime 列 提前致谢

【问题讨论】:

  • 我认为您需要先将“TotalRecords”列的 DataType 从 [decimal](4,2) NULL 更改为 [decimal](6,2) NULL 来检查它,如果您要插入 1500作为此列中的值。
  • “不工作”是什么意思?你得到一个错误吗?如果是这样,什么错误?您是否得到一些不是错误的意外行为?如果是这样,请描述您的预期发生了什么。我们不介意读者。
  • 谢谢@AnkitkumarTandel。将 [decimal](4,2) 更改为 [decimal](18,2) .. 插入查询工作正常
  • @Arun D 欢迎

标签: sql sql-server-2008


【解决方案1】:

您的值 1500 对于比例 (4) 和精度 (2) 来说太大了。使用 (4,2) 时,最大位数为 4,其中 2 为小数位。该字段最多可以容纳99.99个

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多