2015-10-05 82 views
0

当添加新的记录到我的数据库我得到的错误:日期时间转换失败,sequelise插入SQL服务器记录

Conversion failed when converting date and/or time from character string

它试图插入datetime是:

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

似乎Sequelise也插入了时区。

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

如何插入一个有效的SQL Server DATETIME with sequelize?

型号:

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

我从来没有使用Sequelize与MSSQL,但该文档说:'Sequelize.DATE// DATETIME for mysql/sqlite,TIMESTAMP WITH TIME ZONE for postgres'。 http://docs.sequelizejs.com/en/latest/docs/models-definition/#data-types –

回答

0

变化在DB列的数据类型从日期时间到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 
+0

嗨,我知道这是一个古老的线程,但我有一个问题......好的,我们可以解决* datetime *问题通过将其更改为* datetime2 *。现在,* date * datatype怎么样。它被设计为只保存一个日期而没有时间。我们是否需要将*日期*转换为* datetime2 *仅用于后续工作?如果这是真的,似乎我们不能只有SQL服务器*日期* ... –

+0

你可以举一个你使用日期时遇到的问题的例子吗? –

+0

嗨@OSAMA。我似乎认为是错的。我测试了保存一个普通的javascript日期到一个* sql服务器日期*列,一切工作顺利。所以,问题只会出现在* DateTime sql server *类型中。在这种情况下,我们最好使用* sequelize literal *来指定日期值。在这种情况下仅使用javascript Date失败。谢谢,再见... –