ホームページ > データベース > mysql チュートリアル > SQL Server で「文字列から日付や時刻を変換するときに変換に失敗しました」エラーを修正する方法は?

SQL Server で「文字列から日付や時刻を変換するときに変換に失敗しました」エラーを修正する方法は?

Mary-Kate Olsen
リリース: 2025-01-19 19:21:44
オリジナル
185 人が閲覧しました

How to Fix

「文字列から日付や時刻を変換するときに変換に失敗しました」SQL の問題

日時列を含むテーブルを作成し、特定の日付と時刻を挿入しようとしているとき値を指定すると、「文字列から日付や時刻を変換するときに変換に失敗しました」というエラー メッセージが発生しました。この問題に対処する方法は次のとおりです。

変換の問題

「21-02-2012 6:10:00 PM」形式で値を挿入しようとした最初の試行では、SQL Server が原因でエラーが発生しました。特定の日付と時刻の形式が必要です。

ISO-8601 形式

これを解決するにはこの問題が発生した場合は、言語や日付形式の設定に関係なく SQL Server でサポートされている ISO-8601 日付形式を使用してください。形式は次のオプションで構成されます。

  • 時間部分のない日付の場合は YYYYMMDD (ダッシュなし)
  • YYYY-MM-DDTHH:mm:ss 時間のある日付の場合 (ダッシュはオプション) 、「T」区切り文字を修正)

挿入を修正ステートメント

ISO-8601 形式を挿入ステートメントに適用すると、修正されたコードが生成されます。

insert into table1 values('2012-02-21T18:10:00', '2012-01-01T00:00:00');
ログイン後にコピー

DATETIME2 データ型

または、SQL Server 2008 以降の場合は、 DATETIME2 データ型は変換プロセスを簡素化し、さまざまな日付形式を使用できるようにします。問題:

SELECT
   CAST('02-21-2012 6:10:00 PM' AS DATETIME2),     -- works just fine
   CAST('01-01-2012 12:00:00 AM' AS DATETIME2)   -- works just fine  
ログイン後にコピー

ISO-8601 形式に従うか、DATETIME2 データ型を利用することにより、「変換に失敗しました」エラーを克服し、日付と時刻の値を SQL Server に正しく挿入できます。

以上がSQL Server で「文字列から日付や時刻を変換するときに変換に失敗しました」エラーを修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート