尝试将DateTimeOffset插入SQL表时出现转换错误

问题描述 投票:0回答:1

我试图使用fluentmigrator在SQL2014中插入datetimeoffset值,但查询本身也在查询管理器中失败。关于如何插入这个的任何想法?

Field - CreatedDate - DateTimeOffset(7)

将值作为日期时间发送可以正常工作,例如2018/02/28 12:19:25

添加T标记或datetimeoffset会导致错误“从字符串转换日期和/或时间时转换失败”

所以这两种尝试都失败了

28/02/2018 12:42:37 +00:00
28/02/2018T12:42:37 +00:00

这是一个失败的流畅代码的简化版本

 Insert.IntoTable("Tenant")
         .Row(new 
                {
                    TenantID = Tenant1GUID,
                    TenantName = "MyName",
                    CreatedDate = DateTimeOffset.Now,
                }); 

这是一个有效的流畅代码的缩减版本

 Insert.IntoTable("Tenant")
         .Row(new 
                {
                    TenantName = "MyName",
                    CreatedDate = DateTime.Now,
                }); 

SQL代码失败

 INSERT INTO [dbo].[Tenant] ([TenantName], [CreatedDate]) 
    VALUES ('Demo', '2018/02/28T12:19:25 +05:00:00')

有效的SQL代码

 INSERT INTO [dbo].[Tenant] ([TenantName], [CreatedDate]) 
    VALUES ('Demo', '2018/02/28 12:19:25')
sql asp.net fluent-migrator
1个回答
0
投票

我不确定你得到了什么确切的错误但确保表列类型应该设置为datetimeoffset。

© www.soinside.com 2019 - 2024. All rights reserved.