【问题标题】:Getting SQL Server error: conversion failed when converting date and/or time from character string获取 SQL Server 错误:从字符串转换日期和/或时间时转换失败
【发布时间】:2020-01-31 06:47:56
【问题描述】:

我正在处理存储在 SQL Server 中的数据,并且在将 NULLS 插入 DATETIME 列时遇到了麻烦。想法?

我正在使用 SQL Server 数据库。

架构:

CREATE TABLE loadedmoves_table
(
     ... 
     date_field DATETIME, 
     PRIMARY KEY (blabla)
); 

Insert声明:

INSERT INTO sample_table (..., date_field) 
    SELECT ..., date_field 
    FROM sample_view 
    ORDER BY PK; 

【问题讨论】:

  • 了解您正在使用的数据库引擎以及插入查询示例会很有帮助
  • ... 当然 DDL 很有帮助。也许该列设置为不可为空。 我在插入 NULLS 时遇到问题,您遇到了什么问题?
  • 是想插入null却不能,还是不想插入null却发现自己在做的问题?无论哪种方式,一些相同的代码、示例数据和您的表定义都会有所帮助
  • 你遇到了什么错误

标签: sql-server datetime null


【解决方案1】:

解决方案是使用

TRY_CAST(date_field AS DATETIME),

在 SELECT 语句中

【讨论】:

    【解决方案2】:

    删除的非空约束强>从一列,然后运行插入查询 等。 P>

    insert into table_name (column) values(values);
    

    在此查询不使用日期 - 时间中强>列名的列强>

    【讨论】:

    • 该DB是MSSQL模式创建CREATE TABLE loadedmoves_table(... DATE_FIELD DATETIME,PRIMARY KEY(布拉布拉));插入语句INSERT INTO sample_table(... DATE_FIELD)SELECT ... FROM DATE_FIELD sample_view ORDER BY PK; 跨度>
    • 更改列的为空不会影响的字符串转换为相应的数据类型的能力。并建议使用字符串数据类型来存储临时数据是一个非常贫穷的建议,并会允许插入废话值。基本上这种方法只需按下问题更远到系统,这将使其更脆弱,较不准确的,并且更昂贵(在开发和维护成本方面)。跨度>
    猜你喜欢
    • 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
    相关资源
    最近更新 更多