時刻形式を「10:02:22 PM」に変換するには、SQL Serverの日付形式に変換する必要があります。SQL ServerでVarcharを時刻に変換
私はこのようなデータの列を持っています。私はCSVファイルからこの列をインポートし、これをDateTime Formatに変換して、Date Time Functionsを使用できるようにします。
この列を正しいDateTime形式の別のテーブルに挿入できます。
時刻形式を「10:02:22 PM」に変換するには、SQL Serverの日付形式に変換する必要があります。SQL ServerでVarcharを時刻に変換
私はこのようなデータの列を持っています。私はCSVファイルからこの列をインポートし、これをDateTime Formatに変換して、Date Time Functionsを使用できるようにします。
この列を正しいDateTime形式の別のテーブルに挿入できます。
変換する必要はありません。すべての時間のデータが文字列から解析可能である(スペースをリードするか、しない)場合は、
INSERT otherTable
SELECT ....., timeAsVarchar, ...
FROM csvTable
を使用した場合、暗黙的なキャストが発生し、クエリが美しく動作します。しかし、時間に変換することはできません不良またはブランクデータの可能性がある場合は、その最初の
INSERT otherTable
SELECT ....., CASE WHEN ISDATE(timeAsVarchar)=1 THEN timeAsVarchar END, ...
FROM csvTable
ELSE NULL
をテストすることは、私はそれを左のように暗示されています。
暗黙のキャスト変換に失敗し、「文字列から日付や時刻を変換すると変換に失敗しました」 「どうやって」「otherTable」のTime列を定義するにはどうすればよいですか? ?私は列を変換しようとすると、変換が失敗。しかし、私は個別にそれを行う際に、それが成功したいくつかの理由 – SarangArd
このリンクを使用してください:http://msdn.microsoft.com/en-us/library/ms187928.aspx。
SELECT CONVERT(DATETIME, '10:00:22 PM');
が与える
SELECT CONVERT(TIME, '10:00:22 PM');
は、次の出力を与えるだけ時間変換のために
... ...
22:00:22.000000
日付と時刻タイム変換...出力後...
1900-01-01 22:00:22.0000
注:datetime
の場合、特定の日付を入力する必要があります。それ以外の場合は、デフォルトの世紀の日付とみなされます。
その時間データのスペースは本当に存在していますか? – RichardTheKiwi
日付と時刻の値は、フォーマットなしでDBに格納されます。これは、クライアントアプリケーションの形式の日付と時刻の値です。 –
@RichardTheKiwi:はい、AM/PMの前にスペースがあります。 – SarangArd