web-dev-qa-db-ja.com

SQLでテキスト列を日付時刻に変換する方法

テキストの列があります:

備考(テキスト、null)

サンプル値は「5/21/2013 9:45:48 AM」です

これを「2013-05-21 09:45:48.000」のような日時形式に変換するにはどうすればよいですか

変換の理由は、datetime列とRemarks列の日付スタンプとの間の合計時間数を取得しようとしたためです。私はこのようなことを考えていました:

備考(テキスト、null)-Date_Sent(datetime、null)

明確にするために、列は顧客からの問い合わせが送信された日時(Date_Sent)と問い合わせに関する担当者による最後の応答(応答)を表すため、Date_Sentの値は「2013-05- 21 08:00:00.000」と「5/21/2013 10:00:00 AM」という値の応答で、2.00(2時間)の値を取得する必要があります。残念ながら、作業中のデータベースでは、Remarksはテキストで、Date_Sentは日時です。

私はSQLに慣れていないので、これについて本当に助けが必要です:( TIA!

11
Poch

スタイル101で convert を使用します。

select convert(datetime, Remarks, 101)

列が本当にtextである場合、datetimeに変換する前にvarcharに変換する必要があります

select convert(datetime, convert(varchar(30), Remarks), 101)
13
Mikael Eriksson

SQL Serverでは、テキストを日時としてキャストします

select cast('5/21/2013 9:45:48' as datetime)
5
Mudassir Hasan

これは動作します:

SELECT STR_TO_DATE(dateColumn, '%c/%e/%Y %r') FROM tabbleName WHERE 1
0
Junu