Your thoughts are correct.
In SQL Server, your first query launches the following SQL query:
exec sp_executesql N'SELECT [Extent1].[OrderID] AS [OrderID], [Extent1].[Expiration] AS [Expiration] FROM [dbo].[SalesOrders] AS [Extent1] WHERE [Extent1].[Expiration] > @p__linq__0',N'@p__linq__0 datetime2(7)',@p__linq__0='2016-01-08 20:05:25.4433282'
It is clear here that client time is passed as a parameter.
The second query sends it to the SQL server:
SELECT [Extent1].[OrderID] AS [OrderID], [Extent1].[Expiration] AS [Expiration] FROM [dbo].[SalesOrders] AS [Extent1] WHERE [Extent1].[Expiration] > (SysUtcDateTime())
Itβs clear here that the clock is SQL Server.
source share