私はSQL Server 2008を持っています。サーバーのダウンタイムのicinga/nagiosタイムスタンプを取得します。
まさにこの形ですWed Apr 10 14:45:00 CEST 2013
。
それは私にとって奇妙なフォーマットです。それを t-sql datetime にキャスト/変換したいのですが、方法がわかりません。
私はSQL Server 2008を持っています。サーバーのダウンタイムのicinga/nagiosタイムスタンプを取得します。
まさにこの形ですWed Apr 10 14:45:00 CEST 2013
。
それは私にとって奇妙なフォーマットです。それを t-sql datetime にキャスト/変換したいのですが、方法がわかりません。
CESTは+02 :00 なので
select
CONVERT(VARCHAR(3), DATENAME(WEEKDAY,
switchoffset(CAST(date_column_name as datetimeoffset),'+02:00')), 100)
+ ' ' +
CONVERT(VARCHAR(3), DATENAME(MM,
switchoffset(CAST(date_column_name as datetimeoffset),'+02:00')), 100)
+ ' ' +
DATENAME(DAY,
switchoffset(CAST(date_column_name as datetimeoffset),'+02:00'))
+ ' ' +
CONVERT(VARCHAR(8),
switchoffset(CAST(date_column_name as datetimeoffset),'+02:00'), 108)
+ ' CEST ' +
DATENAME(YEAR,
switchoffset(CAST(date_column_name as datetimeoffset),'+02:00'))
from adm_co_users
最初に日付を CEST タイム ゾーンに変換してから、必要に応じて日付を抽出しています。
これはどう:
select Cast(
-- Day
substring(@sTimestamp, 9, 2) + ' '
-- Month
+ substring(@sTimestamp, 5, 3) + ' '
-- Year
+ substring(@sTimestamp, 26, 4) + ' '
-- Time
+ substring(@sTimestamp, 12, 8) + ' '
as datetime)
ただし、これはタイムゾーンには何もしません-そのために何かを入れることをお勧めします.