0

私が理解しようとしているSQLServerでこの問題が発生しています。この文字列をデータベースに保存しました。この文字列には、ファイルのダウンロード場所とダウンロード日が含まれているため、同じ長さにすることができます。サンプルはこちらをご覧ください。

downloadedFile = c:/Programs and Features/Public/MyFiles/Myfile Mar 23 12:55 PM

または、次のようになります。

downloadedFile = C:/Programs and Feature/Public/MyFiles/FileTypes/MOV/MyFile Mar 23 1:25 PM

形式が変わっても完全なDATETIMEを取得できますか?上記の最初の例はMMDDHH:MM形式からのものです。2番目はMM DD H:MM形式でした。ご覧のとおり、時間は2桁から1桁になり、部分文字列を使用する可能性が低くなりました。この文字列は文字列の途中にあるため、結果セットに1文字でも追加すると、日時への解析で問題が発生する可能性があります。何か案は?

4

2 に答える 2

1

CHARINDEX()関数を使用できます

declare @downloadedFile varchar(500);
set @downloadedFile = 
     'c:/Programs and Features/Public/MyFiles/Myfile Mar 23 12:55 PM'

select substring(@downloadedFile,
                 CHARINDEX('Myfile ',@downloadedFile)+7,LEN(@downloadedFile))

結果:

Mar 23 12:55 PM

set @downloadedFile = 
 'C:/Programs and Feature/Public/MyFiles/FileTypes/MOV/MyFile Mar 23 1:25 PM';

select substring(@downloadedFile,
        CHARINDEX('Myfile ',@downloadedFile)+7,LEN(@downloadedFile))

結果:

Mar 23 1:25 PM
于 2012-08-28T08:22:02.603 に答える
0

アナログ関数を使用して文字列を分割します。「スペース」を区切り文字として使用します。そして、配列の最後の4つのインデックスはあなたの日付/時刻です。

多分これはあなたを助けることができます

http://social.msdn.microsoft.com/forums/en-US/transactsql/thread/4126a010-6885-4eb0-b79c-c798c90edb85

于 2012-08-28T07:38:21.680 に答える