diff --git a/src/NHibernate/Dialect/Oracle9iDialect.cs b/src/NHibernate/Dialect/Oracle9iDialect.cs index b36b1a34b3..8611c20477 100644 --- a/src/NHibernate/Dialect/Oracle9iDialect.cs +++ b/src/NHibernate/Dialect/Oracle9iDialect.cs @@ -7,19 +7,10 @@ namespace NHibernate.Dialect { public class Oracle9iDialect : Oracle8iDialect { - public override string CurrentTimestampSelectString - { - get { return "select systimestamp from dual"; } - } + public override string CurrentTimestampSelectString => + $"select {CurrentTimestampSQLFunctionName} from dual"; - public override string CurrentTimestampSQLFunctionName - { - get - { - // the standard SQL function name is current_timestamp... - return "current_timestamp"; - } - } + public override string CurrentTimestampSQLFunctionName => "localtimestamp"; // Current_timestamp is a timestamp with time zone, so it can always be converted back to UTC. /// @@ -46,6 +37,9 @@ protected override void RegisterFunctions() { base.RegisterFunctions(); + RegisterFunction( + "current_timestamp", + new NoArgSQLFunction("localtimestamp", NHibernateUtil.LocalDateTime, false)); RegisterFunction( "current_utctimestamp", new SQLFunctionTemplate(NHibernateUtil.UtcDateTime, "SYS_EXTRACT_UTC(current_timestamp)"));