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

时间:2018-02-28 13:09:14

标签: sql asp.net fluent-migrator

我正在尝试使用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')

1 个答案:

答案 0 :(得分:0)

我不确定你得到的确切错误,但请确保将表格列类型设置为datetimeoffset。