テーブルのSTRING列には、「mm-dd-yyyy」と「yyyy-mm-dd」の両方の日付形式があります。データを選択している間、私はDATE形式にキャストしようとしていますが、変換エラーが発生しています。 SQLは2つの異なるフォーマットを同時に変換することができないからです。これをどのようにして実現すれば、両方のフォーマットをDATEに変換することができますか?SQL Serverで異なる日付形式を単一の形式に変換する
1
A
答えて
3
とにかくこれらを文字列として格納するのではなく、date
データ型を使用する必要があります。
でも、それに変換するコードはまだ必要です。
あなたは私が正しいだ場合は、一度にuは同じ時間@二つの異なる形式にDATEをキャストすることはできません110および120
WITH T(Col) As
(
SELECT '04-01-2010' UNION ALL
SELECT '2010-04-01'
)
SELECT Col,
CONVERT(date, Col,
CASE WHEN COL LIKE '[0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]' then 110
WHEN COL LIKE '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]' then 120
END
)
FROM T
0
間でスタイルを切り替えることがCASE
表現を使用することができます。しかし、あなたの質問に探して、私はあなたの列のすべての明確な日付形式を分析し、下に書かれたクエリを記述しようとするあなたをお勧めします:
DECLARE @DATECol TABLE (DATEVAL varchar(20))
INSERT @DATECol VALUES ('2016-07-01'),('01/07/2016'),('01JULY2016'),('19/07/16'),('28-08-2008')
select
CASE
WHEN ISNUMERIC(left(DATEVAL,4)) = 1 then CAST(DATEVAL as DATE)
WHEN LEN(DATEVAL) = 10 then CONVERT(DATE, DATEVAL, 103)
WHEN LEN(DATEVAL) = 8 then CONVERT(DATE, DATEVAL, 3)
WHEN CHARINDEX('/',DATEVAL) = 0 and ISNUMERIC(DATEVAL) = 0 then CONVERT(DATE, DATEVAL, 106)
END AS [Date] FROM @DATECol
は異なるDATEの出力形式については、以下http://www.w3schools.com/sql/func_convert.asp
希望これをリンクを参照してください。助けて!
関連する問題
- 1. 異なる日付形式をmysqlで単一のユニークな日付形式に変換する
- 2. VB.NET異なる形式の日付を挿入するSQL Server
- 3. javascriptで日付形式を別の形式に変換する
- 4. SQL Server - TSQLの日付形式を変換する
- 5. AngularJS - タイムスタンプの日付形式をJavaScript形式に変換する
- 6. 日付形式を別の形式に変換するR
- 7. 日付形式を別の形式に変換する方法
- 8. SQL Serverの - D-MMM-YYYY形式に日付を変換
- 9. SQL Serverの日付特定の形式から別の正確な日付形式への変換
- 10. SQLで日時/日付をNVarchar形式に変換する
- 11. 日付が "非形式的"形式に変換する
- 12. Perl日付形式変換
- 13. 変換日付形式
- 14. SQL Serverで日付形式が必要
- 15. 時刻を日に変換する:SQL Serverの時形式
- 16. 日付形式を変換する
- 17. 日付形式を変換するqlikview
- 18. SSIS異なる日付文字列形式を日付に変換する
- 19. SQL Server 2008 R2の日付形式
- 20. SQL Serverの日付形式MM/DD/YYYY
- 21. SASの単語日付をddmmyy形式に変換する
- 22. 日付を単語形式に変換するには?
- 23. SQL Serverでテーブル形式のデータをリスト形式に変換する
- 24. 日付形式はデータ形式で変換できません
- 25. SQL Server 2005の日付形式を変更する
- 26. 。インポート時の日付形式をSQL DBに変換する
- 27. 日付を単語形式に変換する| Javascript | jQuery
- 28. 今日の日付をmm/dd/yyyy形式で日付形式の変数に変換する方法#
- 29. 異なる日付形式でSQLクエリを実行する
- 30. ソースXMLの異なる日付形式
床を連続的にモップするのではなく、漏れを修正できませんか?私。カラムのデータ型を 'date'に変更し、必要に応じてこのデータを挿入しているアプリケーションを最初に修正します。 –
私はできることを望む。しかし、文字列のデータは "ABCD - 01-01-2016"形式であり、このデータは残念ながら私の範囲にはないアプリケーションから来ています。だから、私はそれのサブ文字列を行うと、同じからdatepartを取得し、それをDateに変換します。 – Coder157