11

時刻形式" 10:02:22 PM "を SQL Server の DateTime 形式に変換するにはどうすればよいですか 。

そのようなデータの列があります。この列を CSV ファイルからインポートしましたが、日時関数を使用できるように日時形式に変換したいと考えています。

この列を正しい DateTime 形式の別のテーブルに挿入できるようにしたいと考えています。

4

2 に答える 2

5

次のリンクを使用してください: http://msdn.microsoft.com/en-us/library/ms187928.aspx

時間換算のみ...

SELECT CONVERT( TIME, '10:00:22 PM' );

次の出力が得られます...

22:00:22.000000

日付と時刻による時間変換...

SELECT CONVERT( DATETIME, '10:00:22 PM' );

次の出力が得られます...

1900-01-01 22:00:22.0000 

注:datetime入力として特定の日付が必要な場合は、デフォルトの世紀の日付が考慮されます。

于 2013-04-18T05:58:32.123 に答える
1

変換する必要はありません。を使用すると、暗黙のキャストが発生します。

INSERT otherTable
SELECT ....., timeAsVarchar, ...
  FROM csvTable

すべての時間データ (先行スペースの有無にかかわらず) が文字列から解析可能であれば、クエリはうまく機能します。ただし、時間に変換できない不良データまたは空白データの可能性がある場合は、最初にテストしてください。

INSERT otherTable
SELECT ....., CASE WHEN ISDATE(timeAsVarchar)=1 THEN timeAsVarchar END, ...
  FROM csvTable

ELSE NULLという意味なので省略しました。

于 2013-04-18T05:55:25.060 に答える