【问题标题】:DateTime conversion failed with sequelise inserting a SQL Server recordDateTime 转换失败,续集插入 SQL Server 记录
【发布时间】:2016-01-02 16:41:25
【问题描述】:

在我的数据库中添加新记录时出现错误:

从字符串转换日期和/或时间时转换失败

它试图插入的datetime 是:

2015-10-05 21:43:57.000 +00:00

Sequelise 似乎也插入了时区。

我尝试将“时区”设置为空字符串,但这没有帮助。

如何使用 sequelize 插入有效的 SQL Server DATETIME

型号:

    RegDate : {
       type : Tedious.TYPES.DateTime,
       defaultValue: Sequelize.NOW
    }

【问题讨论】:

标签: sql-server node.js sequelize.js tedious


【解决方案1】:

将数据库中的 Column 数据类型从 DateTime 更改为 DateTime2

-- This will fail
begin tran
CREATE TABLE #Temp1 ( CTECol datetime );
insert into #Temp1 select '2015-10-05 21:43:57.000 +00:00'
rollback

-- This will Success
begin tran
CREATE TABLE #Temp1 ( CTECol datetime2 );
insert into #Temp1 select '2015-10-05 21:43:57.000 +00:00'
rollback

【讨论】:

  • 嗨,我知道这是一个旧线程,但我有一个问题......好的,我们可以通过将 datetime 问题更改为 datetime2。现在,date 数据类型呢?它旨在仅保存没有时间的日期。我们是否需要将 dates 转换为 datetime2 才能让 sequelize 工作?如果这是真的,看来我们不能再只有 sql server dates ...
  • 您能举例说明您在使用日期时遇到的问题吗?
  • 嗨@OSAMA。看来我假设出了什么问题。我测试了将普通的 javascript 日期保存到 sql server Date 列,一切正常。因此,问题仅出现在 DateTime sql server 类型中。在这种情况下,我们最好使用 sequelize literal 来分配日期值。在这种情况下,仅使用 javascript Date 会失败。谢谢,再见...
猜你喜欢
  • 2019-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-26
  • 2014-01-17
  • 2015-12-17
  • 1970-01-01
相关资源
最近更新 更多