Sql 从GETDATE()中减去存储为Bigint的日期以计算当前年龄

Sql 从GETDATE()中减去存储为Bigint的日期以计算当前年龄,sql,sql-server,Sql,Sql Server,我对SQL比较陌生,需要一些帮助。我有一个第三方票务数据库,它将日期存储为bigint。我希望能够计算出票龄。我可以使用dateadd(s,CREATEDTIME/1000,'01-01-1970')将bigint转换为日期格式。我正在努力将它与当前日期进行比较,以计算车票的年龄 我曾尝试将datediff(DAY,(s,CREATEDTIME/1000,'01-01-1970'),GETDATE())作为“票龄”,希望这能奏效,但运气不佳 这是此时的完整查询- 挑选 日期将(s,CREATED

我对SQL比较陌生,需要一些帮助。我有一个第三方票务数据库,它将日期存储为bigint。我希望能够计算出票龄。我可以使用dateadd(s,CREATEDTIME/1000,'01-01-1970')将bigint转换为日期格式。我正在努力将它与当前日期进行比较,以计算车票的年龄

我曾尝试将datediff(DAY,(s,CREATEDTIME/1000,'01-01-1970'),GETDATE())作为“票龄”,希望这能奏效,但运气不佳

这是此时的完整查询-

挑选 日期将(s,CREATEDTIME/1000,'01-01-1970')添加为“创建日期”,
datediff(DAY,(s,CREATEDTIME/1000,'01-01-1970'),GETDATE())作为“票龄”, WORKORDERID作为“请求ID” 从WorkOrder中,如何使用:

dateadd(second, CREATEDTIME/1000, '1970-01-01') < getdate()
dateadd(第二个,CREATEDTIME/1000,'1970-01-01')
或者,如果要与当前日期进行比较,而不包含时间组件:

dateadd(second, CREATEDTIME/1000, '1970-01-01') < convert(date, getdate())
dateadd(第二个,CREATEDTIME/1000,'1970-01-01')

请注意,此代码拼写出秒,并以标准的YYYY-MM-DD格式输入日期。

通常在计算天数时,由于datediff函数的工作方式,我计算小时数,然后除以24。(从4月4日23:59到4月5日00:01之间的datediff天数为1,这并不总是人们想要的)

因此,执行查询以获取您似乎想要的数字时会出现以下情况:

select dateadd(SECOND,CREATEDTIME/1000, '01-01-1970') as 'Created_Date',
CAST(DATEDIFF(HOUR,dateadd(SECOND,CREATEDTIME/1000, '01-01-1970'),GETDATE()) AS DECIMAL(15,4))/24 AS 'ticket age', 
WORKORDERID as 'Request ID' 
FROM WorkOrder

请标记您的dbms名称请发布您的整个查询和表定义。请参阅此参考:两者都返回相同的错误-靠近“Gordon只发布了一个片段”的语法不正确。他(和我一样)假设你知道如何将其放入IF语句或WHERE子句等。我不确定这是否回答了实际发布的问题“(我如何计算票龄?”这只是检查票证的创建日期是否小于今天。