テーブルの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. 日付形式を別の形式に変換する方法
- 6. 日付形式を別の形式に変換するR
- 7. AngularJS - タイムスタンプの日付形式をJavaScript形式に変換する
- 8. 異なる文字列の日付を単一の日付形式に変換する
- 9. PHPの日付形式をJavaScriptの日付形式に変換するには?
- 10. SQL Serverの - D-MMM-YYYY形式に日付を変換
- 11. 日付形式をExcel形式に変換する
- 12. SQL Serverの日付特定の形式から別の正確な日付形式への変換
- 13. SQLで日時/日付をNVarchar形式に変換する
- 14. 日付が "非形式的"形式に変換する
- 15. VBSを使用したSQL Serverの日付形式の変換
- 16. 変換日付形式
- 17. Perl日付形式変換
- 18. Metl - 変換日付形式
- 19. SQL Serverで日付形式が必要
- 20. MS SQLクエリ:日付と時刻を異なる形式に変換する
- 21. 時刻を日に変換する:SQL Serverの時形式
- 22. タイムスタンプを秒単位で日付形式に変換するR
- 23. 日付形式を変換する
- 24. 日付形式を変換する
- 25. 日付形式を変換するqlikview
- 26. SQL Server 2008 R2の日付形式
- 27. SQL Serverの日付形式MM/DD/YYYY
- 28. SSIS異なる日付文字列形式を日付に変換する
- 29. SASの単語日付をddmmyy形式に変換する
- 30. SQL Serverでテーブル形式のデータをリスト形式に変換する
床を連続的にモップするのではなく、漏れを修正できませんか?私。カラムのデータ型を 'date'に変更し、必要に応じてこのデータを挿入しているアプリケーションを最初に修正します。 –
私はできることを望む。しかし、文字列のデータは "ABCD - 01-01-2016"形式であり、このデータは残念ながら私の範囲にはないアプリケーションから来ています。だから、私はそれのサブ文字列を行うと、同じからdatepartを取得し、それをDateに変換します。 – Coder157