1

現在、私はこのスクリプトを使用して、列から時間を引き出しています。

    (RIGHT('0' + ltrim(RIGHT(convert(varchar,cast(SUBSTRING(A.DocSign, CHARINDEX('^', A.DocSign) +1, 19) as datetime), 100), 7)), 7))

これが返すのは、この10:34 AMのようにフォーマットされた時間です。これは、このコードで軍の時間を標準時間に変換し、日付、姓などの列から引き出す追加の項目に追加します。必要です。 10:54:00AMとして表示する時間

したがって、基本的には、任意の時間の終わりに:00(常にゼロ)を追加し、ゼロと入ってくるAMまたはPMの間にスペースを追加する必要があります。

私はフォーマットがあまり得意ではないので、これに問題があります。助言がありますか?(SQL Server 2008 R2を実行しています)

4

1 に答える 1

2

式を書き直そうとせずに、':00' をSTUFFするだけです。

STUFF(
   (RIGHT('0' + ltrim(RIGHT(convert(varchar,cast(SUBSTRING(
    A.DocSign, CHARINDEX('^', A.DocSign) +1, 19) as datetime), 100), 7)), 7)),
6,0,':00 ')

PM別の方法は、 /AMを埋め込まれたゼロに置き換えることです。つまり、

REPLACE(REPLACE(
   (RIGHT('0' + ltrim(RIGHT(convert(varchar,cast(SUBSTRING(
    A.DocSign, CHARINDEX('^', A.DocSign) +1, 19) as datetime), 100), 7)), 7)),
'PM', ':00 PM'),'AM', ':00 AM')
于 2012-10-18T18:01:25.710 に答える