SQL 2008 R2で以下のスクリプトを実行しようとしていますが、エラー(FORMAT is not recognized
)が表示されています。私はインストールされているSQL Serverが2008 R2であると思っています。 SQL Server 2008 R2でスクリプトを変換する方法はありますか?前もって感謝します。フォーマット機能がSQL Server 2008 R2で機能しません
declare @sample table (dt datetime)
insert @sample values ('2017-10-09 20:04:00.000')
insert @sample values ('2017-10-07 00:55:22.000')
insert @sample values ('2017-10-16 15:52:34.000')
insert @sample values ('2017-10-06 03:09:31.000')
insert @sample values ('2017-10-06 19:56:09.000')
insert @sample values ('2017-10-06 06:36:39.000')
insert @sample values ('2017-10-05 16:19:14.000')
select
s.dt,
DATEADD(hh,8,s.dt) AS dt_plus_8,
FORMAT(CAST(DATEADD(HH,8,s.dt) AS DATETIME), 'hh tt') as TIME_HOURLY
from
@sample s
望ましい結果:
DT----------------------DT_Plus_8--------------Tim_Hourly
----------------------------------------------------------
2017-10-09 20:04:00.000--2017-10-10 04:00:00.000--04 AM
2017-10-07 00:55:22.000--2017-10-07 08:00:00.000--08 AM
2017-10-16 15:52:34.000--2017-10-16 23:00:00.000--11 PM
2017-10-06 03:09:31.000--2017-10-06 11:00:00.000--11 AM
2017-10-06 19:56:09.000--2017-10-07 03:00:00.000--03 AM
2017-10-06 06:36:39.000--2017-10-06 14:00:00.000--02 PM
2017-10-05 16:19:14.000--2017-10-06 00:00:00.000--12 AM
'FORMAT'が**新しい関数は** SQL Serverで導入された** 2012 ** - それを以前のバージョンには存在しないし、簡単な「回避策」もありません。 * FORMATなしで*動作するようにコードを変更する必要があります。適切な 'CONVERT'関数呼び出しと' CONVERT'関数のための適切なスタイルを使用します:[T-SQLのCASTとCONVERT](https://docs.microsoft.com/en-us/sql/t-sql/ functions/cast-and-convert-transact-sql) –