※注意※ SQL Server 2016以降のはなしです。
サーバーっていうものに「時間くだしゃい」っておねだりしたとき、くれる値は結構まちまちだったりする。特にクラウドの、IaaSだのPaaSだののサーバー。
それは何でかって、ロケールが違うからです。つまり、JSTとかUTCとかのアレで時間がアレする。だからDateTimeじゃなくて、ロケールまで考慮したDateTimeOffsetを使わなければならないよね。じゃないと整合性とるのがクソ辛くなるよね。
そいで、例えば「昨日のデータ」やら「明日のデータ」ってものを扱おうとしたとき、日付を何も考えず「yyyy/MM/dd」でFORMATすると無様に殺されてドブに捨てられる羽目になる。
SQL Serverも多分に漏れず慎重な時間の扱いが求められるわけであるが、そんな時にお役立ちなのが「AT TIME ZONE」さんです。