編集:float / intへのキャストは、最近のバージョンのSQLServerでは機能しなくなりました。代わりに以下を使用してください:
select datediff(day, '1899-12-30T00:00:00', my_date_field)
from mytable
文字列の日付は、サーバーの地域設定の影響を受けないように、明確な日付形式にする必要があることに注意してください。
古いバージョンのSQLServerでは、floatにキャストしてから、intにキャストすることで、DateTimeから整数に変換できます。
select cast(cast(my_date_field as float) as int)
from mytable
(注:正午を過ぎている場合はMSSQLが値を切り上げるため、intに直接キャストすることはできません!)
データにオフセットがある場合は、明らかにこれを結果に加算または減算できます
まっすぐ後ろにキャストすることで、他の方向に変換できます:
select cast(my_integer_date as datetime)
from mytable