如何在NHibernate中指定UTC时间戳类型?

时间:2017-03-27 15:10:08

标签: c# oracle nhibernate

我有一个Oracle数据库,我使用NHibernate从我的应用程序访问。该表有一个时间戳字段。在代码中,相应的字段如下所示:

    [Property(Column = "LASTPERFORMED_TS", Type = "Timestamp")]
    public virtual DateTime LastPerformedTs { get; set; }

但我需要存储UTC时间戳而不是本地时间戳。现在,默认值具有由触发器设置的本地日期。是否可以将其更改为默认具有UTC值?

触发器现在执行此操作:

  

:NEW.MODIFIED_TS:= SYSDATE;

你能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

Oracle没有像GETUTCDATE()这样的函数返回当前的UTC日期。

在Oracle中,您需要通过向服务器提供服务器的当前时间戳来使用SYS_EXTRACT_UTC

您需要使用以下内容来获取Oracle中的当前UTC日期时间。

SELECT SYS_EXTRACT_UTC(SYSTIMESTAMP)UTC_SYS, SYSTIMESTAMP FROM DUAL;

这可以解决您的问题。