ホームページ >データベース >mysql チュートリアル >SQL Server での「文字列から日付や時刻を変換するときに変換に失敗しました」エラーを回避するにはどうすればよいですか?
SQL Server での日時挿入の問題のトラブルシューティング
SQL Server テーブルに日付と時刻を挿入すると、「文字列から日付や時刻を変換するときに変換に失敗しました」というエラーが頻繁に発生します。これは通常、データ形式がデータベースの期待と一致しない場合に発生します。
解決策には、一貫した日時形式を使用することが含まれます。 SQL Server は、理想的には次のバリエーションの ISO-8601 形式を受け入れます。
YYYYMMDD
(日付のみ)YYYY-MM-DDTHH:mm:ss
(日付と時刻、区切り文字はハイフン)ISO-8601 を採用することで、さまざまな言語や地域設定間での互換性が保証されます。 たとえば、正しい挿入は次のようになります:
<code class="language-sql">INSERT INTO table1 VALUES ('2012-02-21T18:10:00', '2012-01-01T00:00:00');</code>
柔軟性を高めるために、SQL Server 2008 以降のバージョンでは DATETIME2
データ型が提供されています。これにより、日時文字列のより寛大な解析が可能になります。 問題のある値は次のように処理できます:
<code class="language-sql">SELECT CAST('02-21-2012 6:10:00 PM' AS DATETIME2), -- Successful conversion CAST('01-01-2012 12:00:00 AM' AS DATETIME2); -- Successful conversion</code>
将来の変換エラーを防ぐために、開発者は常に ISO-8601 などの標準化された日時形式を使用し、可能な場合は DATETIME2
データ型を利用して SQL Server 内の互換性とエラー耐性を向上させる必要があります。
以上がSQL Server での「文字列から日付や時刻を変換するときに変換に失敗しました」エラーを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。