-2
私は20/03/2016
、03/20/2016
、02/03/20
、03/jun/18
のような日付のリストを持っています。この入力形式では、DD/MM/YYYY
,MM/DD/YYYY
,DD/MM/YY
、dd/MMM/YY
の形式になりますが、出力は任意の日付形式ではなくMM/DD/YYYY
のようになります。SQLサーバーの任意の日付をMM/DD/YYYY形式に変換する
私は20/03/2016
、03/20/2016
、02/03/20
、03/jun/18
のような日付のリストを持っています。この入力形式では、DD/MM/YYYY
,MM/DD/YYYY
,DD/MM/YY
、dd/MMM/YY
の形式になりますが、出力は任意の日付形式ではなくMM/DD/YYYY
のようになります。SQLサーバーの任意の日付をMM/DD/YYYY形式に変換する
が一つのアプローチ
DECLARE @DATA VARCHAR(MAX)
SET @DATA = '03/jun/18'
SELECT CONVERT(varchar(10), COALESCE(CASE WHEN CHARINDEX('/', SUBSTRING(@DATA, CHARINDEX('/', @DATA)+1, LEN(@DATA))) > 3 THEN @DATA ELSE NULL END,
CASE WHEN CHARINDEX('/', REVERSE(@DATA))-1 < 4 THEN @DATA ELSE NULL END,
CONVERT(DATETIME, @DATA, CASE WHEN CAST(SUBSTRING(@DATA, 4, 2) AS INT) > 12 THEN 101 ELSE 103 END)
), 101) [MM/DD/YYYY]
結果である:
@DATA = '20/03/2016'
MM/DD/YYYY
03/20/2016
@DATA = '03/20/2016'
MM/DD/YYYY
03/20/2016
@DATA = '02/03/20'
MM/DD/YYYY
02/03/2020
@DATA = '03/6月/ 18'
MM/DD/YYYY
06/03/2018
それはあなたがに変換すべきかを決めることができますどのように、それを自動的に行うことがIMPOSIBLEです次の日付: '01-02-2017'。あなたの投稿に応じて、1月の2月または2月の初めになる可能性があります。 –
もう1つの例として、適切なデータ型を選択する必要があります。 (var)charの日付は問題になります。 – HoneyBadger