私はFileNameという名前の列を持っていて、その列から日付列として日付を抽出したかったのです。ファイル名から日付を抽出する
ファイル名 M:私は、最も効率的に知りたいと思った\マッピング\ Workforce_Planning \ ABC \ ABClrmp.full.20160107.csv
望ましい結果
日 2016年1月7日
方法。
はそれがあなたのフォーマットであれば、これが最善の方法かもしれません事前に
私はFileNameという名前の列を持っていて、その列から日付列として日付を抽出したかったのです。ファイル名から日付を抽出する
ファイル名 M:私は、最も効率的に知りたいと思った\マッピング\ Workforce_Planning \ ABC \ ABClrmp.full.20160107.csv
望ましい結果
日 2016年1月7日
方法。
はそれがあなたのフォーマットであれば、これが最善の方法かもしれません事前に
クエリの下には試してみてください。でも、ファイル名...それは正しい出力を返します変更されます。
select cast(SUBSTRING(filename,(PATINDEX('%[0-9]%',filename)),8) as DATE)
select CONVERT(datetime, cast(SUBSTRING(filename,(PATINDEX('%[0-9]%',filename)),8) as DATE), 103)
サンプルコード:
CREATE TABLE #tmpTable(id INT, FileName nvarchar(250))
INSERT INTO #tmpTable values
(1, 'M:\Mapping\Workforce_Planning\ABC\ABClrmp.full.20160107.csv'),
(2, 'M:\Mapping\.20160207.csv')
select cast(SUBSTRING(filename,(PATINDEX('%[0-9]%',filename)),8) as DATE) from #tmpTable
-- Or
select CONVERT(datetime, cast(SUBSTRING(filename,(PATINDEX('%[0-9]%',filename)),8) as DATE), 103)
from #tmpTable
をありがとう:
select cast(left(right(filename, 12), 8) as date)
私はエラーを取得する:文字列から日付/時刻を変換する際、変換に失敗しました。 Filename列はnvarchar(260)です。 – Djbril
更新されたコードを確認してください –
私はまだエラー – Djbril