SQLServerでサポートされている形式は多数あります。 MSDNBooksOnlineを参照してください。>キャストコード> およびCONVERT
。これらの形式のほとんどは依存です どの設定を使用しているか(したがって、これらの設定が機能する場合と機能しない場合があります)。
これを解決する方法は、(少し適合した)ISO-8601日付形式を使用することです。 これはSQLServerでサポートされています-この形式は常に機能します -SQLServerの言語と日付形式の設定に関係なく。
ISO-8601形式 SQLServerでサポートされているのは2つの種類があります。
-
YYYYMMDD日付のみ(時間部分なし)。ここに注意してください:ダッシュはありません! 、それは非常に重要です!YYYY-MM-DDない SQL Serverの日付形式の設定とは無関係であり、しない あらゆる状況で機能します!
または:
-
YYYY-MM-DDTHH:MM:SS日付と時刻について-ここに注意してください:この形式はあります ダッシュ(ただし、できます 省略)、および固定のTDATETIMEの日付と時刻の部分の間の区切り文字として 。
これはSQLServer2000以降で有効です。
SQLServer2008以降とDATEを使用している場合 データ型( DATEのみ -ない DATETIME !)、実際に YYYY-MM-DDを使用することもできます 形式であり、SQLServerのどの設定でも機能します。
このトピック全体が非常にトリッキーでやや混乱している理由を私に聞かないでください-それはまさにその通りです。しかし、 YYYYMMDD 形式であれば、SQL Serverのすべてのバージョン、およびSQLServerの言語と日付形式の設定に問題はありません。
SQL Server 2008以降の推奨事項は、 DATEを使用することです。 日付部分のみが必要な場合、および DATETIME2(n) 日付と時刻の両方が必要な場合。 DATETIMEの段階的廃止を開始する必要があります 可能であればデータ型