Skip to content

Commit 51f1919

Browse files
committed
Sql Server: Faster analogue for DateTimeOffset.TimeOfDay translation
1 parent 472d1f0 commit 51f1919

File tree

1 file changed

+4
-4
lines changed
  • Orm/Xtensive.Orm.SqlServer/Sql.Drivers.SqlServer/v10

1 file changed

+4
-4
lines changed

Orm/Xtensive.Orm.SqlServer/Sql.Drivers.SqlServer/v10/Compiler.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -143,10 +143,10 @@ private static SqlExpression DateTimeOffsetPartOffset(SqlExpression dateTimeOffs
143143
Switchoffset(dateTimeOffset, UtcTimeZone));
144144

145145
private static SqlExpression DateTimeOffsetTimeOfDay(SqlExpression dateTimeOffset) =>
146-
SqlDml.Extract(SqlDateTimeOffsetPart.Hour, dateTimeOffset) * (60 * 60 * NanosecondsPerSecond)
147-
+ SqlDml.Extract(SqlDateTimeOffsetPart.Minute, dateTimeOffset) * (60 * NanosecondsPerSecond)
148-
+ SqlDml.Extract(SqlDateTimeOffsetPart.Second, dateTimeOffset) * NanosecondsPerSecond
149-
+ SqlDml.Extract(SqlDateTimeOffsetPart.Millisecond, dateTimeOffset) * NanosecondsPerMillisecond;
146+
DateDiffMillisecond(
147+
SqlDml.Native("'00:00:00.0000000'"),
148+
SqlDml.Cast(dateTimeOffset, new SqlValueType("time")))
149+
* NanosecondsPerMillisecond;
150150

151151
private static SqlExpression DateTimeOffsetToLocalDateTime(SqlExpression dateTimeOffset) =>
152152
SqlDml.Cast(DateTimeOffsetToLocalTime(dateTimeOffset), SqlType.DateTime);

0 commit comments

Comments
 (0)