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

问题描述 投票:0回答:4

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

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

我该如何转换?我疯了!

sql-server-2005 remedy
4个回答
3
投票

把GMT / UTC /祖鲁语翻译成当地时区(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

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。


0
投票

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

希望有所帮助!


0
投票

用户工具 - >工具 - >选项 - >区域设置选项卡 - >日期/时间样式 - >自定义格式 - > mm / dd / yyyy

© www.soinside.com 2019 - 2024. All rights reserved.