title: EF Core 2.2 - how to create SqlExpression with AT TIME ZONE SQL fragment
body: <p>I want to map method to custom SQL, which is</p>
  <pre><code>CONVERT(datetime, 
          SWITCHOFFSET(GETUTCDATE(), DATEPART(TZOFFSET, GETUTCDATE() AT TIME ZONE 'Greenwich Standard Time')))
  </code></pre>
  <p>So I added <code>HasDbFunction</code> in my <code>DbContext</code>:</p>
  <pre><code>modelBuilder.HasDbFunction(typeof(DbContext).GetMethod(nameof(DbContext.GetDateTime)))
          .HasTranslation(e =&gt;
              {
                  var GETUTCDATE = new SqlFunctionExpression(&quot;GETUTCDATE&quot;, typeof(DateTime));
                  
                  var TZOFFSET = new SqlFragmentExpression(&quot;TZOFFSET&quot;);
                  var ATTIMEZONE = new SqlFragmentExpression(&quot; AT TIME ZONE &quot;);
                  var GreenwichStandardTime = new Expression(&quot;Greenwich Standard Time&quot;); // expression with constant?
                  var EXPRESSION = new Expression(GETUTCDATE, ATTIMEZONE, GreenwichStandardTime); // expression with combine multiple exprssions?
                  var DATEPART = new SqlFunctionExpression(&quot;DATEPART&quot;, typeof(int), new[] { TZOFFSET , EXPRESSION  });  // cannot create
  
                  var SWITCHOFFSET = new SqlFunctionExpression(&quot;SWITCHOFFSET&quot;, typeof(DateTimeOffset), new[] { GETUTCDATE, DATEPART });
  
                  var DATETIME = new SqlFragmentExpression(&quot;DATETIME&quot;);
                  
                  new SqlFunctionExpression(&quot;CONVERT&quot;, typeof(DateTime), new[] { DATETIME, SWITCHOFFSET });
              });
  </code></pre>
  <p>My question is how can I create GreenwichStandardTime and EXPRESSION?</p>