我有一个 sql server 2008。我得到一个用于服务器停机时间的 icinga/nagios 时间戳。
正是这种格式Wed Apr 10 14:45:00 CEST 2013
。
这对我来说是一种奇怪的格式。我想将其转换/转换为 t-sql 日期时间 - 但不知道如何。
我有一个 sql server 2008。我得到一个用于服务器停机时间的 icinga/nagios 时间戳。
正是这种格式Wed Apr 10 14:45:00 CEST 2013
。
这对我来说是一种奇怪的格式。我想将其转换/转换为 t-sql 日期时间 - 但不知道如何。
因为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)
不过,这对时区没有任何作用——我建议你为此投入一些东西。