将BMC Remedy时间戳转换为mm / dd / yyyy格式

时间:2011-10-04 15:37:08

标签: sql-server-2005 remedy

根据我在AR Systems上发现的BMC Remedy的文档,MSSQL Server环境中的时间戳(我们在这里使用SQL Server 2005)在UNIX时间戳中存储为 int 数据类型格式。

我不能为我的生活在Business Objects Web Intelligence中获取自定义SQL,让我将此时间戳转换为mm / dd / yyyy格式,我需要能够按日期对记录进行分组(没有时间戳,显然)。我尝试做的任何涉及数学或数据类型转换的操作都会引发“无效类型”错误。我无法将字段转换为int,varchar,datetime或其他任何内容。唯一有效的功能是DATEADD,它仍然返回完整的时间戳。

如何转换?我在这里疯了!

4 个答案:

答案 0 :(得分:3)

将GMT / UTC / Zulu转换为当地时区(EDT /纽约):

DATEADD(hour,-5,DATEADD(s,Last_Modified_Date,'1/1/1970 00:00:00'))

用于显示Remedy工作信息条目(Transact-SQL)的示例:

SELECT Work_Log_ID, DATEADD(hour, +12, DATEADD(s, Last_Modified_Date, '1/1/1970 00:00:00')) as Last_Modified_Date , Description, Detailed_Description, Infrastructure_change_ID, Number_of_Attachments 
FROM dbo.CHG_WorkLog
  WHERE Infrastructure_Change_ID = 'CRQ001261'
  ORDER BY Work_Log_ID desc

答案 1 :(得分:0)

为什么这不起作用?

DECLARE @timestamp INT

SELECT @timestamp =  DATEDIFF(s,'1/1/1970 00:00:00',GETDATE())

SELECT DATEADD(s,@timestamp,'1/1/1970 00:00:00')

用表中的值替换@Timestamp。

答案 2 :(得分:0)

您可能需要将int时间戳乘以1000. AR系统将日期存储为“秒”的数量,而大多数其他语言将unix时间戳存储为毫秒(以及作为长数据类型)

希望有所帮助!

答案 3 :(得分:0)

转到

  

用户工具 - >工具 - >选项 - >区域设置标签 - >日期/时间风格 - >自定义格式 - >毫米/日/年