ServiceStack OrmLite和DateTimeOffset在英国提供支持

时间:2013-04-23 09:41:41

标签: sql sql-server servicestack ormlite-servicestack datetimeoffset

我遇到了 OrmLite DateTimeOffset 支持的问题。我的总部设在英国,并认为这是相关的。

我有一个表格,其中的列类型为 DateTimeOffset

尝试插入 DateTimeOffset 列时出现以下SQL错误:

Msg 241, Level 16, State 1, Line 1
Conversion failed when converting date and/or time from character string.

我已经运行 SQL Profiler ,可以看到正在执行的SQL如下:

INSERT INTO "Table"
    ("InsertedDateTime")
VALUES
    ('23/04/2013 09:30:48 +00:00')

我很确定这是 dd / mm / yy vs mm / dd / yy 的问题。如果我将SQL转换为以下内容,它可以正常工作:

INSERT INTO "Table"
    ("InsertedDateTime")
VALUES
    ('23-Apr-2013 09:30:48 +00:00')

我是否配置错误或者是否需要执行某些操作才能使其正常工作?

1 个答案:

答案 0 :(得分:2)

您只需更改默认日期格式即可。试试这个 -

SET DATEFORMAT dmy

DECLARE @temp TABLE (col DATETIMEOFFSET)

INSERT INTO @temp (col)
SELECT '23-Apr-2013 09:30:48 +00:00'

INSERT INTO @temp (col)
SELECT '2013-04-23 09:30:48 +00:00'

INSERT INTO @temp (col)
SELECT '2013/04/23 09:30:48 +00:00'

INSERT INTO @temp (col)
SELECT '23/04/2013 09:30:48 +00:00'